基于DSP的FIR数字滤波器设计研究

2012-07-04 09:43
制造业自动化 2012年15期
关键词:信号处理滤波器指令

王 坤

(河南职业技术学院,郑州 450046)

0 引言

在每一个信号处理过程中,滤波作用占有很重的份量,其中数字滤波在信号的处理中占有很大的地位,是一种比较简单同时也是基本的一种处理方法。与传统的模拟滤波算法相比较由于自身存在零点的特征,系统比较稳定,不易产生阻带衰减、温度漂移和噪声等,具有良好的通带,满足高质量的幅度和相位的要求,同时像FIR系统还容易实现线性的相位和多通滤波器。

数字信号处理器DSP可以通过自身具有的系统机构,对其进行指令操作,就可以用数据流程实现一些复杂地数字信号问题。在本文中,采用了某公司生产的TMS320C54X芯片作为DSP的处理芯片,从而来实现FIR系统的数字滤波器。并经过仿真实验表明,该算法符合系统要求,便于实现数字滤波器的功能。

1 DSP 及其开发环境

一个用DSP进行信号处理的流程图如图1所示。

图1 DSP信号处理系统

从上图中可以看出,用DSP进行信号处理的流程如下:先进行信号的数字化,一般的信号都是模拟信号,但是DSP只接收数字化的信息,故要先进行这一步操作将模拟信号经过A/D转化成数字信号,然后根据实际的应该过程,进行相对应的卷积、FTT变化等处理,接着将这些处理后的数字信号用D/A进行转化,形成模拟的采样值,最后将得到的不平滑的滤波通过滤波器等设备进行处理,从而得到最终的模拟连续的信号。

因为DSP信号处理系统是以数字信号处理理论为基础,故兼具有数字信号的特点。其特点一,与之相兼容的接口比较多,都是以数字为基础的,方便与其他的系统接口进行连接;其特点二,因为DSP芯片中的系统可以根据实际的操作由工作人员进行相对应的编程,故可以随机地进行改变,灵活性强,重复进行操作,不浪费;其特点三,运行速度快,最快可以达到10GMIPS,甚至更多;其特点四,因为是以数字为基础的,不易被周围其他的事物所影响,非常的稳定和可靠;其特点五,数字的话可以方面进行精进;其特点六,方便集成,难度低,生产可以达到一定的规模。

2 FIR 滤波器的DSP的实现

将数据进行滤波的过程就是将一个待处理的数据按照一定的算法进行处理的过程,从而来得到自己期望的值。在这个满足线性关系的差分方程中,保持着线性不变的特定,其输出序列y(n)

和输入x(n)之间存在着如式(1)所示的关系:

其中,x(n)为输入序列,y(n)为输出序列,ak和bk为滤波器系数,N是滤波器的阶数。若上式中所有的bk均为零,则有FIR滤波器的差分方程为:

对上式进行Z变换得到FIR滤波器的传递函数为:

从上面的三个公式中可以看出,H(z)是Z-1的N-1次多项式,故在Z的范围内存在着N-1的原点和重级点,故N阶滤波器一般存在着的单元包括N个延迟单元、N个加法器与N+1个乘法器,能够组成如图2所示的两种结构。

图2 FIR滤波器的一般结构

从图2中可以看到,无论是哪一种结构,FIR滤波器的单位时间响应是等长的,故稳定性强,不易被噪声等所影响。同时加诸一些附加地约束条件,使得 H(z)呈现线性特征,故容易在各个领域中得到应用。设计一个FIR滤波器,最主要的是确定一个转移函数H(z),使之满足各个要素,包括通带频率ωp、阻带频率及两个带上的最大和最小衰减,同时保证H(z)的线性。 根据FIR的系统特性和DSP的流程图,在本文中利用DSP的指令集合和流程方式进行了FIR的滤波器的设计,在本文中采用的某一个公司生产的TMS320C54X作为DSP处理芯片,根据如图3所示的流程图的过程,设计了一些列的转变和编程最终实现了FIR滤波器。

TMS320C54X是一种16位的定点处理器的实例,故在设计编程时,采用的是Q15的转换格式,在进行滤波时应将每一个系数乘以215。在本文中采用的是循环缓冲方法来实现DSP的Z-1算法。

图3 基于DSP的FIR滤波器设计总框图

具体的过程如下,针对一个FIR滤波器,具有N阶,故可以在数据存储器中开辟一个缓冲区,在这个滑窗中存放N个最新的输入样本,且在这个区域内输入新的样本时,只需要将想对应的数据进行覆盖即可。最后利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首尾相邻。

FIR滤波器的核心算法是计算输入信号与滤波器系数的卷积。设x(n)为输入信号,h(n)为FIR滤波器的冲击响应,n=0,…,N-1,则FIR滤波器的输出y(n)就是x(n)与h(n)的卷积,即:

由于卷积是数字信号处理中最常用到的算法,因此几乎所有的DSP芯片中都设有专门的指令支持卷积运算。在TMS3205410中可以用macd指令完成卷积。macd指令的形式如下:

在这个指令中,用于指向数据存储器的地址是Smem,具有间接寻址的功能,而Pmad只是代表着一个16位的存储器地址,其中累加器为Src。在执行指令之前,先将Pmad中的地址送到寄存器中,然后用Smem去读取寄存器中的内容,最后将内容进行累加,将累加得到的结果放到Src中。根据指令进行操作时,先将Src中的数据进行复制,然后送至Smem的下一个地址和T寄存器,如果只是简单的重复执行命令,就将寄存器进行逐步地加1,这样就不断循环地读取程序中的数据,在原则上需要三个周期的时间,如果不是重复的执行,就只需要一个周期的时间,将完成的累积数据进行移动,这件就完成了卷积所要求的计算。从而利用了DSP芯片就行编程,实现FIR所需要的数字滤波器的功能。

3 系统仿真

根据上述条件形成的数字滤波器,在本文中采用了标准矩形波进行了验证,设置其频率和振幅分别为300Hz和800mV,其波形如图4所示,然后经过本文算法提出的DSP的FIR数字滤波器进行滤波得到了如图5所示的波形。

图4 频率和振幅分别为300Hz和800mV波形图

图5 本文DSP的FIR数字滤波器滤波

从仿真实验得到的四幅图中可以看到,本文提出的基于DSP的FIR数字滤波器满足实验要求,滤波效果良好,满足要求。

4 结束语

在数字信号处理过程中,FIR滤波器的设计是基础,而DSP芯片也是重要的组成部分。FIR滤波器和DSP芯片两种之间相互相成,滤波器的设计好坏直接影响着数字信号的处理,影响着整个过程的运行速度和精度。在今后的电子发展过程中,随着DSP芯片的不断发展,将不断地主导着FIR的滤波设计。在本文提到的基于DSP芯片的算法形成的FIR滤波器经试验证明效果明显,具有一定的实用性,将来在各个领域的应用将越来越多。

[1] 程佩青.数字信号处理教程[M].北京: 清华大学出版社,1999.

[2] 孙宗瀛, 谢鸿林.TMS320C5xDSP原理设计与应用[M].北京: 清华大学出版社, 2002.

[3] 乔瑞萍, 崔涛, 张芳娟.TMS320C54xDSP原理及应用[M].西安: 西安电子科技大学出版社, 2005.

[4] 张雄伟.DSP芯片的原理与开发应用(第三版)[M].北京:电子工业出版社, 2003.

[5] 郑红.TMS320C54XDSP应用系统设计[M].北京: 北京航空航天大学出版社, 2002.

猜你喜欢
信号处理滤波器指令
专题征稿启事
——信号处理
MATLAB在数字信号处理中的应用
《单一形状固定循环指令G90车外圆仿真》教案设计
基于MATLAB的语音信号处理
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
一种激光/无线电复合引信信号处理技术
基于TMS320C6678的SAR方位向预滤波器的并行实现
中断与跳转操作对指令串的影响