APP下载

基于Matlab软件的IIR数字滤波辅助教学研究

2022-07-11姜恩华李素文周建芳

关键词:级联高通并联

姜恩华,李素文,周建芳

(淮北师范大学 物理与电子信息学院,安徽 淮北 235000)

数字信号处理教材中常常把IIR数字滤波器设计与数字滤波网络基本结构的内容编写在不同章节进行讲解,这样导致关于IIR数字滤波器的知识点比较分散[1-2],不利于学生系统掌握IIR数字滤波网络方面的知识.如何有效开展IIR滤波器设计与数字滤波网络结构内容的课堂教学,是一个值得研究的问题[3].

IIR数字滤波器通常采用系统函数H(z)描述,通过系统函数H(z)或线性常系数差分方程能够得到 IIR直接型数字滤波网络结构.系统函数H(z)一般是关于z的分式,由分子多项式和分母多项式组成.采用因式分解法,把系统函数H(z)分解为若干个一阶或二阶分式相乘的形式,求得IIR数字滤波网络的级联型结构;采用部分分式展开法,把系统函数H(z)分解为若干个一阶或二阶分式相加的形式,求得IIR数字滤波网络的并联型结构.Matlab软件提供了直接型转换为级联型的函数tf2sos[2],文献[4]提供了直接型转换为并联型的函数tf2par.借助Matlab函数,能够求得IIR数字滤波器的级联型和并联型结构.

应用Matlab软件,以IIR数字滤波器设计和数字滤波网络为线索,通过IIR基本网络结构完成滤波,使得IIR数字滤波器的设计和数字滤波过程形成一个有机的整体.

1 IIR数字滤波器

通过系统函数H(z)描述IIR数字滤波器,通过传输函数H(ejω)描述IIR数字滤波器幅频特性,通过幅频特性曲线很容易看出IIR数字滤波器是低通、高通、带通和带阻滤波器.系统函数H(z)和传输函数H(ejω)的关系为:

H(ejω)=H(z)|z=ejω.

(1)

1.1 根据H(z)确定IIR数字滤波器的类型

对式(1)两边取绝对值

|H(ejω)|=|H(z)|z=ejω.

(2)

在数字域频率ω的一个周期[-π,π]内,取ω=0和ω=π两点,计算出z1=ej0=1和z2=ejπ=-1,代入式(2),根据计算出的|H(z)|值,可以判断IIR数字滤波器的类型[1-2,5].

1.2 IIR数字滤波器设计方法

在数字信号处理教材中,主要讲解的IIR数字滤波器设计方法为脉冲响应不变法、双线性变换法和直接设计方法.采用脉冲响应不变法和双线性变换法设计IIR数字滤波器的步骤为:①通过频率变换,把IIR数字滤波器的边界频率变换为模拟滤波器的通带和阻带边界截止频率;②通过选择合适的原型模拟滤波器,设计出需要的模拟滤波器,求得其系统函数Ha(s);③通过脉冲响应不变法和双线性变换法把Ha(s)转化为H(z)[2,6];④采用直接设计方法设计IIR数字滤波器,根据IIR数字滤波器的技术指标,调用Matlab函数,求得IIR数字滤波器的系统函数H(z).

在Matlab软件中,提供了脉冲响应不变法、双线性变换法和直接设计方法的设计函数,借助设计函数,可以设计IIR数字滤波器.

2 IIR数字滤波网络

IIR数字滤波网络基本结构,主要分为直接型、级联型和并联型结构.通过IIR数字滤波网络的线性常系数差分方程,求得IIR数字滤波网络的直接型结构.对线性常系数差分方程进行双边Z变换,求得系统函数H(z).通过对系统函数H(z)进行因式分解,求得IIR数字滤波网络的级联型结构.通过对系统函数H(z)进行部分分式展开,求得IIR数字滤波网络的并联型结构[1-2,5].

2.1 直接型滤波网络

若IIR数字滤波器的系统函数H(z)如式(3)所示,求得IIR直接型数字滤波网络结构[1,2,5],如图1所示.

(3)

图1 IIR网络的直接型滤波结构

以直接型低通滤波网络为例,已知IIR数字低通滤波器的技术参数为:通带截止频率ωp,阻带截止频率ωs,通带最大衰减αp,阻带最小衰减αs.采用脉冲响应不变法设计步骤为:①把数字域频率变换为模拟域频率;②选择原型模拟滤波器,进行模拟滤波器设计,得到模拟滤波器的系统函数Ha(s);③对系统函数Ha(s)进行拉氏逆变换得到单位冲激响应h(t);④对h(t)进行时域采样,得到单位采样序列h(n);⑤对h(n)进行Z变换,求得该IIR数字滤波器的系统函数H(z).由于时域采样一定要满足时域采样定理,即在ω=π处为IIR数字滤波器的阻带.由于IIR数字高通和带阻滤波器在ω=π处为通带,所以脉冲响应不变法不适合设计IIR数字高通和带阻滤波器,只适合设计低通和带通滤波器[1-2,7].

借助Matlab软件,假设模拟滤波器采用巴特沃斯低通模拟滤波器,首先进行频率变换,其次调用Matlab函数[N,wc]=buttord(wp,ws,rp,rs′,s'),求得模拟滤波器的阶数N和通带截止频率ωc;再次调用Matlab函数[B,A]=butter(N,wc′,s'),求得模拟滤波器的系统函数Ha(s)的分子和分母多项式系数B和A;最后调用Matlab函数[Bz,Az]=impinvar(B,A,Fs),求得IIR数字滤波器的系统函数H(z)分子和分母多项式系数Bz和Az[6,8].设计的巴特沃斯模拟低通滤波器和IIR数字低通滤波器的损耗函数如图2所示.

图2 模拟和数字低通滤波器的损耗函数

图3 直接型IIR滤波网络输入和输出信号及其频谱

按照式(4)设计输入序列x(n),借助Matlab函数y(n)=filter(Bz,Az,x),对输入序列x(n)进行直接型数字低通滤波,滤除其高频成分,低频成分即为直接型数字低通滤波网络的输出y(n).x(n)和y(n)的时域波形与频谱如图3所示.

x(n)=20*sin(3.14*1/16*n)+
10*sin(3.14*10/32*n).

(4)

从图3中的子图(2)和(4)可以看出,输入序列x(n)的低频成分被保留,高频成分被滤除.

2.2 级联型滤波网络

对系统函数H(z)进行因式分解,分解为若干个一阶或二阶分式相乘的形式,例如二阶分式形式如式(5)所示.求得IIR数字滤波网络的级联型结构[1-2,5],如图4所示.

(5)

图4 IIR网络的级联型滤波结构

以IIR级联型高通滤波网络为例,采用双线性变换法设计IIR高通滤波器,假设模拟滤波器采用巴特沃斯低通滤波器,双线性变换法设计步骤为:①根据双线性变换法的频率变换关系,把IIR高通滤波器的技术指标ωp和ωs变换为模拟高通滤波器的技术指标Ωp和 Ωs,通带最大衰减αp和阻带最小衰减αs不变;②对模拟高通滤波器的边界截止频率Ωp和 Ωs归一化,求得模拟低通滤波器的归一化频率λp和λs;③进行巴特沃斯低通滤波器设计,求得归一化系统函数G(p),对G(p)去归一化,求得模拟高通滤波器的系统函数Ha(s)的分子和分母多项式系数B和A;④调用Matlab函数[Bz,Az]=bilinear(B,A,Fs),将系统函数Ha(s)转化为数字高通滤波器的系统函数H(z).设计的巴特沃斯模拟高通滤波器AF和数字高通滤波器DF的损耗函数曲线如图5所示.

图5 模拟和数字高通滤波器的损耗函数

根据系统函数H(z)分子和分母多项式系数Bz和Az,调用Matlab函数[s,g]=tf2sos(Bz,Az),把IIR数字高通滤波器的直接型结构转换为级联型结构,按照式(4)设计输入序列x(n),调用Matlab函数y(n)=filtfilt(s,g,x),对输入序列x(n)进行级联型高通滤波,滤除其低频成分,高频成分即为级联型数字高通滤波网络的输出y(n).x(n)和y(n)的时域波形和频谱如图6所示.

图6 级联型IIR滤波网络的输入和输出时域信号及其频谱

从图6中的子图(2)和(4)可以看出,输入序列x(n)的高频成分被保留,低频成分被滤除.

2.3 并联型滤波网络

对系统函数H(z)进行部分分式展开,展开为若干个一阶或二阶分式相加的形式,如式(6)所示.求得IIR数字滤波网络的并联型结构[1-2,5],如图7所示.

(6)

以IIR并联型数字带通滤波网络为例,采用直接设计方法,其设计步骤为:首先选择滤波器类型,如巴特沃斯、切比雪夫1型和椭圆滤波器;其次根据数字带通滤波器的技术指标,调用Matlab函数,直接设计出相应类型的滤波器.以数字椭圆滤波器为例,调用[N,wpo]=ellipord(wp,ws,rp,rs)计算数字椭圆滤波器的阶数N和通带截止频率,调用[Bz,Az]=ellip(N,rp,rs,wpo)函数,求得数字椭圆滤波器系统函数H(z)分子和分母多项式系数Bz和Az.设计的数字椭圆滤波器损耗函数曲线如图8所示.

图7 IIR网络的并联型滤波结构

图8 数字带通滤波器损耗函数

图9 并联型IIR滤波网络的输入和输出时域信号及其频谱

根据文献[4]提供的Matlab函数:[C,B,A] = tf2par(Bz,Az),把数字椭圆滤波器的直接型网络结构转换为并联型网络结构.根据式(7)设计输入序列x(n),根据文献[4]提供的并联型网络滤波函数:y(n)= parfilt(C,B,A,x),对输入序列x(n)进行并联型带通滤波,滤除其高频和低频成分,带通成分即为并联型数字带通滤波网络的输出y(n).x(n)和y(n)的时域波形和频谱如图9所示.

x(n)=20*sin(3.14*1/10*n)+
20*sin(3.14*3/10*n)+
20*sin(3.14*7/10*n).

(7)

从图9中的子图(2)和(4)可以看出,输入序列x(n)的带通成分被保留,高频和低频成分被滤除.

3 结语

本文探索了借助Matlab软件有效开展IIR数字滤波器和数字滤波网络章节的课堂教学.根据IIR数字滤波器的系统函数H(z),通过系统函数H(z)的因式分解法和部分分式展开法,求得IIR数字滤波器级联型和并联型滤波网络结构.借助Matlab函数,设计了IIR数字滤波器.设计了输入序列,通过IIR数字滤波器的直接型、级联型和并联型滤波网络对输入序列滤波,形象地展现了IIR滤波器的设计和滤波过程.通过本文设计加深学生对IIR数字滤波器的设计方法和数字滤波网络基本结构的理解,起到较好的教学示范作用.

猜你喜欢

级联高通并联
铀浓缩厂级联系统核安全分析
识别串、并联电路的方法
高通、苹果专利案新进展:苹果拒绝与高通和解
历史转折后的高通前执行董事长
《福布斯》欧盟罚高通
审批由“串联”改“并联”好在哪里?
基于级联MUSIC的面阵中的二维DOA估计算法
并联型APF中SVPWM的零矢量分配
H桥级联型STATCOM启动策略研究
基于DSP/FPGA的级联型固态变压器控制研究