数字信号处理实验-IIR滤波器设计
- 格式:doc
- 大小:138.00 KB
- 文档页数:9
实验三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)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
二、实验原理与方法设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
三、实验内容及步骤(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图10.4.1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。
-10123t/ss (t )(a) s(t)的波形(b) s(t)的频谱f/Hz幅度图10.4.1三路调幅信号st 的时域波形和幅频特性曲线(2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
实验四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数字滤波器的一般步骤,具体的设计方法和过程还需要根据实际情况进行调整。
XX XX 大学XXXX 学院实验名称 IIR 数字滤波器的设计实验目的:加深理解IIR 数字滤波器的时域特性和频域特性,掌握IIR 数字滤波器的设计原理与设计方法,以及I IR数字滤波器的应用。
实验内容:IIR 数字滤波器一般为线性移不变的因果离散系统,N 阶IIR 数字滤波器的系统函数可以表达为-1z 的有理多项式,即 -1-1-2-M =0012-1-2-N -112=1z +z +z ++z (z)==1+z +z ++z 1+zM j j M N Ni i b b b b b H a a a a ∑∑ 式中:系数i a 至少有一个非零。
对于因果II R数据滤波器,应满足M N ≤。
IIR 数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现。
首先在频域将数字滤波器设计指标转换为模拟滤波器设计指标,然后将任意的模拟滤波器为原型模拟低通滤波器指标,根据模拟滤波器的设计指标来设计出模拟低通滤波器(s)LP H ,然后又(s)LP H 经过相应的复频域转换得到H(s),最后又H(s )经过脉冲响应不变法或双线性变换法得到所需要的III R数字滤波器H (z)。
由此可见,IIR 数字滤波器设计的重要环节是模拟滤波器的设计。
设计模拟低通滤波器的主要方法有Butterwor t、Ch eby shev 、和椭圆等滤波器设计方法。
实验步骤1.Butterw ort 数字滤波器设计(1) Bu tt erwort 滤波器是通带阻带都单调衰减的滤波器。
调用b uttord 函数可以确定巴特沃斯滤波器的阶数,其格式为:[N,Omegac ]=bu tt ord(Omegap,Ome gas,Rp,As ,’s ’)。
其中,输入参数Rp,As 分别为通带最大衰减和阻带最小衰减,以d B为单位;Om eg ap,Omegas 分别为通带截止频率和阻带截止频率,‘s ’说明所设计的是模拟滤波器。
输出参数为滤波器的阶数,Omegac为3dB截止频率。
数字信号处理 Matlab 实验三-IIR 数字滤波器的设计1. 概述数字滤波器是数字信号处理领域中的重要内容。
按照系统的特点,数字滤波器可以分为 FIR 数字滤波器和 IIR 数字滤波器。
其中,IIR 数字滤波器具有更强的适应性和更高的性能,因此受到广泛关注。
本文档将详细介绍 Matlab 实验中的 IIR 数字滤波器的设计过程。
2. IIR 数字滤波器的基本概念IIR 数字滤波器是一种反馈型滤波器,它的输出信号取决于当前的输入信号和前一时刻的输出信号。
在 IIR 数字滤波器中,反馈路径与前向路径都包含有延时器和系数。
IIR 数字滤波器的具体实现形式有直接型、级联型、积分型等。
IIR 数字滤波器的主要特征是具有无限脉冲响应。
这一特性意味着输入信号可以产生无限长的输出响应,并且IIR 数字滤波器具有更加平滑的频率响应和更高的滤波器阶数。
3. IIR 数字滤波器设计的步骤Matlab 的 Signal Processing Toolbox 中提供了多种方法进行 IIR 数字滤波器设计。
在本文档中,我们将介绍基于极点和零点设计的方法。
IIR 滤波器设计主要分为以下几个步骤:3.1 确定滤波器类型和性能规格设计 IIR 数字滤波器时,需要先确定滤波器的类型和性能规格。
比如,需要确定滤波器的通带和阻带边界频率、通带和阻带幅度响应、滤波器阶数等参数。
3.2 根据性能规格确定滤波器的传递函数根据滤波器的类型、性能规格、滤波器的传递函数和滤波器结构之间的关系,通过理论计算得到滤波器的传递函数。
3.3 将滤波器传递函数化简为数字滤波器结构将传递函数简化为数字滤波器的结构,选择适当的滤波器结构和方案。
3.4 计算数字滤波器的系数选择一种计算数字滤波器系数的方法,如双线性变换、频率抽取等。
3.5 检验滤波器设计的性能进行模拟仿真和实验检验,根据预设的性能规格检验滤波器设计的合理性。
4. Matlab 实现 IIR 数字滤波器的设计在 Matlab 中,可以使用 Signal Processing Toolbox 中的 iirfilter 函数实现 IIR 数字滤波器的设计。
数字信号处理实验报告四IIR数字滤波器设计及软件实现实验目的:本实验的目的是了解IIR数字滤波器的设计原理和实现方法,通过MATLAB软件进行数字滤波器设计和信号处理实验。
一、实验原理IIR数字滤波器是一种使用有限数量的输入样本和前一次输出值的滤波器。
它通常由差分方程和差分方程的系数表示。
IIR滤波器的特点是递归结构,故其频率响应是无限长的,也就是说它的频率响应在整个频率范围内都是存在的,而不像FIR滤波器那样只有在截止频率处才有响应。
根据设计要求选择合适的滤波器类型和滤波器结构,然后通过对滤波器的模型进行参数化,设计出满足滤波要求的IIR滤波器。
常见的IIR滤波器设计方法有模拟滤波器设计方法和数字滤波器设计方法。
在本实验中,我们主要使用数字滤波器设计方法,即离散时间滤波器设计方法。
二、实验内容(一)设计IIR数字滤波器的步骤:1.确定滤波器类型:根据滤波要求选择合适的滤波器类型,如低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。
2.确定滤波器的阶数:根据滤波要求确定滤波器的阶数。
阶数越高,滤波器的频率响应越陡峭,但计算复杂度也越高。
3. 设计滤波器原型:根据滤波要求,设计滤波器的原型。
可以选择Butterworth滤波器、Chebyshev滤波器、Elliptic滤波器等作为原型。
4.选择滤波器结构:根据计算机实现条件和算法复杂度,选择合适的滤波器结构。
常见的滤波器结构有直接形式I、直接形式II、级联形式等。
5.参数化滤波器模型:根据原型滤波器的差分方程,选择合适的参数化方法。
常见的参数化方法有差分方程法、极点/零点法、增益法等。
6.根据参数化的滤波器模型,计算出所有的滤波器系数。
(二)用MATLAB软件实现IIR数字滤波器设计:1.打开MATLAB软件,并创建新的脚本文件。
2. 在脚本文件中,使用MATLAB提供的滤波器设计函数,如butter、cheby1、ellip等,选择合适的滤波器类型进行设计。
数字信号处理实验报告 FIR 和IIR 滤波器的设计一、实验目的1、分别利用脉冲响应不变法、频率采样法设计IIR 滤波器,观察滤波器形状,并进行比较。
2、双线性变化法设计FIR 滤波器。
二、实验条件计算机、MATLAB2013a三、实验内容(一)、IIR 滤波器的设计。
IIR 滤波器的特征是,具有无限持续时间冲激响应。
这种滤波器也称之为递归型滤波器。
这些滤波器产生新的输出,不但需要过去的输入和现在的输入,还需要过去的输出。
其相应的差分方程为∑∑==-=-Nk k N k k k n x b k n y a00][][,假设0,00≠=k a a ,整理之后便得到滤波器的方程,由所学知识很明显看出该方程为递归的,k a 系数的存在意味着递归滤波器有无限项的脉冲响应。
相较与非递归滤波器,递归滤波器设计时所需的系数要少的多,更容易实现,一般会选择具有待求特性的原型模拟滤波器,然后将其转化为数字滤波器。
IIR 数字滤波器的设计常采用两种方法 :冲激响应不变法、双线性变换法。
1、利用脉冲响应不变法设计IIR 滤波器。
(1)、原理:每个模拟滤波器都有冲击响应h(t),就像每个数字滤波器都有脉冲响应h[n]一样,脉冲响应不变法选择的数字脉冲响应h[n]是满足设计要求的模拟滤波器冲击响应h(t)的采样值。
即h[N]=h(nT),其中T 为所用的采样间隔。
如果令 H a( s)是h ( t)的拉普拉斯变换,H (z)为h( n )的z 变换,利用采样序列z 变换和模拟信号的拉氏变换之间的关系,即jw e z =,从而将模拟滤波器的s 面转换为数字滤波器的z 平面。
(2)、设计步骤:(a )、确定滤波器各个参数,截止频率fs 、阶数、采样频率Fs 等;(b )、将数字滤波器频率指标转换成相应的模拟滤波器频率指标sf f π2=Ω 将数字频率和模拟频率联系起来;(3)、设计一个阶数为1的巴特沃斯滤波器,其截止频率为750HZ ,采样频率为4000HZ ;(4)、利用impinvar 和butter 函数,带入滤波器系数,具体代码如下:其中butter 的具体使用方法如注释,当设计高通滤波器时,将‘s ’改为‘high ’即可。
并联型把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 数字滤波器的设计(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 -----------+-+-+++++=z z z z z z z z z z z分析:N=5,为五阶切比雪夫低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。