沈阳工程学院课程设计(论文)
1设计主要内容及要求
1.1 设计题目:
FIR滤波器程序设计
1.2 设计目的:
(1)掌握DSP常用指令、以及汇编程序的基本编写; (2)熟悉FIR数字滤波器的基本实现方法。
1.3 基本要求:
(1)研究FIR滤波器原理以及利用DSP实现的方法。 (2)编写FIR滤波器的程序。 (3)调试程序,观察结果。
- 1 -
FIR滤波器程序设计
2.设计思路
数字滤波器的功能,就是把输入序列通过一定的运算变换成输出序列。可以用两种方法来实现数字滤波器:—种方法是采用通用计算机,利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件(通常称之为数字信号处理器)。
在TMS320C54x系统开发环境CCS(Code Composer Studio)下对FIR滤波器的DSP实现原理进行讨论。利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。
具体思路为先将DSP初始化,再将滤波系数存入到存储单元,让操作数与程序存储器相乘后累加,结果保存到输出单元,判断滤波样本点数有没有完成,完成就直接结束,没完成则返回到将滤波系数存入到存储单元,继续如上步骤,直至完成。
- 2 -
沈阳工程学院课程设计(论文)
3程序流程图
开始 DSP初始化
将滤波系数存入存储单元 操作数与程序存储器相乘后累加
结果保存到输出单元 滤波样本点数是否完成 否 是 结束 - 3 -
FIR滤波器程序设计
4 FIR滤波器算法的DSP实现
4.1FIR滤波器的实现原理
由 (2-1)式可知,FIR滤波器的冲激响应为 h(0) , h(1) , ??, h(N - 1)。x(n) 表示滤波器在n时刻的输入,则n时刻的输出为:
y(n) = h(0) x(n) + h(1) x(n -1) + ?? + h(N - 1) x[n - (N - 1) ] 这是一个乘、加的过程 ,可以使用 DSP中的 MAC指令实现该运算。
x(n) z h0 h1 -1x(n-1) z h2 -1x(n-2) z hN-2 -1z -1x(n-N+1
hN-1 y(n)
图4.1 FIR滤波器的结构
4.2FIR滤波器的实现方法
在数字信号处理系统中,常常要用到FIR数字滤波器,这是因为用FIR滤波器可以逼近任意幅频特性的滤波器,并获得很好的性能,在本论文中介绍FIR低通滤波器的DSP实现。
TMS32054x是16位的定点处理器,所以在进行汇编程序设计时,FIR滤波器系数要采用Q15格式,即必须将上述系数转化为Q15格式,这只要将滤波器各系数乘以2即可。
15
- 4 -