数字信号处理实验-IIR滤波器设计
实验四 IIR 数字滤波器的设计(1)kHz f c 3.0=,dB 8.0=δ,kHz f r 2.0=,dB At 20=,ms T 1=;设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。
解: 程序:clear;fc=300;fr=200;fs=1000;rp=0.8;rs=20; wc=2*fs*tan(2*pi*fc/(2*fs)); wt=2*fs*tan(2*pi*fr/(2*fs)); [N,wn]=cheb1ord(wc,wt,rp,rs,'s'); [B,A]=cheby1(N,rp,wn,'high','s'); [bz,az]=bilinear(B,A,fs); [h,w]=freqz(bz,az);f=w*fs/(2*pi); plot(f,20*log10(abs(h))); axis([0,fs/2,-80,10]); grid; xlabel('频率/Hz'); ylabel('幅度/dB');050100150200250300350400450500-80-70-60-50-40-30-20-10010频率/Hz幅度/d B分析:f=200Hz 时阻带衰减大于30dB ,通过修改axis([0,fs/2,-80,10])为axis([200,fs/2,-1,1]) 发现通带波动rs 满足<0.8。
bz =[0.0262 -0.1047 0.1570 -0.1047 0.0262] az =[1.0000 1.5289 1.6537 0.9452 0.2796] 系统函数为:432143212796.09452.06537.15289.110262.01047.01570.01047.0-0262.0)(H --------+++++-+=z z z z z z z z z(2)kHz f c 2.0=,dB 1=δ,kHz f r 3.0=,dB At 25=,ms T 1=;分别用脉冲响应不变法及双线性变换法设计一巴特沃思数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求。
比较这两种方法的优缺点。
解: 程序:clear; fs=1000;fc=200;fr=300;rp=1;rs=25; %脉冲响应不变法 wp=2*pi*fc; ws=2*pi*fr; [N, wn] = buttord(wp, ws, rp, rs, 's'); [b1 a1]=butter(N,wn,'s'); [bz1,az1]=impinvar(b1,a1,fs); [h1,w]=freqz(bz1,az1); %双线性变换法 wp=2*fs*tan(2*pi*fc/fs/2); ws=2*fs*tan(2*pi*fr/fs/2); [N, wn] = buttord(wp, ws, rp, rs, 's');[b2 a2]=butter(N,wn,'s'); [bz2,az2]=bilinear(b2,a2,fs); [h2,w]=freqz(bz2,az2); f=w/(2*pi)*fs; figure; plot(f,abs(h1),'-.r',f,abs(h2),'-b'); grid; xlabel('频率/Hz'); ylabel('幅度'); legend('脉冲响应不变法','双线性变换法'); title('巴特沃思低通滤波器,线性幅度谱');5010015020025030035040045050000.20.40.60.811.21.4频率/Hz幅度巴特沃思低通滤波器,线性幅度谱bz1 =[0.0000 0.0002 0.0153 0.0995 0.1444 0.0611 0.0075 0.0002 0.0000 0]az1 =[1.0000 -1.9199 2.5324 -2.2053 1.3868 -0.6309 0.2045 -0.0450 0.0060 -0.0004]因此脉冲响应不变法的系统函数为:12345671234567890.00020.01530.09950.14440.06110.00750.0002()1 1.9199 2.5324 2.2053 1.38680.63090.20450.04500.00600.0004imp z z z z z z z H z z z z z z z z z z ----------------+++---=-+-+-+-+-bz2 =[0.0179 0.1072 0.2681 0.3575 0.2681 0.1072 0.0179] az2 =[1.0000 -0.6019 0.9130 -0.2989 0.1501 -0.0208 0.0025] 因此双线性变换法的系统函数为:1234561234560.01790.10720.26810.35750.26810.10720.0179()10.60190.91300.29890.15010.02080.0025bil z z z z z z H z z z z z z z------------++++++=-+-+-+ 分析:脉冲响应不变法的N=9,双线性变换法的N=6,由图知它们都满足要求,但脉冲响应的衰减较快,双线性变换的过渡带窄一些,且阶数比脉冲小,容易实现。
(3)利用双线性变换法分别设计满足下列指标的巴特沃思型、切比雪夫型和椭圆型数字低通滤波器,并作图验证设计结果:kHz f c 2.1=,dB 5.0≤δ,kHz f r 2=,dB At 40≥,kHz f s 8=。
解: 程序:clear;fs=8000;fc=1200;fr=2000;rp=0.5;rs=40; %巴特沃思低通滤波器wp=2*fs*tan(2*pi*fc/fs/2);ws=2*fs*tan(2*pi*fr/fs/2);[N, wn] = buttord(wp, ws, rp, rs, 's'); [b1 a1]=butter(N,wn,'s');[bz1,az1]=bilinear(b1,a1,fs);[h1,w]=freqz(bz1,az1);H1=20*log10(abs(h1));f=w/(2*pi)*fs;figure; plot(f,H1);%对数幅度谱axis([0,fs/2,-100,10]);grid; xlabel('频率/Hz'); ylabel('幅度');title('巴特沃思低通滤波器,对数幅度谱');%切比雪夫低通滤波器wc=2*fs*tan(2*pi*fc/(2*fs));wt=2*fs*tan(2*pi*fr/(2*fs));[N,wn]=cheb1ord(wc,wt,rp,rs,'s');[b2,a2]=cheby1(N,rp,wn,'low','s'); [bz2,az2]=bilinear(b2,a2,fs);[h2,w]=freqz(bz2,az2);H2=20*log10(abs(h2));f=w*fs/(2*pi);figure;plot(f,H2);axis([0,fs/2,-100,10]);grid;xlabel('频率/Hz');ylabel('幅度/dB');title('切比雪夫低通滤波器,对数幅度谱');%椭圆型数字低通滤波器wp=2*fs*tan(2*pi*fc/fs/2); %双线性变换法ws=2*fs*tan(2*pi*fr/fs/2);[N,wp]=ellipord(wp,ws,rp,rs,'s');[b3,a3]=ellip(N,rp,rs,wp,'low','s'); [bz3,az3]=bilinear(b3,a3,fs);[h3,w]=freqz(bz3,az3);H3=20*log10(abs(h3));f=w/(2*pi)*fs;figure;plot(f,H3);axis([0,fs/2,-100,10]);grid; xlabel('频率/Hz'); ylabel('幅度/dB');title('椭圆型数字低通滤波器,对数幅度谱');5001000150020002500300035004000-100-90-80-70-60-50-40-30-20-10010频率/Hz幅度巴特沃思低通滤波器,对数幅度谱bz1 =[0.0004 0.0032 0.0129 0.0302 0.0453 0.0453 0.0302 0.0129 0.0032 0.0004]az1 =[1.0000 -2.7996 4.4582 -4.5412 3.2404 -1.6330 0.5780 -0.1370 0.0197 -0.0013] 系统函数为:12345678911234567890.00040.00320.01290.03020.04530.04530.03020.01290.00320.0004H ()1 2.7996 4.4582 4.5412 3.2404 1.63300.56800.13700.01970.0013z z z z z z z z z z z z z z z z z z z ------------------++-++++++=-+-+-+-+-分析:N=9,为九阶巴特沃思低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。
5001000150020002500300035004000-100-90-80-70-60-50-40-30-20-10010频率/Hz幅度/d B切比雪夫低通滤波器,对数幅度谱bz2=[0.0026 0.0132 0.0264 0.0264 0.0132 0.0026] az2= [1.0000 -2.9775 4.2932 -3.5124 1.6145 -0.3334] 系统函数为:543215432123334.06154.15124.32932.49775.210026.00132.06420.00264.01320.00026.0)(H -----------+-+-+++++=zz z z z z z z z z z 分析:N=5,为五阶切比雪夫低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。
设计数字低通IIR和FIR滤波器对语音信号进行滤波处理
数字信号处理实验报告题目:设计数字低通IIR和FIR滤波器对语音信号进行滤波处理班级:学号:姓名:指导教师:一.实验目的1.巩固所学的数字信号处理理论知识,理解信号的采集、处理、传输、显示和存储过程;2.综合运用专业及基础知识,解决实际工程技术问题的能力;3.学习资料的收集与整理,学会撰写课程设计报告。
二.实验内容1.选择一个语音信号作为分析的对象,对其进行频谱分析;2.设计FIR和IIR数字滤波器,并对加噪语音信号进行滤波,分析滤波后信号的时域和频域特征。
三.设计过程1.原语音信号的时域,频域图[y,fs,nbits]=wavread ('d:\1\liuwei.wav'); %IIR低通sound(y,fs,bits);figure(1);plot(y);%做原始语音信号的时域图形title('原始语音信号');xlabel('时间 t');ylabel('音量 n');figure(2);y1=fft(y);y1=fftshift(y1); %平移,是频率中心为0derta_fs = fs/length(y); %设置频谱的间隔,分辨率plot([-fs/2:derta_fs: fs/2-derta_fs],abs(y1));%画出原始语音信号的频谱图title('原始语音信号的频谱');2.低通滤波器的设计设计指标:fp=1000Hz,fs=1200Hz,As=100db ,Ap=1dB(1)低通IIR滤波器Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);[n11,wn11]=buttord(wp,ws,1,50, 's');%求低通滤波器的阶数和截止频率[b11,a11]=butter(n11,wn11, 's'); %求S域的频率响应的参数[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换[h,w]=freqz(num11,den11);figure(3);plot(w*8000*0.5/pi,abs(h));legend('IIR低通滤波器','Location','NorthWest');grid;z11=filter(num11,den11,y);sound(z11);m11=fft(z11); %求滤波后的信号figure(4);plot(z11);title('滤波后的信号波形', 'fontweight', 'bold'); axis([95000 100000 -1 1]);grid;figure(5);plot(abs(m11), 'r ');title('滤波后信号的频谱', 'fontweight', 'bold'); axis([ 0 150000 0 4000]);grid;(2)FIR低通滤波器Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;rp=1;rs=50;p=1-10.^(-rp/20);s=10.^(-rs/20);fpts=[wp ws];mag=[1 0];dev=[p s];[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev); b21=fir1(n21,wn21,kaiser(n21+1,beta));[h,w]=freqz(b21,1);figure;plot(w*8000*0.5/pi,abs(h));title('FIR低通滤波器','fontweight','bold'); grid;z11=filter(b21,1,y);sound(z11);m11=fft(z11); %求滤波后的信号figure(4);plot(z11);title('滤波后的信号波形', 'fontweight', 'bold'); axis([95000 100000 -1 1]);grid;figure(5);plot(abs(m11), 'r ');title('滤波后信号的频谱', 'fontweight', 'bold'); axis([ 0 150000 0 4000]);grid;四.程序结果原始语音信号的时域图形:原始语音信号频谱:IIR低通滤波器:信号经过IIR低通滤波后的时域波形:FIR低通滤波器信号经过IIR低通滤波后的频域波形五.实验心得通过本次的课程设计使我对FIR与IIR滤波器有了更加深入地了解。
二IIR数字滤波器的设计
五、实验报告要求
1.简述实验原理及目的。 2.按照实验步骤及要求,比较各种情况下的 滤波性能。 3.总结实验所得主要结论。 4.简要回答思考题。
1
s平面的虚轴单值地映射于z平面的单位圆上,s平面 的左半平面完全映射到z平面的单位圆内。双线性变 换不存在混叠问题。 双线性变换是一种非线性变换,这种非线性引起的 幅频特性畸变可通过预畸而得到校正。
二、实验原理
以低通数字滤波器为例,将设计步骤归纳如下: (1)确定数字滤波器的性能指标:通带临界频率fp、阻带临界 频率fs;通带内的最大衰减Ap;阻带内的最小衰减As; (2)确定相应的数字角频率,ωp=2πfp/Fs;ωs=2πfs/Fs; (3)计算经过预畸的相应模拟低通原型的频率,; (4)根据Ωp和Ωs计算模拟低通原型滤波器的阶数N,并求 得低通原型的传递函数Ha(s); (5)用上面的双线性变换公式代入Ha(s),求出所设计的传 递函数H(z); (6)分析滤波器特性,检查其指标是否满足要求。
实验二 IIR数字滤波器的设计
一、实验目的
1.掌握双线性变换法及脉冲相应不变法设计 IIR数字滤波器的具体设计方法及其原理,熟 悉用双线性变换法及脉冲响应不变法设计低 通、高通和带通IIR数字滤波器的计算机编程。 2.观察双线性变换及脉冲响应不变法设计的 滤波器的频域特性,了解双线性变换法及脉 冲响应不变法的特点。
二、实验原理
1.脉冲响应不变法 用数字滤波器的单位脉冲响应序列h(n)模仿 模拟滤波器的冲激响应ha(t),让h(n)正好等于 ha(t)的采样值,即h(n)=ha(nT),其中T为采 样间隔。
二、实验原理
实验四IIR数字滤波器的设计数字信号处理DSP
实验四IIR数字滤波器的设计数字信号处理DSP
IIR数字滤波器是一种基于无限脉冲响应(Infinite Impulse Response)的数字滤波器。
相比于FIR(有限脉冲响应)滤波器,IIR滤
波器具有更低的复杂度和更快的响应速度,但可能会引入一定的稳定性问题。
设计IIR数字滤波器的一般步骤如下:
1.确定滤波器的规格:包括截止频率、通带增益、阻带衰减等参数。
这些参数将直接影响到滤波器的设计和性能。
2.选择滤波器结构:常见的IIR滤波器结构包括直接型I和II结构、级联型结构、并行型结构等。
选择适当的结构取决于滤波器的性能要求和
计算复杂度。
3. 选择滤波器的类型:根据滤波器的设计规格,可以选择巴特沃斯(Butterworth)、切比雪夫(Chebyshev)、椭圆(Elliptic)等不同类
型的IIR滤波器。
4.滤波器设计:根据所选择的滤波器类型和规格,设计滤波器的传递
函数。
可以借助MATLAB等工具进行数值计算和优化。
5.模拟滤波器转为数字滤波器:将设计好的IIR滤波器转换为数字滤
波器。
可以使用双线性变换等方法来实现。
6.实现滤波器:根据转换后的数字滤波器的差分方程,编写相应的代
码来实现滤波器功能。
7.评估滤波器性能:对设计好的IIR数字滤波器进行性能评估,包括
幅频响应、相频响应、群延迟等指标。
8.优化滤波器性能:根据实际情况,对滤波器的设计参数进行优化,以获得更好的性能。
以上是设计IIR数字滤波器的一般步骤,具体的设计方法和过程还需要根据实际情况进行调整。
数字信号处理实验matlab版用双线性变换法设计IIR数字滤波器
实验21用双线性变换法设计IIR 数字滤波器(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word 格式会让很多部分格式错误,谢谢)XXXX 学号姓名处XXXX一、实验目的1. 加深对双线性变换法设计IIR 数字滤波器基本方法的了解。
2. 掌握用双线性变换法设计数字低通、高通、带通、带阻滤波器的方法。
3. 了解MATLAB 有关双线性变换法的子函数。
二、实验内容1. 双线性变换法的基本知识。
2. 用双线性变换法设计IIR 数字低通滤波器。
3. 用双线性变换法设计IIR 数字高通滤波器。
4. 用双线性变换法设计IIR 数字带通滤波器。
5. 用双线性变换法设计IIR 数字带阻滤波器。
三、实验环境MATLAB7.0四、实验原理1.实验涉及的MATLAB 子函数Bilinear 功能:双线性变换——将s 域(模拟域)映射到z 域(数字域)的标准方法,将模拟滤波器变换成离散等效滤波器。
调用格式:[numd,dend]=bilinear(num,den,Fs);将模拟域传递函数变换为数字域传递函数,Fs 为取样频率。
[numd,dend]=bilinear(num,den,Fs,Fp);将模拟域传递函数变换为数字域传递函数,Fs 为取样频率,Fp 为通带截止频率。
[zd,pd,kd]=bilinear(z,p,k,Fs);将模拟域零极点增益系数变换到数字域,Fs 为取样频率。
[zd,pd,kd]=bilinear(z,p,k,Fs,Fp);将模拟域零极点增益系数变换到数字域,Fs 为取样频率,Fp 为通带截止频率。
[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs);将模拟域状态变量系数变换到数字域,Fs 为取样频率。
2. 双线性变换法的基本知识双线性变换法是将整个s 平面映射到整个z 平面,其映射关系为11z 1z 1T 2s --+-=或2sT/12sT/1z -+=双线性变换法克服了脉冲响应不变法从s 平面到z 平面的多值映射的缺点,消除了频谱混叠现象。
数字信号处理 IIR FIR数字滤波器设计
一、课程设计的目的与要求1.掌握利用双线性变换法设计IIR 数字滤波器的原理和具体方法。
2.深入理解利用双线性变换法设计IIR 数字滤波器的优缺点及使用范围。
3.加深对窗函数设计FIR 数字滤波器的基本原理的理解。
4.学习用MATLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。
5.了解MATLAB 有关窗函数法设计常用的子函数。
二、设计正文2.1 设计要求1. 使用双线性变换设计IIR 数字滤波器设计用双线性变换设计巴特沃兹滤波器,技术指标是:0.89125≤∣H(ej ω)∣≤1, 0≤ω≤0.2π ∣H(ej ω)∣≤0.17783, 0.3π≤ω≤π用绝对指标表示为:ωp = 0.2π ωs = 0.3π δ1 = 1-0.89125 = 0.10875 δ2 = 0.17783 2.用Kaiser 窗法设计一个高通滤波器,满足技术指标∣H(ej ω)∣≤0.021,∣ω∣≤0.35π 0.979≤∣H(ej ω)∣≤1.021, 0.5π≤ω≤π。
用绝对指标要求来表示为:ωp = 0.5π,ωs = 0.35π,δ1 =δ2 =δ=0.021。
2.2设计原理2.2.1.IIR 数字滤波器:IIR 数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth 函数、chebyshev 函数、bessel 函数、椭圆滤波器函数等。
IIR 数字滤波器的设计步骤:① 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; ② 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;③ 跟据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;④ 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
在MATLAB 中,经典法设计IIR 数字滤波器主要采用以下步骤:图1.1 IIR 数字滤波器设计步骤2.2.2.FIR 数字滤波器:FIR 数字滤波器的系统函数无分母,为 110()()N N inii i H Z b z h n z ----====∑∑,系统频率响应可写成:10()()N jw jwn n H e h n e--==∑,令()jw H e =()()j w H w e ϕ,H(w)为幅度函数,()w ϕ称为相位函数。
实验四IIR数字滤波器的设计数字信号处理DSP
第二次实验一.实验目的:(1) 掌握双线形变换法及脉冲响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线形变换法及脉冲响应不变法设计低通,高通和带通IIR数字滤波器的计算机编程。
(2) 观察双线形变换法及脉冲响应不变法设计的滤波器的频域特性,了解双线形变换法及脉冲响应不变法的特点。
(3) 熟悉巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器的频率特性。
二.实验原理:(1)实验中有关变量的定义:fc通带边界频率,fr阻带边界频率,tao通带波动,at最小阻带衰减,fs采样频率,t采样周期。
(2)设计一个数字滤波器一般包括以下两步:a.按照任务要求,确定滤波器性能指标b.用一个因果稳定的离散时不变系统的系统函数去逼近这一性能要求(3)数字滤波器的实现:对于IIR滤波器,其逼近问题就是寻找滤波器的各项系数,使其系统函数逼近一个所要求的特性。
先设计一个合适的模拟滤波器,然后变换成满足约定指标的数字滤波器。
用双线形变换法设计IIR数字滤波器的过程:a.将设计性能指标中的关键频率点进行“预畸”b.利用“预畸”得到的频率点设计一个模拟滤波器。
c.双线形变换,确定系统函数三.实验内容:(1)fc=0.3kHz,δ=0.8dB,fr=0.2kHz,At=20dB,T=1ms;设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。
程序: clc;clear;figure(2);wc=2*1000*tan(2*pi*300/(2*1000));wr=2*1000*tan(2*pi*200/(2*1000));[N,wn]=cheb1ord(wc,wr,0.8,20,'s');[B,A]=cheby1(N,0.8,wn,'high','s');[num,den]=bilinear(B,A,1000);[h,w]=freqz(num,den);f=w/pi*500;plot(f,20*log10(abs(h)));axis([0,500,-80,10]);grid on;xlabel('频率/Hz');ylabel('幅度/dB');图形为:050100150200250300350400450500-80-70-60-50-40-30-20-1010频率/Hz 幅度/d B由图易得,该滤波器完全满足要求。
数字信号处理课程设计报告---IIR滤波器分析与设计
数字信号处理课程设计报告选题名称:系(院):专业:班级:姓名:学号:指导教师:学年学期:2010 ~ 2011 学年第 1 学期2011 年01 月08 日设计任务书指导教师(签章):年月日摘要:数字滤波器是指输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或滤除某些频率成分的器件。
它在各种数字信号处理领域均有广泛的应用,其质量的优劣直接决定着数字产品的质量,数字滤波器按网络结构可分为IIR数字滤波器和FIR数字滤波器,其中IIR数字滤波器因结构简单,体积小,可靠性高,运算速度快等优点,在一些对相位要求不十分严格的场合有重要作用。
本设计是利用Matlab语言对IIR数字滤波器设计建立一个软件仿真平台,系统由巴特沃斯滤波器、切比雪夫Ⅰ型滤波器、切比雪夫Ⅱ型滤波器等组成,每种滤波器也包含低通、高通、带通、带阻滤波的设计,设计结果由时域单位脉冲响应图形幅度谱、相位谱以及极零点图表示,并输入音频文件测试滤波功能,还可任意修改各系统参数以分析研究滤波器设计结果,形象直观。
关键词:数字滤波器;Matlab;IIR数字滤波器;仿真目录1 课题综述 (1)1.1 课题来源及意义 (1)1.2 实现的功能 (1)2 系统分析 (1)2.1 设计的基础知识 (1)2.2 IIR滤波器的MATLAB实现 (3)3 系统设计 (3)3.1 IIR滤波器的设计 (3)3.2 系统框图 (4)4 代码编写 (5)4.1 巴特沃斯低通与高通的实现代码 (5)4.2 巴特沃斯带通与带阻实现代码 (5)4.3 切比雪夫1低通与高通的实现代码 (6)4.4 切比雪夫2低通与高通的实现代码 (6)5 运行与调试 (7)5.1 运行界面 (7)5.2 程序调试 (11)总结 (12)致谢 (13)参考文献 (14)1 课题综述1.1 课题来源及意义数字滤波是数字信号处理的重要内容,是由乘法器、加法器的单位掩饰器组成的一种运算过程,其功能是对输入离散信号进行运算处理,以达到改变信号频谱的目的。
信号实验报告( 离散傅里叶变换及其快速算法及IIR数字滤波器的设计)
信号实验一离散傅里叶变换及其快速算法一、实验目的1、掌握计算序列的离散傅里叶变换(FFT)的方法;2、掌握实现时间抽取快速傅里叶变换(FFT)编程方法;3、加深对DFT与序列的傅里叶变换和Z变换之间的关系的理解;4、复习复数序列的运算方法。
二、程序设计框图1.码位倒置程序框图2.蝶形图运算程序框图三、实验程序实验程序的源代码如下:#include"math.h"#include"stdio.h"/*------------------------------------------------------------------------------------------子函数部分------------------------------------------------------------------------------------------*/ void swap(float *a,float *b)//交换变量子函数{float T;T=*a;*a=*b;*b=T;}void fft (float A [],float B [],unsigned M)//数组A为序列的实部, 数组B为序列的虚部{unsigned long N,I,J,K,L,LE,LE1,P,Q,R;float Wr,Wi,W1r,W1i,WTr,WTi,theta,Tr,Ti;N=1<<M;J=0;for(I=0;I<N-1;I++){if(J>I){swap(&A [I],&A [J]);swap(&B [I],&B [J]);}K=N>>1;while(K>=2&&J>=K){J-=K;K>>=1;}J+=K;}for(L=1;L<=M;L++){LE=1<<L;LE1=LE/2;Wr=1.0;Wi=0.0;theta=(-1)*3.1415926536/LE1;W1r=cos (theta);W1i=sin (theta);for(R=0;R<LE1;R++){for(P=R;P<N-1;P+=LE){Q=P+LE1;//基本蝶形图的复数运算Tr=Wr*A[Q]-Wi*B[Q];Ti=Wr*B[Q]+Wi*A[Q];A[Q]=A[P]-Tr;B[Q]=B[P]-Ti;A[P]+=Tr;B[P]+=Ti;}WTr=Wr;WTi=Wi;Wr=WTr*W1r-WTi*W1i;Wi=WTr*W1i+WTi*W1r;}}return;}/*------------------------------------------------------------------------------------------主函数部分------------------------------------------------------------------------------------------*/ void main(){float A[20],B[20];char t1,t2,file_name[20];int M,N,i,iiff;FILE *fp;/*************************************数据读取部分************************************/ printf("请输入文件名:");//输入数据文件名scanf("%s",file_name);printf("FFT变换还是IFFT变换?(FFT:1,IFFT:-1):");//输入变换方式, 1为FFT, -1为IFFTscanf("%d",&iiff);while(iiff!=1&&iiff!=-1)//检错: 检验上一步的输入是否有错, 有错则重新输入{printf("输入错误, 请重新输入! ");printf("FFT or IFFT?(FFT:1,IFFT:-1):");scanf("%d",&iiff);}fp=fopen(file_name,"r");//打开文件并读入数据fscanf(fp,"%d",&M);N=pow(2,M);//计算序列总数for(i=0;i<N;i++)//读取文件中的数据{fscanf(fp,"%f%c%c%f",&A[i],&t1,&t2,&B[i]);if(iiff==-1)//根据FFT或IFFT修正BB[i]=B[i]*-1;if(t2!='j')//检错: 检验读取格式是否有错{printf("输入格式错误\n");break;}if(t1=='+')//判断虚部的正负号B[i]=B[i];else if(t1=='-')B[i]=-B[i];}/****************************************变换部分****************************************/ fft(A,B,M);//FFT变换/**************************************数据输出部分**************************************/ fp=fopen("fft_result.txt","w"); //输出结果if(iiff==-1)fprintf(fp,"IFFT变换的输出结果是: \n");elsefprintf(fp,"FFT变换的输出结果是: \n");for(i=0;i<N;i++){if(iiff==-1) //根据FFT或IFFT修正B{B[i]=B[i]*-1/N;A[i]=A[i]/N;}if(B[i]>=0)//修正虚部的输出格式fprintf(fp,"%f+j%f\n",A[i],B[i]);else if(B[i]<0)fprintf(fp,"%f-j%f\n",A[i],-B[i]);else if(B[i]==0)fprintf(fp,"%f\n",A[i]);}fclose(fp);}四、程序运行结果检验(1) 1.对序列进行FFT变换输入文件fft_input.txt:21+j02+j0-1+j04+j0控制台输入:请输入文件名: fft_input.txtFFT变换还是IFFT变换?(FFT:1,IFFT:-1): 1输出文件fft_result.txt:FFT变换的输出结果是:6.00000+j0.000002.00000+j2.00000-6.00000+j0.000002.00000+j-2.00000运行结果分析:程序运行输出结果与计算结果相同, 表示傅里叶正变换(FFT)成功。
iir滤波器设计方法
iir滤波器设计方法IIR滤波器设计方法数字信号处理中的滤波器是一项重要的技术,用于滤除数字信号中的噪声和干扰,并对信号进行平滑处理。
IIR滤波器作为数字滤波器的一种,被广泛应用于音频处理、图像处理等领域。
下面将介绍IIR滤波器的设计方法。
一、数字滤波器的基本原理数字滤波器是一种按照某种规律改变信号频率和幅度的系统。
数字滤波器的基本原理是,将输入信号x(n)通过一定的滤波器系统后,得到输出信号y(n)。
滤波器系统可以是连续时域滤波器,也可以是离散时域滤波器。
其中,IIR滤波器是离散时域滤波器的其中一类。
二、IIR滤波器的分类IIR滤波器可以分为两类:低通滤波器和高通滤波器。
低通滤波器用于滤除高频噪声,保留低频信息,常用于音频等信号处理。
高通滤波器则用于滤除低频噪声,保留高频信息,常用于图像边缘检测等处理。
三、IIR滤波器设计方法1. 选择滤波器类型首先需要选择合适的滤波器类型,通常是根据所要处理的信号类型选择,“低通”或“高通”滤波器。
2. 确定滤波器参数在选定滤波器类型后,需要确定滤波器参数。
通常包括切-off频率、通带增益、阻带增益等。
其中,切-off频率是指信号经过滤波器后的频率处理效果,通带增益和阻带增益是指滤波器在信号传输过程中增益的波动程度。
3. 设计滤波器传递函数设计滤波器传递函数的目的是,确定在滤波器系统中所要使用的传递函数,以实现所要求的滤波效果。
根据IIR滤波器的设计方法,通常采用应用差分方程来实现传递函数。
4. 设置初始滤波器系数通过选择合适的初始滤波器系数,可以影响整个滤波器系统的滤波效果。
在确定了滤波器的传递函数后,设计人员可以根据所要求的滤波效果来选择合适的初始滤波器系数。
5. 优化滤波器系数通过不断的调节和优化滤波器系数,可以提高整个滤波器系统的滤波效果。
优化的过程通常需要根据实际的滤波效果进行多次调整和修改。
四、总结IIR滤波器是数字信号处理中一种常用的滤波器类型,其设计方法可以通过选择合适的滤波器类型、确定滤波器参数、设计滤波器传递函数、设置初始滤波器系数和优化滤波器系数等步骤来实现。
iir和fir滤波器的设计实验总结
IIR和FIR滤波器是数字信号处理中常用的滤波器类型,它们可以用于滤除信号中的噪音、衰减特定频率成分等。
在本次实验中,我们对IIR 和FIR滤波器的设计进行了实验,并进行了总结。
以下是我们对实验内容的总结:一、实验背景1.1 IIR和FIR滤波器的概念IIR滤波器又称为“递归滤波器”,其特点是反馈自身的输出值作为输入。
FIR滤波器又称为“非递归滤波器”,其特点是只利用当前和过去的输入值。
两者在设计和性能上有所不同。
1.2 实验目的本次实验旨在通过设计IIR和FIR滤波器,加深对数字信号处理中滤波器性能和设计原理的理解,以及掌握滤波器在实际应用中的参数选择和性能评估方法。
二、实验过程2.1 IIR滤波器设计我们首先进行了IIR滤波器的设计实验。
通过选择滤波器类型、截止频率、阶数等参数,利用巴特沃斯、切比雪夫等滤波器设计方法,得到了IIR滤波器的传递函数和零极点分布。
接着进行了IIR滤波器的数字仿真,对滤波器的频率响应、裙延迟等性能进行了评估。
2.2 FIR滤波器设计接下来我们进行了FIR滤波器的设计实验。
通过选择滤波器类型、截止频率、滤波器长度等参数,利用窗函数、最小均方等设计方法,得到了FIR滤波器的传递函数和频响曲线。
然后进行了FIR滤波器的数字仿真,对滤波器的幅频响应、相频响应等进行了分析。
2.3 总结我们总结了IIR和FIR滤波器的设计过程和步骤,对设计参数的选择和调整进行了讨论,同时对两种滤波器的性能进行了比较和评价。
三、实验结果分析3.1 IIR滤波器性能分析通过实验,我们得到了IIR滤波器的频率响应曲线、裙延迟等性能指标。
我们分析了滤波器的截止频率对性能的影响,以及阶数、滤波器类型对性能的影响,并进行了参数优化和调整。
3.2 FIR滤波器性能分析同样地,我们得到了FIR滤波器的幅频响应曲线、相频响应等性能指标。
我们分析了滤波器长度、截止频率对性能的影响,以及窗函数、设计方法对性能的影响,并进行了参数优化和调整。
