实验二-IIR数字滤波器的设计
- 格式:doc
- 大小:136.50 KB
- 文档页数:7
数字滤波器设计及滤波
给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定)例如:通带截止频率wp=0.25*pi, 阻通带截止频率ws=0.3*pi; 通带最大衰减Rp=1 dB; 阻带最小衰减Rs=15 dB,每个题目至少设计出3个用不同方法的不同类型滤波器。
采用双线性变换法,分别利用不同的原型低通滤波器(Butterworth型与切比雪夫I型)来设计各型IIR滤波器(低通、高通、带通、带阻中的至少3种类型),绘出滤波器的频域响应;并用这些数字滤波器对含噪语音信号分别进行滤波处理,比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析(或解释)。
下面的代码也许对你有用。
b=[传递函数分子的系数];
a=[传递函数分母的系数];
y= filter(b,a,z);
Y=fft(y,n);
sound(y,fs,bits);
sound(z,fs,bits);
subplot(2,1,1);plot(y);title('滤波后的信号波形');
subplot(2,1,2);plot(abs(Y));title('滤波后的信号频谱');
写出演讲材料与实验报告。
实验三IIR数字滤波器设计实验报告一、实验目的:1.通过仿真冲激响应不变法和双线性变换法2.掌握滤波器性能分析的基本方法二、实验要求:1.设计带通IIR滤波器2.按照冲激响应不变法设计滤波器系数3. 按照双线性变换法设计滤波器系数4. 分析幅频特性和相频特性5. 生成一定信噪比的带噪信号,并对其滤波,对比滤波前后波形和频谱三、基本原理:㈠IIR模拟滤波器与数字滤波器IIR数字滤波器的设计以模拟滤波器设计为基础,常用的类型分为巴特沃斯(Butterworth)、切比雪夫(Chebyshev)Ⅰ型、切比雪夫Ⅱ型、贝塞尔(Bessel)、椭圆等多种。
在MATLAB信号处理工具箱里,提供了这些类型的IIR数字滤波器设计子函数。
(二)性能指标1.假设带通滤波器要求为保留6000hz~~7000hz频段,滤除小于2000hz和大宇9000hz频段2.通带衰减设为3Db,阻带衰减设为30dB,双线性变换法中T取1s.四、实验步骤:1.初始化指标参数2.计算模拟滤波器参数并调用巴特沃斯函数产生模拟滤波器3.利用冲激响应不变法和双线性变换法求数字IIR滤波器的系统函数Hd (z)4.分别画出两种方法的幅频特性和相频特性曲线5.生成一定信噪比的带噪信号6.画出带噪信号的时域图和频谱图6.对带噪信号进行滤波,并画出滤波前后波形图和频谱图五、实验结果模拟滤波器的幅频特性和相频特性:101010101Frequency (rad/s)P h a s e (d e g r e e s )1010101011010-5100Frequency (rad/s)M a g n i t u d e在本实验中,采用的带通滤波器为6000-7000Hz ,换算成角频率为4.47-0.55,在上图中可以清晰地看出到达了题目的要求。
冲击响应不变法后的幅频特性和相频特性:0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )双线性变换法的幅频特性和相频特性:0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )通过上图比较脉冲响应不变法双线性变换法的幅频特性和相频特性,而在在幅频曲线上几乎没有差别,都能达到相同的结果。
实验二IIR数字滤波器设计与实现一.实验目的.1. 学会调用DSPM程序设计IIR数字滤波器,并给出H(z)的具体表达式。
2. 学会将滤波器“系数”与滤波汇编程序结合,编译、链接、装入DSP试验箱电路板内存,并装入DSP芯片运行,完成对模拟信号的采样进行滤波。
3. 通过改变信号源信号频率,观察滤波后信号的衰减情况与信号频率的关系,体会滤波器的工作原理。
二.实验原理1.调用DSP试验箱配套的Matlab源程序DSPM,通过自己给定IIR数字滤波器关键参数(f p,f st,f s, N,A p,A s等)由计算机系统完成IIR数字滤波器H(z)函数系数的计算,并给出(b0,b1,…b M,a1,…a N)。
2.通过将(b0,b1,…b M,a1,…a;f s, N )与滤波器汇编程序结合,并编译、链接、装入DSP试验箱电路板内存,并装入DSP芯片运行实现对信号的滤波,这一系列过程均在DSPM程序管理下自动进行。
3.滤波效果的检验,可通过改变信号源频率、观察输出信号在示波器屏上衰减情况来完成。
三.实验任务1.进一步熟悉DSP实验箱电路各模块的功能。
2.能独立完成实验一所提的软件安装过程。
3.设计一个IIR数字滤波器,要求Fs=64kHz,fp=3000Hz,N=3,调用DSPM完成设计,记录相关参数,并给出H(z)的具体表达式。
4.调用DSP.exe程序,实现对信号的滤波。
5.记录信号开始衰减的频率及信号衰减为0.7、0.5、0.1各处相应的信号频率。
6.信号分别选为三角波,正弦波,方波,调整信号频率,观察记录输出信号波形及输入信号频率及示波器通带截止频率的关系。
四.试验设备及准备1.所用设备:DSP试验箱,微机,示波器。
2.连线微机------------ DSP实验箱(COM口)示波器:CH1---------信号源CH2---------D/A输出(TPD05)DSP实验箱电路板:A/D:PA01-------TP501(信号源)PA02-------GN DP A03-------TP902(DSP串口1收数据)1)PA04-------TP911(FSR1)PA05-------TP913(BCLKD/A:PD01------TP905(DX0)PD02-------TP908(BCLK0)PD03-------TP907(FS0)五.试验数据分析1.画所设计的IIR滤波器的幅频特性曲线。
实验二 IIR 数字滤波器设计及软件实现1. 实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法;(2)学会调用MATLAB 信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool )设计各种IIR 数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR 数字滤波器的MATLAB 实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
2.实验原理设计IIR 数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB 信号处理工具箱中的各种IIR 数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter 、cheby1 、cheby2 和ellip 可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR 数字滤波器。
本实验的数字滤波器的MATLAB 实现是指调用MATLAB 信号处理工具箱函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n )。
3. 滤波器参数及实验程序清单 (1)滤波器参数选取三路调幅信号的载波频率分别为250Hz 、500Hz 、1000Hz 。
带宽(也可以由信号产生函数mstg 清单看出)分别为50Hz 、100Hz 、200Hz 。
所以,分离混合信号st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的指标参数选取如下:对载波频率为250Hz 的条幅信号,可以用低通滤波器分离,其指标为带截止频率275=p f Hz ,通带最大衰减1.0=p αdB ;阻带截止频率450=s f Hz ,阻带最小衰减60=s αdB 。
IIR数字滤波器的设计一、实验目的1、了解IIR数字滤波器的工作原理和作用2、掌握IIR数字滤波器的两种设计方法3、掌握使用MATLAB形成IIR数字滤波器二、实验内容有三首音乐,第一首为正常音质的音乐。
第二首为被加了紧邻原音乐的干扰的音乐。
第三首为被加了远离原音乐干扰的音乐。
要求设计IIR数字滤波器将被干扰的音乐恢复成不受干扰的音乐。
三、实验步骤步骤1: 将实际模拟低通滤波器指标转化为归一化模拟低通滤波器指标λs, αs, αp步骤2: 确定归一化模拟低通滤波器的系统函数Ha(p)步骤3: 由Ha(p)确定实际模拟低通滤波器的系统函数Ha(s)步骤4: 由Ha(s)确定的参数利用MATLAB形成IIR数字滤波器四、实验方法1、脉冲不变相应法:Matlab提供了脉冲不变响应法的库函数:[bz,az]=impinvar(b,a,Fs);表示将分子向量为b,分母向量为a的模拟滤波器通过脉冲响应不变法转换为分子向量为bz,分母向量为az的数字滤波器,采样频率为Fs,单位Hz。
2、双线性变换法:Matlab提供了双线性变换法的库函数:[bz,az]=bilinear(b,a,Fs);表示将分子向量为b,分母向量为a的模拟滤波器通过双线性变换法转换为分子向量为bz,分母向量为az的数字滤波器,采样频率为Fs,单位Hz。
五、实验程序与结果MATLAB代码:clear all;[s1,Fs,bits]=wavread('F:\music2-1.wav');s2=wavread('F:\music2-2.wav');s3=wavread('F:\music2-3.wav');t=(0:length(s1)-1)/Fs; % 计算数据时刻N=length(s1);if mod(N,2)==0;N=N;else s1(N)=[];N=N-1;end;fx=(0:N/2)*Fs/N;%%%%%%%%信号1%%%%%%%%figure(1);subplot(2,1,1);plot(t,s1); %绘制原音乐波形图subplot(2,1,2);s1f=fft(s1);plot(fx,abs(s1f(1:N/2+1)));%%%%%%%%信号2%%%%%%%%figure(2);subplot(2,1,1);plot(t,s2); % 绘制受紧邻原音乐的干扰的音乐的波形图subplot(2,1,2);s2f=fft(s2);plot(fx,abs(s2f(1:N/2+1)));%%%%%%%%信号3%%%%%%%%figure(3);subplot(2,1,1);plot(t,s3); %绘制受远离原音乐的干扰的音乐的波形图subplot(2,1,2);s3f=fft(s3);plot(fx,abs(s3f(1:N/2+1)));%%%%%%%%%滤波器设计1%%%%%%%Wp1=[2*8000*pi/Fs,2*10000*pi/Fs];Ws1=[2*8500*pi/Fs,2*9500*pi/Fs]; Rp=3;Rs=30;Wp11=2*Fs*tan(Wp1/2);Ws11=2*Fs*tan(Ws1/2);[N1,Wn1]=buttord(Wp11,Ws11,Rp,Rs,'s');[b,a]=butter(N1,Wn1,'stop','s');[bz,az]=bilinear(b,a,Fs);Y1=filter(bz,az,s2);figure(4);subplot(2,1,1);plot(t,Y1); %绘制滤波后波形图subplot(2,1,2);Yf1=fft(Y1);plot(abs(Yf1));wavwrite(Y1,Fs,bits,'F:\ music2-2lvbo.wav');%%%%%%%%%滤波器设计2%%%%%%%Wp2=2*7000*pi;Ws2=2*9000*pi;Rp2=3;Rs2=30;[N2,Wn2]=buttord(Wp2,Ws2,Rp2,Rs2,'s');[b2,a2]=butter(N2,Wn2,'s');[bz2,az2]=impinvar(b2,a2,Fs);Y2=filter(bz2,az2,s3);figure(5);subplot(2,1,1);plot(t,Y2); % 绘制滤波后波形图subplot(2,1,2);Yf2=fft(Y2);plot(abs(Yf2)); % 绘制滤波后波形图%%%%%%%%%%%%%%%%%%%%%%W=linspace(0,pi,pi*16000);Hz1=freqz(bz2,az2,W);Hz2=freqz(bz,az,W);figure(6);subplot(2,1,1);plot(abs(Hz1));subplot(2,1,2);plot(abs(Hz2));wavwrite(Y2,Fs,bits,'F:\music2-3lvbo.wav');。
并联型把H(z)展开成部分分式之和。
2(1)脉冲响应不变法用数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),让h(n)正好等于ha(t)的采样值,即h(n)= ha(nT)。
其中T为采样间隔,如果以Ha(S)及H(z)分别表示ha(t)的拉式变换及h(n)的Z变换,则(2)双线性变换法S平面与z平面之间满足以下映射关系:。
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。
双线性变换不存在混叠问题。
双线性变换时一种非线性变换,这种非线性引起的幅频特性畸变可通过预畸而得到校正。
利用双线性法设计IIR数字低通滤波器步骤归纳如下:a.确定数字滤波器的性能指标:通带临界频率fp、阻带临界频率fr.;通带内的最大衰减Ap;阻带内的最小衰减Ar;采样周期T;b.将数字低通滤波器的技术指标转换成相应的模拟低通滤波器技术指标。
确221122111)(------++=zzzzzHjjjjjjααβββ0121112111121()()()11(1)iNNiii iiEii iiiFiApH z A H z H z H zAAzz zd zzAγαγα-===----=++++=+-=+--+-+∑∑∑定相应的数字角频率,ωp=2πfpT;ωr=2πfrT;c.计算经过预畸的相应模拟低通原型的频率,;d. 根据Ωp和Ωr计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha(s);e.用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z);(二)实验项目题目:设计一个巴特沃斯低通滤波器,要求如下:通带截止频率 100HZ阻带截止频率 200HZ通带衰减小于 2 dB阻带衰减大于 15dB采样频率 500 HZ1.采用脉冲响应不变法2.采用双线性法实验内容:1.采用脉冲响应不变法FS=500;T=1/FS;fp=100;fs=200;wp=2*pi*100;ws=2*pi*200;rp=2;rs=15;[N,wc] = buttord(wp, ws, rp, rs, 's');[B,A]=butter(N, wc,'s');[Bz,Az] = impinvar(B,A,FS)[S,G]=tf2sos(Bz,Az) %直接型到级联型的转换函数[C3,B3,A3] = dir2par(Bz,Az) % 由直接型转化为并联型fk=0:511;HW=freqz(Bz,Az);plot(fk,20*log10(abs(HW)));Grid onxlabel('频率');ylabel('幅度');运行结果:Bz =0 0.4901 0.1951 0Az =1.0000 -0.5695 0.3207 -0.0583S =0 1.0000 0 1.0000 -0.2415 01.0000 0.3980 0 1.0000 -0.3280 0.2415G=0.4901C3 =B3 =-1.4209 0.61311.4209 0A3 =1.0000 -0.3280 0.24151.0000 -0.2415 0图1.1脉冲响应不变法滤波器频响由运行结果得出:直接型:0.4901z-1+0.1951z-2H(Z) =1-0.5695z-1+0.3207z-2-0.0583z-3图1.2直接型级联型图1.3级联型(a)图1.4级联型(b) 并联型2.双线性法FS=500;T=1/FS;fp=100;fs=200;Rp=2;Rs=15;wp=2*pi*fp*T; % 临界频率采用角频率表示ws=2*pi*fs*T;Op=2/T*tan(wp/2); % 频率预畸Os=2/T*tan(ws/2);[N,Wc] = buttord(Op, Os, Rp, Rs, 's');[B,A]=butter(N, Wc, 's'); % 求Ha(s)[Bz,Az] = bilinear(B,A,FS) % 求H(z)[S,G]=tf2sos(Bz,Az)[C3,B3,A3] = dir2par(Bz,Az)w=0:pi;Hk=freqz(Bz,Az,w);subplot(2,1,1);plot(w,20*log10(abs(Hk)));grid on;xlabel('角频率(w)');ylabel('幅度');title('滤波器频响');wf=w*FS/(2*pi); % 转化为Hzsubplot(2,1,2);plot(wf,20*log10(abs(Hk)));grid on;xlabel('频率(Hz)');ylabel('幅度|');运行结果:Bz =0.3752 0.7504 0.3752Az =1.0000 0.3120 0.1888S =1.00002.0000 1.0000 1.0000 0.3120 0.1888G = 0.3752 C3 = 1.9870 B3 =-1.6118 0.1305 A3 =1.0000 0.3120 0.1888图1.6 双线性法滤波器频响由运行结果得出: 直接型:图1.7直接型级联型-0.3120 0.37520.7504z -1 -0.1888z -1y(n)0.3752x(n)0.3752+0.7504 z -1 + 0.3752 z -2 H(Z) = 1+0.3120z -1+0.1888z -2 1+2 z - 1 + z -2 H(Z)= 0.3752 *1+0.3120z -1+0.1888z -2图1.8级联型并联型滤波效果测试一FS=500; T=1/FS; fp=100; fs=200; wp=2*pi*100; ws=2*pi*200; rp=2; rs=15;[N,wc] = buttord(wp, ws, rp, rs, 's'); [B,A]=butter(N, wc,'s');[Bz,Az] = impinvar(B,A,FS);[S,G]=tf2sos(Bz,Az); [C3,B3,A3] = dir2par(Bz,Az);wp1=2*pi*fp*T; % 临界频率采用角频率表示 ws1=2*pi*fs*T;Op=2/T*tan(wp/2); % 频率预畸 Os=2/T*tan(ws/2);[N1,Wc1] = buttord(Op, Os, rp, rs, 's');[B1,A1]=butter(N1, Wc1, 's'); % 求Ha(s)[Bz1,Az1] = bilinear(B1,A1,FS);N=256; % 采样点数t=[0:1/FS:N/FS]; % 采样时刻S=2+2*sin(200*pi*t-pi/6)+1.5*sin(100*pi*t+pi/2);subplot(3,2,1);plot(S);title('滤波前的信号');Y = fft(S,N); % FFT变换Ayy = (abs(Y)); % 取模Ayy=Ayy/(N/2); % 换算成实际幅度:An=A/(N/2)Ayy(1)=Ayy(1)/2; % 换算第1个点模值:A0=A/NF=([1:N]-1)*FS/N; % 换算成实际频率值:F=(n-1)*Fs/Nsubplot(3,2,2);plot(F(1:N/2),Ayy(1:N/2)); %显示换算后结果,仅显示左半部分title('滤波前信号的频谱');y=filter(Bz,Az,S); % 进行滤波subplot(3,2,3);plot(y); % 滤波后信号的时域波形title('脉冲响应不变法滤波后的信号');Y = fft(y,N);Ayy = (abs(Y));Ayy=Ayy/(N/2);Ayy(1)=Ayy(1)/2;F=([1:N]-1)*FS/N;subplot(3,2,4);plot(F(1:N/2),Ayy(1:N/2)); % 滤波后信号的频谱title('脉冲响应不变法滤波后信号的频谱');y2=filter(Bz1,Az1,S); % 进行滤波subplot(3,2,5);plot(y2); % 滤波后信号的时域波形title('双线性法滤波后的信号');Y2 = fft(y2,N);Ayy2 =(abs(Y2));Ayy2=Ayy2/(N/2);Ayy2(1)=Ayy2(1)/2;F=([1:N]-1)*FS/N;subplot(3,2,6);plot(F(1:N/2),Ayy2(1:N/2)); % 滤波后信号的频谱title('双线性法滤波后信号的频谱');运行结果:图1.10滤波测试一滤波效果测试二FS=500;T=1/FS;fp=100;fs=200;wp=2*pi*100;ws=2*pi*200;rp=2;rs=15;[N,wc] = buttord(wp, ws, rp, rs, 's');[B,A]=butter(N, wc,'s');[Bz,Az] = impinvar(B,A,FS)N=256; % 采样点数t=[0:1/FS:N/FS]; % 采样时刻S=2+2*sin(200*pi*t-pi/6)+1.5*sin(100*pi*t+pi/2); subplot(2,2,1)plot(S);title('滤波前的信号');Y = fft(S,N); % FFT变换Ayy = (abs(Y)); % 取模Ayy=Ayy/(N/2); % 换算成实际幅度:An=A/(N/2)Ayy(1)=Ayy(1)/2; % 换算第1个点模值:A0=A/NF=([1:N]-1)*FS/N; % 换算成实际频率值:F=(n-1)*Fs/N subplot(2,2,2);plot(F(1:N/2),Ayy(1:N/2)); %显示换算后结果,仅显示左半部分title('滤波前信号的频谱');s_temp=zeros(1,256); % 设置单位脉冲信号s_temps_temp(1)=1;hn=filter(Bz,Az,s_temp) % 将s_temp作为滤波器输入,输出即为h(n)HNK=fft(hn,512); % 求h(n)的FFTSK=fft(S,512); % 原始信号的FFTTempK=HNK.*SK; % 频域相乘Tempn=ifft(TempK,512); % 求IFFT,结果为卷积结果subplot(2,2,3);plot(Tempn);title('滤波后的信号');Y = fft(Tempn);Ayy = (abs(Y));Ayy=Ayy/(512/2);Ayy(1)=Ayy(1)/2;F=([1:N]-1)*FS/512;subplot(2,2,4);plot(F(1:512/2),Ayy(1:512/2));title('滤波后信号的频谱');运行结果:图1.11滤波测试二四、实验小结在这次实验中,第一次是脉冲响应不变法的方法,根据实验的要求,编写了由直接型到级联型的转换函数,以及由直接型转化为并联型的函数,分别求出了对应结构的系数向量,以方便画出信号的流程图。
iir数字滤波器的设计方法IIR数字滤波器的设计方法IIR数字滤波器是一种常用的数字信号处理工具,用于对信号进行滤波和频率域处理。
其设计方法是基于传统的模拟滤波器设计技术,通过将连续时间滤波器转换为离散时间滤波器来实现。
本文将介绍IIR数字滤波器的设计方法和一些常见的实现技巧。
一、IIR数字滤波器的基本原理IIR数字滤波器是一种递归滤波器,其基本原理是将输入信号与滤波器的系数进行加权求和。
其输出信号不仅与当前输入值有关,还与之前的输入和输出值有关,通过不断迭代计算可以得到最终的输出结果。
二、IIR数字滤波器的设计步骤1. 确定滤波器的类型:低通滤波器、高通滤波器、带通滤波器或带阻滤波器。
2. 确定滤波器的阶数:阶数决定了滤波器的陡峭度和性能。
3. 选择滤波器的截止频率或通带范围。
4. 根据所选的滤波器类型和截止频率,设计滤波器的模拟原型。
5. 将模拟原型转换为数字滤波器。
三、IIR数字滤波器的设计方法1. 巴特沃斯滤波器设计方法:- 巴特沃斯滤波器是一种最常用的IIR数字滤波器,具有平坦的通带特性和陡峭的阻带特性。
- 设计方法为先将模拟滤波器转换为数字滤波器,然后通过对模拟滤波器进行归一化来确定截止频率。
2. 阻带衰减设计方法:- 阻带衰减设计方法是一种通过增加滤波器的阶数来提高滤波器阻带衰减特性的方法。
- 通过增加阶数,可以获得更陡峭的阻带特性,但同时也会增加计算复杂度和延迟。
3. 频率变换方法:- 频率变换方法是一种通过对滤波器的频率响应进行变换来设计滤波器的方法。
- 通过对模拟滤波器的频率响应进行变换,可以得到所需的数字滤波器。
四、IIR数字滤波器的实现技巧1. 级联结构:- 将多个一阶或二阶滤波器级联起来,可以得到更高阶的滤波器。
- 级联结构可以灵活地实现各种滤波器类型和阶数的设计。
2. 并联结构:- 将多个滤波器并联起来,可以实现更复杂的频率响应。
- 并联结构可以用于设计带通滤波器和带阻滤波器。
实验三IIR数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
二、实验原理设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。
脉冲响应不变法:根据设计指标求出滤波器确定最小阶数N和截止频率Wc;计算相应的模拟滤波器系统函数;将模拟滤波器系统函数:'转换成数字滤波器系统函数双线性变换法:根据数字低通技术指标得到滤波器的阶数N;取合适的T值,几遍校正计算相应模低通的技术指标--;根据阶数N查表的到归一化低通原型系统函数。
,将"' Q 代入。
‘去归一化得到实际的,/ :' ;用双线性变换法将:’转换成数字滤波器三、实验内容及步骤1、用脉冲响应不变法设计(1)根据设计指标求出滤波器确定最小阶数N和截止频率Wcclear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn 得到结果为:N 二7Wn 二 0.3266 即:该设计指标下的模拟滤波器最小阶数为N=7,其截至频率为Wn =0.3266;(2)计算相应的模拟滤波器系统函数打:, clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数 Wn[B,A]=butter(N,1,'s' %计算相应的模拟滤波器系统函数得到结果为: B = 1.0e-003 * 0 00 0 0 0 0 0.3966 A =1.0000 1.4678 1.0773 0.5084 0.1661 0.0375 0.0055 0.0004 >>(3)将模拟滤波器系统函数转换成数字滤波器系统函数 clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn[B,A]=butter(N,1,'s' ; %计算相应的模拟滤波器系统函数 [Bz,Az]=impinvar(B,A %用脉冲相应不变法将模拟滤波器转换成数字滤波器 sys=tf(Bz,Az,T; %得到传输函数‘‘‘‘‘ Bz =1.0e-004 *-0.0000 0.0045 0.2045 0.8747 0.7094 0.1090 0.0016 0Az =1.0000 -5.5415 13.2850 -17.8428 14.4878 -7.1069 1.9491 -0.2304>>>>即:由Bz和Az可以写出数字滤波器系统函数为:Transfer function:-9.992e-015 z~7 + 4.454e-007 z~6 + 2.045e-005 z~5 + 8.747e-005 z~4 + 7.094e-005 z"3 + 1.09e-005 z~2+ 1.561e-007 z z 7 - 5.541 z 6 + 13.28 z 5 - 17.84 z 4 + 14.49 z 3 - 7.107 z 2 + 1.949 z - 0.2304Sampling time: 4.5351e-005>>(4)绘图clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth 的最小阶数N 和频率参数Wn[B,A]=butter(N,Wn,'s'; %计算相应的模拟滤波器系统函数[Bz,Az]=impinvar(B,A; %用脉冲响应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T;%得到传输函数‘ [H,W]=freqz(Bz,Az,512,Fs; % 生成频率响应参数plot(W,20*log10(abs(H; % 绘制幅频响应grid on; %加坐标网格得到结果为:观察实验结果图可看到:在频率为3402Hz处频率为衰减2.015db,在频率为5017Hz处幅度衰减21.36db。
IIR数字滤波器的设计步骤1.简介I I R(In fi ni te Im pu l se Re sp on se)数字滤波器是一种常用的数字信号处理技术,它的设计步骤可以帮助我们实现对信号的滤波和频率选择。
本文将介绍I IR数字滤波器的设计步骤。
2.设计步骤2.1确定滤波器的类型I I R数字滤波器的类型分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
根据信号的要求,我们需确定所需滤波器的类型。
2.2确定滤波器的规格根据滤波器的应用场景和信号特性,我们需确定滤波器的通带范围、阻带范围和衰减要求。
2.3选择滤波器的原型常用的I IR数字滤波器有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。
根据滤波器的需求,我们需选择适合的滤波器原型。
2.4设计滤波器的传递函数根据滤波器的规格和选定的滤波器原型,我们需计算滤波器的传递函数。
传递函数表示了输入和输出之间的关系,可以帮助我们设计滤波器的频率响应。
2.5对传递函数进行分解将滤波器的传递函数进行分解,可得到II R数字滤波器的差分方程。
通过对差分方程进行相关计算,可以得到滤波器的系数。
2.6滤波器的稳定性判断根据滤波器的差分方程,判断滤波器的稳定性。
稳定性意味着滤波器的输出不会无限增长,确保了滤波器的可靠性和准确性。
2.7选择实现方式根据滤波器的设计需求和实际应用场景,我们需选择I IR数字滤波器的实现方式。
常见的实现方式有直接I I型、级联结构和并行结构等。
2.8优化滤波器性能在设计滤波器后,我们可以对滤波器的性能进行优化。
优化包括滤波器的阶数和抗混淆能力等方面。
3.总结I I R数字滤波器的设计步骤包括确定滤波器的类型和规格、选择滤波器的原型、设计滤波器的传递函数、对传递函数进行分解、判断滤波器的稳定性、选择实现方式和优化滤波器性能等。
通过这些步骤的实施,我们可以有效地设计出满足信号处理需求的II R数字滤波器。
iir数字滤波器设计实验总结IIR数字滤波器设计实验总结一、设计目的IIR数字滤波器是数字信号处理中的一种常见滤波器。
本次实验的设计目的在于掌握IIR数字滤波器的设计方法,并掌握MATLAB软件工具在数字信号处理中的应用。
二、设计原理IIR数字滤波器是由反馈和前馈两个滤波器组成的结构,具有无限长冲激响应的特点。
其中反馈滤波器主要用于抑制高频信号,前馈滤波器则用于增益低频信号。
IIR数字滤波器通常使用差分方程表示,并通过z变换将其转化为传递函数形式。
三、设计步骤1. 选择滤波器类型和参数在实验中,我们主要采用了IIR低通滤波器的设计。
根据设计要求,选择滤波器的截止频率、通带增益和阻带衰减等参数。
2. 设计IIR滤波器传递函数根据选择的滤波器类型和参数,采用MATLAB软件中的fdatool工具箱进行设计,生成IIR滤波器的传递函数。
3. 实现数字滤波器将生成的传递函数导入到MATLAB软件中,进行编程实现,实现数字滤波器。
四、实验结果1. 对IIR数字滤波器进行功能验证采用MATLAB软件中的测试向量,对IIR数字滤波器进行功能验证。
比较输入信号和输出信号的波形和频谱图,验证滤波器的正确性。
2. 对IIR数字滤波器的性能进行测试采用不同波形和频率的信号,对IIR数字滤波器的性能进行测试。
比较滤波器输出信号和参考信号的波形和频谱图,评估滤波器的性能。
五、实验体会通过本次实验,我们学会了IIR数字滤波器的设计方法和MATLAB软件的应用技巧。
同时,我们也深刻理解了数字信号处理中常见的滤波器的工作原理和特点。
此外,实验还培养了我们的编程实践能力和信号处理思维能力。
六、总结IIR数字滤波器是数字信号处理中常用的滤波器,其设计方法和MATLAB软件的应用技巧都是数字信号处理领域中必备的知识点。
通过本次实验,我们深刻理解了滤波器的工作原理和特点,并在编程实践中掌握了数字信号处理的基本技能,收益颇丰。
实验报告姓名:李鹏博 实验名称: IIR 数字滤波器设计 学号:2011300704 课程名称: 数字信号处理 班级:03041102 实验室名称: 航海西楼303 组号: 1 实验日期: 2014.06.20一、实验目的、要求掌握IIR 数字滤波器设计的冲激响应不变法和双线性变换法。
掌握IIR 数字滤波器的计算机编程实现方法,即软件实现。
二、实验原理为了从模拟滤波器设计IIR 数字滤波器,必须先设计一个满足技术指标的模拟滤波器,然后将其数字化,即从s 平面映射到z 平面,得到所需的数字滤波器。
虽然IIR 数字滤波器的设计本质上并不取决于连续时间滤波器的设计,但是因为在许多应用中,数字滤波器就是用来模仿模拟滤波器功能的,所以由模拟滤波器转化为数字滤波器是很自然的。
因此,由模拟滤波器设计数字滤波器的方法准确、简便,是目前最普遍采用的方法。
三、实验环境PC 机,Windows XP ,office 2003,Matlab 软件。
四、实验过程、数据记录、分析及结论实验过程1.编程设计滤波器,用冲激响应不变法设计IIR 数字滤波器。
2.编程设计滤波器,用双线性变换法设计IIR 数字滤波器。
3.求脉冲响应、频率响应以及零极点。
4.编程滤波,求滤波器输出,完成对不同频率的多个正弦信号的滤波。
实验步骤根据所给定的技术指标进行指标转换。
112c c f πΩ=,222c c f πΩ=,112s s f πΩ=,222s s f πΩ=,21p c c B Ω==Ω-Ω,221222s s s s s B Ω-ΩΩΩ=Ω,3,18p s αα=-=-。
根据指标设计Butterworth 模拟低通滤波器。
调用函数[n,wn]=buttord(wp,ws,rp,rs,’s ’)确定阶次。
调用函数[zl,pl,kl]=buttap(n),求低通原型的模型。
调用函数[bl,al]=zp2tf(zl,pl,kl)实现模型转换。
IIR数字滤波器的设计及软件实现什么是IIR数字滤波器?IIR数字滤波器是一种数字信号处理滤波器,它基于递归的思想,可以对原始信号进行滤波处理。
与FIR数字滤波器相比,IIR数字滤波器具有更高的效率和更灵活的设计。
它的设计基于对滤波器的传递函数进行分析和优化,可以通过不同的传递函数来实现不同的滤波目标。
IIR数字滤波器的设计方法要设计一个IIR数字滤波器,可以采用以下步骤:步骤1:确定滤波器的类型根据滤波的目的和要求,确定滤波器的类型。
常见的滤波器类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
步骤2:计算滤波器的阶数滤波器的阶数是指滤波器中的二阶段数。
阶数越高,滤波器的性能越好,但也意味着计算量和实现难度会增加。
根据滤波的要求和性能要求,计算滤波器的阶数。
步骤3:选择滤波器的截止频率滤波器的截止频率是指滤波器在截止频率附近的频率响应。
对于低通滤波器和高通滤波器,截止频率通常是一个常数。
对于带通滤波器和带阻滤波器,截止频率需要确定两个频率。
步骤4:计算滤波器的传递函数根据滤波器类型、阶数和截止频率,可以通过传递函数的计算得到滤波器的传递函数。
步骤5:采用正则化处理在计算得到传递函数后,需要进行正则化处理。
正则化处理可以消除传递函数中的不稳定性,并确保滤波器的稳定性和可变性。
步骤6:实现反馈环和前馈环根据传递函数,可以实现反馈环和前馈环。
反馈环和前馈环的选择会影响滤波器的性能。
IIR数字滤波器的软件实现要实现IIR数字滤波器,可以使用MATLAB或Python等数学软件。
这里以Python为例进行说明。
步骤1:导入必要的库import numpy as np #用于处理数组和矩阵import scipy.signal as signal #用于信号处理import matplotlib.pyplot as plt #用于绘图步骤2:指定滤波器的类型、截止频率和阶数type ='lowpass'#低通滤波器fc =2000#截止频率order =4#阶数步骤3:计算滤波器的系数b, a = signal.butter(order, fc, type)步骤4:生成信号并进行滤波t = np.linspace(0, 1, 500, endpoint=False)x = np.sin(2* np.pi *5* t) + np.sin(2* np.pi *10* t) + np.sin(2* np.pi *20* t)y = signal.filtfilt(b, a, x)步骤5:绘制原始信号和滤波后的信号plt.plot(t, x, label='original signal')plt.plot(t, y, label='filtered signal')plt.legend(loc='best')plt.show()IIR数字滤波器是数字信号处理中一种重要的滤波器。
iir数字滤波器的设计实验报告IIR数字滤波器的设计实验报告引言数字滤波器是数字信号处理中的重要组成部分,用于去除信号中的噪声、滤波、频率分析等。
在数字滤波器中,IIR(Infinite Impulse Response)滤波器是一种常见且广泛应用的滤波器类型。
本实验旨在设计一个IIR数字滤波器,并通过实验验证其性能。
一、实验目的本实验的目标是设计一个IIR数字滤波器,实现对输入信号的滤波功能。
具体而言,我们将通过以下步骤完成实验:1. 确定滤波器的滤波类型(低通、高通、带通或带阻)和截止频率。
2. 设计滤波器的传递函数。
3. 使用Matlab或其他数学软件进行滤波器的频率响应和时域响应分析。
4. 利用实验数据对滤波器进行性能评估。
二、实验原理IIR数字滤波器的设计基于差分方程,其传递函数可以表示为:H(z) = (b0 + b1*z^(-1) + b2*z^(-2) + ... + bn*z^(-n)) / (1 + a1*z^(-1) +a2*z^(-2) + ... + am*z^(-m))其中,b0、b1、...、bn和a1、a2、...、am是滤波器的系数。
滤波器的阶数为max(m, n)。
根据滤波器的滤波类型和截止频率,可以确定这些系数的具体值。
三、实验步骤1. 确定滤波器的类型和截止频率。
例如,我们选择设计一个低通滤波器,截止频率为1kHz。
2. 根据所选滤波器类型和截止频率,计算滤波器的传递函数。
3. 使用Matlab或其他数学软件进行滤波器的频率响应和时域响应分析。
可以绘制滤波器的幅频响应曲线和相频响应曲线,以及滤波后的信号波形。
4. 利用实验数据对滤波器进行性能评估。
可以通过输入不同频率的信号,观察滤波器的效果,并计算滤波器的截止频率、增益和相位特性等参数。
四、实验结果与分析通过实验,我们得到了设计的低通滤波器的频率响应和时域响应曲线。
在频率响应曲线中,我们可以观察到滤波器在截止频率附近的衰减特性,以及在截止频率以下的通过特性。
实验二 IIR 数字滤波器设计一.实验目的1.掌握双线性变换法设计IIR 数字滤波器的原理及具体设计方法,熟悉用双线性变换法设计低通、带通和高通IIR 数字滤波器的计算机编程。
2.观察用双线性变换法设计的数字滤波器的频域特性,了解双线性变换法的特点。
3.熟悉用双线性变换法设计数字Butterworth 和Chebyshev 滤波器的全过程。
4. 通过观察对实际心电图信号的滤波作用,获得数字滤波工程应用的认识。
二.实验原理与方法1. IIR 数字滤波器可以借助于模拟滤波器设计,即先设计一个适于技术要求的原型模拟滤波器,再按一定的准则用映射的方法将模拟原型的传递函数Ha(s)变换为数字滤波器的系统函数H(z),从而完成数字滤波器的设计任务。
这是一类简单而有效的方法,因为模拟滤波器理论已经相当成熟,有大量公式图表可以利用。
2. 双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。
由双线性变换式 1111z s z ---=+ 建立s 平面与z 平面的单值映射关系,频率变换关系为()2tg ωΩ=。
s 平面的频率轴j Ω单值对应于z 平面上的单位圆j z e ω=,因此不存在频率混叠问题。
由于Ω与ω间的非线性关系,使各个临界频率位置发生非线性畸变,可以通过预畸变校正。
用双线性变换法设计数字滤波器时,先将数字滤波器的各临界频率经过频率预畸变求得模拟原型滤波器的各临界频率,设计模拟原型传递函数,通过双线性变换,正好将这些频率点映射到所需位置上。
双线性变换法设计数字低通滤波器步骤如下:(1)确定数字滤波器的性能指标,包括:通带、阻带临界频率,通带内最大衰减,阻带内最小衰减,采样周期 T 。
(2)确定相应的数字频率。
(3)计算预畸的模拟低通原型临界频率。
(4)计算低通原型阶数N 和3dB 频率ΩC ,求得传递函数Ha(s)。
(5)用低通变换公式1111z s z---=+代入Ha(s),求得数字滤波器系统函数H(z)。
iir数字滤波器设计及c语言程序IIR数字滤波器设计及C语言程序IIR(Infinite Impulse Response)数字滤波器是一种常用的数字信号处理技术,广泛应用于音频处理、图像处理、通信系统等领域。
本文将介绍IIR数字滤波器的设计原理,并给出相应的C语言程序实现。
一、IIR数字滤波器的设计原理IIR数字滤波器的设计基于差分方程,其输入信号和输出信号之间存在一定的差分关系。
相比于FIR(Finite Impulse Response)数字滤波器,IIR数字滤波器具有更窄的转换带宽、更高的滤波器阶数和更好的相位响应等特点。
IIR数字滤波器的设计主要包括两个关键步骤:滤波器规格确定和滤波器参数计算。
首先,根据实际需求确定滤波器的类型(低通、高通、带通或带阻)、截止频率、通带衰减和阻带衰减等规格。
然后,根据这些规格利用数字滤波器设计方法计算出滤波器的系数,从而实现对输入信号的滤波。
二、IIR数字滤波器的设计方法常见的IIR数字滤波器设计方法有脉冲响应不变法、双线性变换法和最小均方误差法等。
下面以最常用的脉冲响应不变法为例介绍设计方法。
脉冲响应不变法的基本思想是将模拟滤波器的脉冲响应与数字滤波器的单位脉冲响应进行匹配。
首先,根据模拟滤波器的传递函数H(s)确定其脉冲响应h(t)。
然后,将连续时间下的脉冲响应离散化,得到离散时间下的单位脉冲响应h[n]。
接下来,根据单位脉冲响应h[n]计算出数字滤波器的差分方程系数,从而得到滤波器的数字表示。
三、IIR数字滤波器的C语言程序实现下面给出一个简单的IIR数字滤波器的C语言程序实现示例,以低通滤波器为例:```c#include <stdio.h>#define N 100 // 输入信号长度#define M 5 // 滤波器阶数// IIR数字滤波器系数float b[M+1] = {0.1, 0.2, 0.3, 0.2, 0.1};float a[M+1] = {1.0, -0.5, 0.3, -0.2, 0.1};// IIR数字滤波器函数float IIR_filter(float *x, float *y, int n) {int i, j;float sum;for (i = 0; i < n; i++) {sum = 0;for (j = 0; j <= M; j++) { if (i - j >= 0) {sum += b[j] * x[i - j]; }}for (j = 1; j <= M; j++) { if (i - j >= 0) {sum -= a[j] * y[i - j]; }}y[i] = sum;}}int main() {float x[N]; // 输入信号float y[N]; // 输出信号int i;// 生成输入信号for (i = 0; i < N; i++) {x[i] = i;}// IIR数字滤波器滤波IIR_filter(x, y, N);// 输出滤波后的信号for (i = 0; i < N; i++) {printf("%f ", y[i]);}return 0;}```以上是一个简单的IIR数字滤波器的C语言程序实现示例。
实验报告课程名称______数字信号处理___________ 实验项目______ IIR数字滤波器设计_____实验二IIR数字滤波器设计一、实验目的1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
2、掌握数字滤波器的计算机软件实现方法.3、通过观察对实际心电图信号的滤波作用,学习数字滤波器在实际中的应用。
二、实验仪器及材料计算机,MATLAB软件三、实验内容及要求1.设计巴特沃斯低通数字滤波器对人体心电信号进行滤波(1) 人体心电图信号在测量过程中会受到工业高频干扰,所以必须经过低通滤波处理,才能作为判断心脏功能的有用信息。
以下为一个实际心电图信号采样序列x(n),其中存在高频干扰,采样周期T=1秒。
在实验中,以x(n)作为输入序列,滤除其中干扰成分.x(n)=[—4,-2,0,—4,—6,-4,—2,-4,—6,—6,—4,-4,-6,-6,—2,6,12,8,0,—16,—38,-60,-84,-90,—66,-32,—4,-2,—4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,—2,-2,0,0,—2,—2,—2,-2,0]对序列x(n)用FFT做频谱分析,生成x(n)的频谱图。
(2)用冲激响应不变法设计一个巴特沃斯低通IIR数字滤波器H(z).设计指标参数为:在通带内频率低于0。
2π时,最大衰减小于1dB;在阻带内[0.3π,π]频率区间上,最小衰减大于15dB。
写出数字滤波器H(z)的表达式,画出滤波器的幅频响应曲线|)H|j .e((3)用所设计的滤波器对实际心电图信号采样序列进行滤波处理,编写程序,计算H(z)对心电图信号采样序列x(n)滤波后的序列y(n),并分别画出滤波前后的心电图信号波形图和频谱图.2.用help查看内部函数cheb1ord.m及cheby1。
m,了解调用格式,并用此函数设计一个数字切贝雪夫带通滤波器。
设计指标参数为:抽样频率fs=2kHz;在200Hz≤f≤400Hz时,最大衰减小于2dB;在f≤100Hz,f≥600Hz,最小衰减大于40dB.编程设计,求数字滤波器H(z)的表达式,画出滤波器的幅频响应曲线|)|j 。
iir数字滤波器实验报告IIR数字滤波器实验报告引言:数字滤波器是数字信号处理中重要的组成部分,它可以对信号进行滤波和去噪,提取出我们所需要的信息。
在本次实验中,我们将重点研究和实验IIR数字滤波器的性能和应用。
一、IIR数字滤波器的原理IIR(Infinite Impulse Response)数字滤波器是一种递归滤波器,它的输出不仅与当前输入有关,还与之前的输入和输出有关。
IIR滤波器的结构可以由巴特沃斯、切比雪夫等滤波器设计方法得到。
与FIR(Finite Impulse Response)数字滤波器相比,IIR滤波器具有更低的计算复杂度和更好的频率响应特性。
二、IIR数字滤波器的设计在本次实验中,我们选择了巴特沃斯滤波器作为IIR滤波器的设计方法。
巴特沃斯滤波器是一种理想的低通滤波器,具有平坦的通带和陡峭的阻带。
通过选择不同的阶数和截止频率,我们可以得到不同性能的滤波器。
三、IIR数字滤波器的性能评估为了评估IIR数字滤波器的性能,我们进行了一系列实验。
首先,我们使用MATLAB软件进行了滤波器的设计和模拟。
通过绘制滤波器的频率响应曲线和幅度响应曲线,我们可以直观地了解滤波器的性能。
其次,我们使用真实的信号进行了滤波实验。
通过对比滤波前后信号的波形和频谱图,我们可以评估滤波器的去噪和频率特性。
四、IIR数字滤波器的应用IIR数字滤波器在实际应用中具有广泛的用途。
例如,语音信号处理中常用的降噪算法就是基于IIR滤波器的。
此外,IIR滤波器还可以用于信号增强、图像处理等领域。
通过调整滤波器的参数,我们可以实现不同的滤波效果,满足不同应用场景的需求。
五、实验结果与讨论在本次实验中,我们设计了一个二阶巴特沃斯低通滤波器,截止频率为1kHz。
通过MATLAB软件模拟和实际信号滤波实验,我们得到了滤波前后信号的波形和频谱图。
实验结果表明,滤波器能够有效地去除高频噪声,并保留低频信号的主要成分。
同时,滤波器的频率响应也符合设计要求,具有良好的通带和阻带特性。
实验二 IIR 数字滤波器的设计1、 实验目的(1) 掌握脉冲响应不变法和双线性变换法设计IIR 数字滤波器的具体方法和原理,熟悉双线性变换法和脉冲响应不变法设计低通、带通IIR 数字滤波器的计算机编程;(2) 观察双线性变换法和脉冲响应不变法设计的数字滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别;(3) 熟悉Butterworth 滤波器、Chebyshev 滤波器和椭圆滤波器的频率特性。
2、实验原理与方法IIR 数字滤波器的设计方法可以概括为如图所示,本实验主要掌握IIR 滤波器的第一种方法,即利用模拟滤波器设计IIR 数字滤波器,这是IIR 数字滤波器设计最常用的方法。
利用模拟滤波器设计,需要将模拟域的H a (s)转换为数字域H(z),最常用的转换方法为脉冲响应不变法和双线性变换法。
(1)脉冲响应不变法用数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应h a (t),让h(n)正好等于h a (t)的采样值,即)()(nT h n h a =其中T 为采样间隔。
如果以H a (s)及H(z)分别表示h a (t)的拉氏变换及h(n)的Z 变换,则∑∞-∞==-=k a e z k Tj s H T z H sT )2(1|)(π 在MATLAB 中,可用函数impinvar 实现从模拟滤波器到数字滤波器的脉冲响应不变映射。
(2)双线性变换法S 平面与z 平面之间满足下列映射关系 11112--+-=z z T s 或 s Ts T z -+=22 S 平面的虚轴单值地映射于z 平面的单位圆上,s 平面的左半平面完全映射到z 平面的单位圆内。
双线性变换不存在频率混叠问题。
在MATLAB 中,可用函数bilinear 实现从模拟滤波器到数字滤波器的双线性变换映射。
双线性变换是一种非线性变换,即2tan 2ωT =Ω,这种非线性引起的幅频特性畸变可通过预畸变得到校正。
(3)设计步骤IIR 数字滤波器的设计过程中,模拟滤波器的设计是关键。
模拟滤波器的设计一般是采用分布设计的方式,这样设计原理非常清楚,具体步骤如前文所述。
MATLAB 信号处理工具箱也提供了模拟滤波器设计的完全工具函数:butter 、cheby1、cheby2、ellip 、besself 。
用户只需一次调用就可完成模拟滤波器的设计,这样虽简化了模拟滤波器的设计过程,但设计原理却被屏蔽了。
模拟滤波器设计完成之后,利用impinvar 或bilinear 函数将模拟滤波器映射为数字滤波器,即完成了所需数字滤波器的设计。
下图给出了实际低通、高通、带通和带阻滤波器的幅频特性和各截止频率的含义。
另外,为了描述过渡带的形状,还引入了通带衰减和阻带衰减的概念。
图 实际滤波器的幅频特性和各截止频率的含义通带衰减:|)(||)(|log 200p j j p e H e H ωα= dB 阻带衰减:|)(||)(|log 200s j j s e H e H ωα= dB 在MA TLAB 信号处理工具箱中,通常用R p 和R s 来表示αp 和αs 。
3、实验内容(1)参照教材 5.5节所述滤波器设计步骤,利用双线性变换法设计一个Chebyshev I 型数字高通滤波器,观察通带损耗和阻带衰减是否满足要求。
已知滤波器的指标为f p =0.3kHz ,αp =1.2dB ,f s =0.2kHz ,αs =20dB ,T=1ms 。
(2)已知f p =0.2kHz ,αp =1dB ,f s =0.3kHz ,αs =25dB ,T=1ms ,分别用脉冲响应不变法和双线性变换法设计一个Butterworth 数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求。
比较这两种方法的优缺点。
(3)设计一个数字带通滤波器,通带范围为0.25π~0.45π,通带内最大衰减3dB ,0.15π以下和0.55π以上为阻带,阻带内最小衰减为15dB ,试采用Butterworth 或ellip (椭圆)模拟低通滤波器设计。
(4)利用双线性变换法设计一个带宽为0.08π的10阶椭圆带阻滤波器以滤除数字频率为0.44π的信号,选择合适的阻带衰减值,画出幅度响应。
产生下面序列的201个样本n n x π44.0sin )(=, n=0,2,…,200并将它通过这个带阻滤波器进行处理(filter 函数),讨论所得到的结果。
4、实验报告(1)简述实验目的和实验原理。
(2)按实验步骤附上所设计的滤波器传递函数H(z)及相应的幅频特性曲线,定性分析所得到的图形,判断设计是否满足要求。
(3)总结脉冲响应不变法和双线性变换法的特点及设计全过程。
(4)收获与建议。
5、实验源程序%用双线性变换法设计一个Chebyshev型高通滤波器程序如下Rp=1.2;Rs=20;T=0.001;fp=300;fs=200;%求出待设计的数字滤波器的边界频率wp=2*pi*fp*T;ws=2*pi*fs*T;%预畸变wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);%设计模拟滤波器[n,wn]=cheb1ord(wp1,ws1,Rp,Rs,'s');[b,a]=cheby1(n,Rp,wn,'high','s');%双线性变换[bz,az]=bilinear(b,a,1/T);[db,mag,pha,w]=freqz_m(bz,az);plot(w/pi,db);axis([0,1,-30,2]);%用双线性变换法设计一个Butterworth型数字低通滤波器程序如下Rp=1;Rs=25;T=0.001;fp=300;fs=200;%求出待设计的数字滤波器的边界频率wp=2*pi*fp*T;ws=2*pi*fs*T;%预畸变wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);%设计模拟滤波器[n,wn]=buttord(wp1,ws1,Rp,Rs,'s');[b,a]=butter(n,wn,'low','s');%双线性变换[bz,az]=bilinear(b,a,1/T);[db,mag,pha,w]=freqz_m(bz,az);plot(w/pi,db);axis([0,1,-30,2]);%用脉冲响应不变法设计一个Butterworth数字低通滤波器的程序如下:%模拟滤波器的技术要求wp=400*pi;ws=600*pi;Rp=1;Rs=25;%求模拟滤波器的系统函数[n,wn]=buttord(wp,ws,Rp,Rs,'s')[b,a]=butter(n,wn,'s')%求模拟滤波器的频率响应,w取(0~1000pi)rad/s[db,mag,pha,w]=freqs_m(b,a,500*2*pi);%绘图,为了使模坐标显示频率f (单位Hz),将原变量w(模拟角频率,单位为rad/s)进行了处理plot(w/(2*pi),db,'LineWidth',2,'Color','b');axis([0,500,-20,1]);hold on%脉冲响应不变法fs=1000;[bz,az]=impinvar(b,a,fs);%求数字滤波器的频率响应[db,mag,pha,w]=freqz_m(bz,az);%绘图,为了与模拟滤波器的频响在同一坐标中绘出,需要将数字频率w转换成模拟频率f,转换公式为f=w*fs/2*piplot(0.5*fs*w/pi,db,'LineWidth',2,'Color','r');axis([0,599,-20,1]);hold off%采用ellip(椭圆)模拟低通滤波器设计,其程序如下:%确定所需类型数字滤波器的技术指标Rp=3;Rs=15;T=0.001;wp1=0.25*pi;wp2=0.45*pi;ws1=0.15*pi;ws2=0.55*pi;%将所需类型数字滤波器的技术指标转换成模拟滤波器的技术指标wp3=(2/T)*tan(wp1/2);wp4=(2/T)*tan(wp2/2);ws3=(2/T)*tan(ws1/2);ws4=(2/T)*tan(ws2/2);%将所需类型数字滤波器的技术指标转换成模拟滤波器的技术指标,设计模拟滤波器wp=[wp3,wp4];ws=[ws3,ws4];[n,wn]=ellipord(wp,ws,Rp,Rs,'s');[z,p,k]=ellipap(n,Rp,Rs);[b,a]=zp2tf(z,p,k);%频率更换w0=sqrt(wp3*wp4);Bw=wp4-wp3;[b1,a1]=lp2bp(b,a,w0,Bw);%双线性变换法[bz,az]=bilinear(b1,a1,1/T);[db,mag,pha,w]=freqz_m(bz,az);plot(w/pi,db);axis([0,1,-50,2]);%采用Butterworth模拟低通滤波器设计,其程序如下:%确定所需类型数字滤波器的技术指标Rp=3;Rs=15;T=0.001;wp1=0.25*pi;wp2=0.45*pi;ws1=0.15*pi;ws2=0.55*pi;%将所需类型数字滤波器的技术指标转换成模拟滤波器的技术指标wp3=(2/T)*tan(wp1/2);wp4=(2/T)*tan(wp2/2);ws3=(2/T)*tan(ws1/2);ws4=(2/T)*tan(ws2/2);%将所需类型数字滤波器的技术指标转换成模拟滤波器的技术指标,设计模拟滤波器wp=[wp3,wp4];ws=[ws3,ws4];[n,wn]=buttord(wp,ws,Rp,Rs,'s');[z,p,k]=buttap(n);[b,a]=zp2tf(z,p,k);%频率更换w0=sqrt(wp3*wp4);Bw=wp4-wp3;[b1,a1]=lp2bp(b,a,w0,Bw);%双线性变换法[bz,az]=bilinear(b1,a1,1/T);[db,mag,pha,w]=freqz_m(bz,az);plot(w/pi,db);axis([0,1,-50,2]);。