DSP课程设计--有限冲击响应FIR滤波器的设计342.pdf
DSP 课程设计-有限冲击响应FIR 滤波器的设计 有限冲击响应 FIR 滤波器的设计 一、设计目的 1 使学生加深对 DSP 芯片 TMS320C55x 的结构、工作原理的理解;2 了解 FIR 的原理和特性;3 熟悉设计 FIR 数字滤波器的原理和方法;4 学习 FIR 滤波器的 DSP 实现原理;5 学习使用 ccs 的波形观察窗口观察输入、输出信号波形和频谱变化情况。二、设计原理 滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号,滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器响应特性逼近给出的频率响应特性。FIR 数字滤波器是一种非递归系统,其传递函数为:ZH=10NnnznbzXzY 由此可得到系统的差分方程为:10NIinxihny 则,FIR 滤波器的结构如下图:其冲激响应 nh是有限长序列,它 滤波器系数向量 nb,N 为FIR 滤波器的阶数。在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性为了使滤波器满足线性相位条件,要求其单位脉冲响应 nh为实序列,且满足偶对称或奇对称条件,即 nNhnh1或 nNhnh1.这样,当 N 为偶数时,偶对称线性相位 FIR 滤波器的差分方程表达为 12/0)1(NiinNxinxihny 由上可见,FIR 滤波器不断地对输入样本 nx延时后,再做乘法累加运算,将滤波器结果 ny输出。因此,FIR 实际上是一种乘法累加运算。而对于线性相位 FIR 滤波器系数的对称特性,可以采用结构精简的 FIR 结构将乘法器数目减少一半。应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个 zH,使其逼近这一指标,进而计算并确定滤波器的系数 nb,再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到的bN-1 bN-2 b1 b0 x(n-N+1)x(n-1Z-1 Z-1 Z-1 X(ny(n FIR 滤波器的单位冲激响应序列 nh的各个参数值。三、总体方案设计 1 启动 CCS,在 CCS 中建立一个汇编源文件、建立一个 C 源文件和一个命令文件,并将这三个文件添加到工程,再编译并装载程序 2 设置波形时域观察窗口,得到其滤波前后波形变化图;3 设置频域观察窗口,得到其滤波前后频谱变化图。四、源程序 1、新建工程文件 打开 Setup CCS 选择 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 sub#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_L;int firout;int xcoff_L+1;int k=0;int bufer=bufer_L;extern int fir(int*,int);extern int init(int*,int);extern int outdata(int*,int,int);void inputwave();void main()inputwave();init(x,BL);while(1)x0=data_ink;firout=fir(x,BL);outdata(out,firout,bufer);k+;if(k=bufer_L)k=0;void inputwave()float wt1;float wt2;int i;for(i=0;iROM PAGE 0 .data ROM PAGE 0 .bss RAM PAGE 0 .const RAM PAGE 0 .sysmem RAM PAGE 0 .stack RAM PAGE 0 .sysstack RAM PAGE 0 .switch RAM PAGE 0 .cinit RAM PAGE 0 .pinit RAM PAGE 0 .vectors VECS PAGE 0 .ioport IOPORT PAGE 2 4、加载可执行文件 选择工程,点击 file/load program,选择.out 文件 5、运行 执行.out 文件 6、设置波形时域/频域观察窗口,得到其滤波前后波形变化图;五、实验结果及分析 Acquisition buffer size:256 Display data size:250 DSP data type:16-bits signed integer 时域输入输出波形:由时域图可得:滤波前的时域图是带很多毛刺不规则的正弦波,而滤波后的波形是平滑的等幅正弦波且波形振幅相对滤波前的最大振幅有所减小。频域输入输出波形:由频域图可得:滤波前的频域图会出现两个带尖峰的图像,而滤波后的波形只会出现一个带尖峰图像,而且是出现在低频部分,说明信号经过滤波器后,将信号中的高频成分滤除掉了。六、设计总结 通过这次基于 DSP 的数字滤波器设计,我初步学会了应用 CCS进行 DSP 设计的实践操作。熟悉了 DSP 集成开发环境(CCS),掌握了 FIR 数字滤波器原理和方法。通过对系统的调试,对线性相位FIR 数字滤波器特性及不同阶数对滤波器特性的影响进行了研究。通过观察时域和频域图,对 FIR 数字滤波器特性进行了验证,在应用DSP 对数字滤波器实现的过程中,体会到了 DSP 在数字滤波实现中的优缺点。用 DSP 实现 FIR 数字滤波,具有稳定性好、准确度高、灵活性好、不受环境影响等优点。在这次的课程设计中学会了如何和老师、同学一起交流、探讨问题,在学习的过程中同时培养了和同学之间的合作能力,增进了彼此之间的友谊,感谢在这次设计中给予我帮助的老师还有各位同学。