APP下载

基于FDATool和CCS软件的数字滤波器综合实验设计

2022-11-28姜恩华崔少华苗曙光赵庆平张亚萍

关键词:网络结构菜单滤波器

姜恩华 ,崔少华,苗曙光,赵庆平,张亚萍

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

数字滤波器设计及其滤波网络结构是数字信号处理课程的重要组成部分[1,2],如何有效开展数字滤波器及其滤波的实验教学,是数字信号处理课程实验教学值得探讨的问题[3]。

FDATool是MATLAB软件提供的数字滤波器设计与分析软件,采用图形化的界面,能够设计和分析IIR和FIR数字滤波器[4]。

CCS5.5软件是TI公司发行的DSP集成开发环境[5],支持C语言程序设计。借助Texas Instruments Simulator/C55xx Rev3.0 CPU软件模拟器,采用C语言编写程序,完成IIR或FIR网络滤波程序设计,借助Tools/Graph菜单,观察滤波前和滤波后的信号波形。

本文结合FDATool和CCS 5.5软件,完成数字滤波器设计及其滤波实验设计。借助FDATool软件完成IIR或FIR滤波器设计,得到IIR或FIR滤波器的系数,借助该系数,在CCS 5.5软件下,采用C语言编写IIR或FIR网络滤波程序,完成IIR或FIR滤波器的滤波实验,实现对输入序列的滤波。在实验过程中,实验步骤清晰,实验内容丰富,实验现象明显,取得了较好的实验效果。

1 基于FDATool软件的数字滤波器设计

通过FDATool软件,根据IIR或FIR数字滤波器的技术指标,可以自动进行IIR或FIR数字滤波器设计,观察和分析该滤波器的幅频特性和相频特性。借助菜单File/Export导出IIR或FIR滤波器的系数。

1.1 IIR数字滤波器设计

通过FDATool软件的图形界面,进行IIR数字滤波器设计[6,7]。在设计方法栏(Design Method)内,选择IIR滤波器的设计方法,例如选择巴特沃斯、切比雪夫和椭圆滤波器等设计方法。在响应类型(Response Type)栏内,选择滤波器的类型:低通、高通、带通和带阻。在滤波器阶数(Filter Order)栏内,可以指定阶数,也可以选择最小阶数。在选项(Options)栏内,可以选择阻带匹配或通带匹配。在频率设置(Frequency Specifications)栏内,设置IIR数字滤波器的通带和阻带截止频率,可以选择数字域频率或模拟域频率。在幅度指定(Magnitude Specifications)栏内,设置通带允许的最大衰减和阻带允许的最小衰减。点击设计滤波器(Design Filter)按钮,自动进行滤波器设计。

通过菜单Edit/Convert Structure,可以得到IIR数字滤波器的级联型网络结构的系数矩阵SOS和增益G,通过菜单Edit/Convert to single section,可以得到直接型网络结构系数分子多项式Num和分母多项式Dec.

1.2 FIR数字滤波器设计

通过FDATool软件的图形界面,进行FIR数字滤波器设计[6,7]。在响应类型(Response Type)栏内,选择滤波器的类型:低通、高通、带通和带阻。在设计方法栏(Design Method)内,选择FIR滤波器的设计方法,例如等波纹逼近法和窗函数法等设计方法,若选择窗函数法,需要在选项(Options)栏内指定窗函数。在滤波器阶数(Filter Order)栏内,可以指定阶数,也可以选择最小阶数。在频率设置(Frequency Specifications)栏内,设置IIR数字滤波器的通带和阻带截止频率。

通过菜单Edit/Convert Structure,可以得到FIR数字滤波器直接型网络结构系数Num.

2 IIR数字滤波仿真实验设计

首先,在CCS 5.5软件下,采用C语言,设计求解IIR滤波的线性常系数差分方程的程序,根据IIR滤波器的通带和阻带的截止频率,设计输入序列。其次,借助FDATool软件,根据IIR滤波器的技术指标,设计IIR滤波器,得到IIR滤波器的直接型网络结构或级联型网络结构的系数。借助该系数,调用线性常系数差分方程的程序,完成对输入序列的滤波。

2.1 线性常系数差分方程求解

IIR数字滤波器的线性常系数差分方程如式(1)所示。式(1)由两部分组成,前半部分可以看作bi和x(i)的线性卷积,假设M=5,n为移位位数。由于数组下标不能为负值,所以要求n-i≥0,数组x[i]存放输入序列x(n),数组b[M+1]存放系数bi,如图1所示,线性卷积表示为:

图1 b[i]和x[i]的线性卷积

图2 a[i]和y[i]的线性卷积

采用数组形式表示的线性常系数差分方程的表达式如式(2)所示,其中n为移位位数。

(2)

2.2 输入序列设计

为了使实验现象明显,容易观察,一般选择正弦信号作为输入序列[8]。根据IIR滤波器的通带和阻带的截止频率,确定输入正弦序列的频率。对于IIR数字带通和带阻滤波器,输入序列x1(n)一般设计成式(3)所示,其中Fs为采样频率,f1、f2和f3为正弦信号的频率。若f1=20 Hz、f2=70 Hz和f3=130 Hz,采样频率Fs=400 Hz,PI为3.14,输入序列x2(i)如式(4)所示。其时域波形如图3所示,频域波形如图4所示。

X1(n)=sin(2×PI×f1×n/Fs)+sin(2×PI×f2×n/Fs)+sin(2×PI×f3×n/Fs)

(3)

X2(i)=10×sin(2×PI×20×(i/Fs))+10×sin(2×PI×70×(i/Fs))+10×sin(2×PI×130×(i/Fs))

(4)

图3 输入序列x2(n)的时域波形

图4 输入序列x2(n)的频域波形

2.3 IIR直接型网络结构滤波实验设计

通过FDATool软件,可以得到IIR数字滤波器系统函数H(z)分子多项式系数Num和分母多项式系数Dec,IIR滤波器的系统函数H(z)如式(5)所示[9]。

(5)

根据式(5)可以画出IIR数字滤波器的直接型网络结构[10],如图5所示。若系数bi和输入序列x(i)存放在数组b[M+1]和数组x[L],L为输入序列x(i)的长度。若系数ai和输出序列y(i)存放在数组a[N+1]和数组y[L],L为输出序列y(i)的长度。采用C语言表示的计算式(2)的算法如图6所示。

图5 IIR直接型网络结构

图6 计算线性常系数差分方程的C语言算法

采用IIR直接型网络结构完成滤波,以IIR数字带通滤波器为例,其技术指标为:Fs=400 Hz,fs1=30 Hz,fp1=50 Hz,fp2=90 Hz,fs2=110 Hz,αp=1,αs=40,选择椭圆滤波器设计方法。在FDATool软件界面内,输入以上技术指标,点击设计滤波器(Design Filter)按钮,自动进行滤波器设计。通过菜单Edit/Convert to single section,通过菜单File/Export导出直接型网络结构系数。即IIR数字带通滤波器的系统函数分子多项式系数Num和分母多项式Dec,把分子多项式系数Num存入数组b[M+1]中,如式(6)所示,把分母多项式Dec存入数组a[N+1]中,如式(7)所示。

b[9]=[0.0197,-0.0457,0.0633,-0.0796,0.0926,-0.0796,0.0633,-0.0457,0.0197]

(6)

a[9]=[1.0, -3.3572,7.3422,-10.4859,11.4808,-9.0686,5.4852,-2.1541,0.5554]

(7)

在CCS 5.5软件下,借助Texas Instruments Simulator/C55xx Rev3.0 CPU软件模拟器,把式(4)表示的输入信号作为输入序列x(n),其长度L为64.

按照图6所示的C语言程序,编写IIR数字带通滤波器的直接型网络结构滤波程序,对输入序列进行滤波。借助Tools/Graph菜单,观察输出序列的时域波形如图7所示,频谱如图8所示。比较图8和图4,可以看出,低频信号和高频信号被阻止,带通信号通过IIR数字带通滤波器。

图7 IIR带通滤波器输出序列y(n)的时域波形

图8 IIR带通滤波器输出序列y(n)的频谱

2.4 IIR级联型结构滤波网络实验设计

对式(5)进行因式分解,可以得到IIR滤波器的级联型网络结构,如图9所示,采用数组形式表示的第k级基本二阶网络结构对应的线性常系数差分方程如式(6)所示。

图9 IIR级联型网络结构

采用IIR级联型网络结构完成滤波,以IIR数字带阻滤波器为例,其技术指标为:采样频率Fs=400 Hz,通带截止频率:fp1=30 Hz,fp2=90 Hz,阻带截止频率:fs1=50 Hz,fs2=110 Hz,通带允许的最大衰减为αp=1,阻带允许的最小衰减为αs=40.选择椭圆滤波器设计方法。在FDATool软件界面内,输入以上技术指标,点击设计滤波器(Design Filter)按钮,自动进行滤波器设计。通过菜单Edit/Convert Structure,可以得到IIR数字带阻滤波器的级联型网络结构的系数矩阵SOS和增益G,如式(7)所示。

(7)

在CCS 5.5软件下,借助Texas Instruments Simulator/C55xx Rev3.0 CPU软件模拟器,参考图6所示的C语言程序,编写IIR数字带阻滤波器的直接型网络结构滤波程序,对输入序列x(n)进行滤波。采用式(4)表示的输入信号作为输入序列x(n),其长度为64.借助Tools/Graph菜单,观察输出序列y(n)的时域波形如图10所示,频谱如图11所示。比较图11和图4,可以看出带通信号被阻止,低频信号和高频信号通过IIR数字带阻滤波器。

图10 IIR带阻滤波器输出序列y(n)的时域波形

图11 IIR带阻滤波器输出序列y(n)的频谱

3 FIR数字滤波器仿真实验设计

首先,在CCS 5.5软件下,采用C语言,设计求解FIR滤波的线性卷积程序,根据FIR滤波器的通带和阻带的截止频率,设计输入序列。其次,借助FDATool软件,根据FIR滤波器的技术指标,设计FIR滤波器,得到FIR滤波器的直接型网络结构的系数。借助该系数,调用线性卷积的程序,完成对输入序列的滤波。

3.1 FIR直接型网络结构

采用FDATool软件,可以设计FIR数字滤波器,得到其单位脉冲响应h(n),借助菜单File/Export导出FIR滤波器的系数Num或单位脉冲响应h(n),画出FIR滤波器的直接型网络结构,如图12所示,FIR数字滤波器的线性常系数差分方程如式(8)所示,式(8)表示单位脉冲响应h(n)与输入序列x(n)的线性卷积[11]。

(8)

图12 FIR直接型滤波网络结构

图13 FIR滤波器的h(n)时域波形

3.2 FIR直接型网络结构滤波仿真实验设计

采用FIR直接型网络结构完成滤波,以FIR数字低通滤波器为例,其技术指标为:fp=30 Hz,fs=60 Hz,αp=1,αs=40,Fs=400 Hz.采用窗函数设计方法,窗函数为kaiser凯塞窗函数。在FDATool软件界面内,输入以上技术指标,点击设计滤波器(Design Filter)按钮,完成FIR数字低通滤波器设计,其阶数N-1为30.借助菜单File/Export导出FIR滤波器的单位脉冲响应h(n),如图13所示。可以看出h(n)偶对称,N=31,把h(n)存入数组h[N]。

在CCS 5.5软件下,借助Texas Instruments Simulator/C55xx Rev3.0 CPU软件模拟器。采用式(4)表示的输入信号作为输入序列x(n),其长度为L=128,输入序列x(n)存放在数组x[L]中。参考图6所示的C语言程序,编写计算h(n)与x(n)的线性卷积程序,完成对输入序列x(n)的滤波[12]。借助Tools/Graph菜单,观察输出序列y(n)的时域波形如图14所示,频谱如图15所示。比较图15和图4,可以看出,带通信号和高频信号被阻止,低频信号通过FIR数字低通滤波器。

图14 FIR带阻滤波器输出序列y(n)的时域波形

图15 FIR带阻滤波器输出序列y(n)的频谱

4 结论

本文结合FDATool软件和TI公司的CCS 5.5软件,完成数字滤波器设计及其滤波实验。借助FDATool软件完成IIR或FIR滤波器设计,求得IIR带通滤波器的直接型网络结构的分子多项式系数Num和分母多项式的系数Dec,求得IIR带阻滤波器的级联型网络结构的系数SOS和增益G,求得FIR滤波器的单位脉冲响应h(n)。详细论述了线性常系数差分方程的求解方案。在CCS 5.5软件下,采用C语言编写IIR或FIR滤波的程序,完成IIR直接型网络结构的带通滤波,IIR级联型网络结构的带阻滤波,FIR直接型网络结构的低通滤波,实现对输入序列x(n)的滤波。仿真实验结果表明,该实验方案,实验现象明显,步骤清晰,内容丰富,取得了较好的实验效果。

The comprehensive experimental design of the digital filter based on the FDATool and the CCS software

JIANG En-hua,CUI Shao-hua,MIAO Shu-guang,ZHAO Qing-ping,ZHANG Ya-ping

猜你喜欢

网络结构菜单滤波器
中国新年菜单
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
本月菜单
基于Canny振荡抑制准则的改进匹配滤波器
基于互信息的贝叶斯网络结构学习
基于TMS320C6678的SAR方位向预滤波器的并行实现
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展