基于DSP的IIR带通滤波器设计
2012-12-17吉首大学物理与机电工程学院宋治国谭明涛张银行
吉首大学物理与机电工程学院 宋治国 谭明涛 张银行
在信号的产生和传输过程中,难免会混杂噪声,因此在信号的接收端必须消除或减弱噪声干扰。根据噪声与信号的不同特性,滤除或消弱信号中的噪声成分就称为滤波。数字滤波器由于其精度高,稳定性好,使用灵活等特点,广泛应用在数据通信、语音信号处理及图像处理等众多领域[1]。带通滤波器滤波器作为滤波器中重要的一种,它主要功能是使某一频率范围内的信号通过,而其它频率范围的信号被衰减或滤除。DSP作为通用的数字信号处理芯片,内部具有专门针对信号处理的硬件单元,使其在数字信号处理领域具体独特的优势。
1.IIR滤波器基本结构
IIR滤波器可以用较少的阶数获得很高的传输特性,所用的存储单元少,运算次数少,具有经济高效的特点。N阶无限冲击响应滤波器的脉冲传递函数可以表达为:
它的差分方程表达式为:
IIR滤波器的一般结构[3]如图1所示:
2.IIR滤波器的matlab设计
Matlab信号处理工具箱中包含了许多执行信号处理算法的函数,方便了滤波器的设计[4]。利用matlab的信号处理函数设计了一个切比雪夫带通滤波器,滤波器参数为:采样频率Fs为16kHz,通频带在3.2kHz和4.8kHz之间,内损耗不大于1dB;频率小于2.4kHz和大于5.6kHz为阻带,阻带衰减大于20dB。
核心程序为:
wp=[3.2,4.8];ws=[2.4,5.6];rp=1;rs=20;
[n,wn]=cheb1ord(wp/8,ws/8,rp,rs);
[b,a]=cheby1(n,rp,wn);
由以上程序计算出滤波器的系数如表1所示:
表1 滤波器系数
仿真所得带通滤波器的幅频特性如图2所示。
3.IIR带通滤波器的DSP实现
采用TMS320C5402为目标芯片,它是是16位定点DSP,具有改进的哈佛结构、一组程序总线和三组数据总线,高度并行性的算术逻辑单元ALU,专用硬件逻辑,片内存储器,片内外设和专业的指令集,使该芯片在信号处理领域得到了广泛应用[5]。
在用DSP汇编编程时,将滤波器的系数定标为Q15,将变量和系数都存放在DARAM中,并采用循环缓冲区方式寻址,共开辟4个循环缓冲区,用来存放变量和系数。这4个循环缓冲区的定义如下:
BN .usect "BN",7; 存放系数bi
AN .usect "AN",7; 存放系数ai
IN .usect “IN”,256;输入缓冲区
OUT .usect “OUT”,256;输出缓冲区
实现IIR带通滤波器的核心程序为:
IIR: SUB A, A
STM #BN,BCOFF_P
STM #AN,ACOFF_P
RPT #5; 计算前向通道
MAC *XN_P+,*BCOFF_P+,A
MAC *XN_P,*BCOFF_P,A
MAR *XN_P-0; 将AR2指向x(n-N) RPT #5; 计算反馈通道
MAC *YN_P+,*ACOFF_P+,A
STH A,*YN_P-0; 保存y(n)
EEND B EEND;
.end
图1 IIR滤波器结构
利用c语言编程产生一个含有4kHz和6.5kHz混合的正弦信号作为测试输入信号,经过带通滤波器滤波后输出。利用DSP集成开发环境CCS的图形显示功能,分别对输入信号x(n)、输出信号y(n)的时域和频域波形进行了观察分析,波形如图3-4所示:
图2 带通滤波器幅频特性
图3 输入信号波形和频谱
图4 输出信号波形和频谱
从图3和图4的输入信号频谱和输出信号的频谱比较可以看出,经过滤波器滤波处理后,原输入信号中频率为6.5kHz的信号也衰减的很小,只剩下频率为4kHz的信号。
4.结语
IIR滤波器在信号处理领域有着广泛的应用,而DSP作为通用数字信号处理器,在信号处理方面具体其它硬件无法比拟的优势。本文首先根据数字滤波器的性能指标,用matlab编程计算出了滤波器的系数,然后以TMS320C5402为目标芯片,在ccs集成开发环境下,用汇编编程实现了该滤波器,并对滤波器的滤波效果进行了测试分析,结果表明:该滤波器能有效实现对信号的带通滤波。
[1]王亚军,李艳芳.基于GA-BP网络的FIR数字滤波器优化设计[J].电测与仪表,2010,47(7):13-15.
[2]戴明桢,周建江.TMS320C54x DSP结构原理及应用[M].北京:北京航空航天大学出版社,2001.
[3]程佩青.数字信号处理教程(第三版)[M].北京:清华大学出版社,2010.
[4]朱习军,隋思涟 等. Matlab在信号与图像处理中的应用[M].北京:电子工业出版社,2009.
[5]邹翼.基于DSP的G.729语音编码的研究与实现[D].长沙:湖南大学,2009.