1、 课程名称: DSP 原理及应用课程设计 实验项目: 有限冲击响应 FIR 滤波器的设计 实验地点: 2012 年 12 月 17 日 一、设计目的一、设计目的 1 使学生加深对 DSP 芯片 TMS320C55x 的结构、工作原理的理解; 2 了解 FIR 的原理和特性; 3 熟悉设计 FIR 数字滤波器的原理和方法; 4 学习 FIR 滤波器的 DSP 实现原理; 5 学习使用 ccs 的波形观察窗口观察输入、输出信号波形和频谱变 化情况。 二二、设计原理、设计原理 滤波器就是在时间域或频域内,对已知激励产生规定响应的网 络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号, 滤波器
2、的设计实质上就是对提出的要求给出相应的性能指标, 再通过 计算,使物理可实现的实际滤波器响应特性逼近给出的频率响应特 性。 FIR 数字滤波器是一种非递归系统,其传递函数为: ZH= 1 0 N n n znb zX zY 由此可得到系统的差分方程为: 1 0 N I inxihny 则,FIR 滤波器的结构如下图: 其冲激响应 nh是有限长序列, 它 滤波器系数向量 nb,N 为 FIR 滤波器的阶数。 在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤 波器在保证幅度特性满足技术要求的同时, 很容易做到严格的线性相 位特性为了使滤波器满足线性相位条件,要求其单位脉冲响应 nh为
3、实序列,且满足偶对称或奇对称条件,即 nNhnh1或 nNhnh1.这样,当 N 为偶数时,偶对称线性相位 FIR 滤波器 的差分方程表达为 12/ 0 )1( N i inNxinxihny 由上可见,FIR 滤波器不断地对输入样本 nx延时后,再做乘法 累加运算,将滤波器结果 ny输出。因此,FIR 实际上是一种乘法累 加运算。 而对于线性相位 FIR 滤波器系数的对称特性, 可以采用结构 精简的 FIR 结构将乘法器数目减少一半。 应用 MATLAB 设计 FIR 滤波器的主要任务就是根据给定的性能指标 设计一个 zH,使其逼近这一指标,进而计算并确定滤波器的系数 nb,再将所设计滤波器
4、的幅频响应、相频响应曲线作为输出,与设 计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到的 bN-1 bN-2 b1 b0 x(n-N+1) x(n-1) Z-1 Z-1 Z-1 X(n) y(n) FIR 滤波器的单位冲激响应序列 nh的各个参数值。 三三、总体方案设计、总体方案设计 1 启动 CCS ,在 CCS 中建立一个汇编源文件、建立一个 C 源文件和 一个命令文件,并将这三个文件添加到工程,再编译并装载程序 2 设置波形时域观察窗口,得到其滤波前后波形变化图; 3 设置频域观察窗口,得到其滤波前后频谱变化图。 四四、源程序、源程序 1、新建工程文件 打开 Setup CC
5、S 选择 c55 芯片,打开 CCS 软件,选择 project/new, 命名为 myproject。 2、添加文件到工程 (1)建立文件 选择 file/new,汇编源程序,如下: .global _fir,_init,_B,_outdata _fir bset frct amov #_B,xdp mov #_B,cdp mov t0,ac0 sub #1,ac0 mov ac0,mmap(csr) add ac0,ar0 mov #0,ac0 rpt csr macmz *ar0-,*cdp+,ac0 mov hi(ac0),t0 ret _init mov mmap(t0),ac0 s
6、ub #1,ac0 mov ac0,ar7 rptz ac0,ar7 mov ac0,*ar0+ ret _outdata mov t1,ac0 sub #2,ac0 mov ac0,mmap(csr) add ac0,ar0 rpt csr delay *ar0- mar *ar0+ mov t0,*ar0 ret c 文件 #include “s.h“ #include “math.h“ #define signal_1_f 200 #define signal_2_f 620 #define signal_sample_f 2000 #define pi 3.1415926 #define coff_L 23 #define bufer_L 256 int data_inbufer_L; int outbufer