《最新DSP课程设计报告(FIR滤波器的设计).doc》由会员分享,可在线阅读,更多相关《最新DSP课程设计报告(FIR滤波器的设计).doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateDSP课程设计报告(FIR滤波器的设计)DSP课程设计报告(FIR滤波器的设计)本科课程设计报告课程名称: DSP原理及应用 设计项目: FIR滤波器的设计 实验地点: 多学科楼机房 专业班级: 学号: 学生姓名: 指导教师: 2012年1月8日一、设计目的:1、掌握数字滤波器的设计过程;2、了解FIR的原理和特性;3、熟悉设计FIR数字滤波器的原理和方法;4、学习F
2、IR滤波器的DSP的实现原理;5、学习使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。二、设计内容:1、通过MATLAB来设计一个低通滤波器,对它进行模拟仿真确定FIR滤波器系数;2、用DSP汇编语言进行编程,实现FIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后波形的变化。三、设计原理:FIR数字滤波器是一种非递归系统,其传递函数为:H(z)=Y(z)/X(z)=b(n)z-n 由此可得到系统的差分方程为:y(n)=h(i)x(n-i),其冲击响应h(n)是有限长序列,它其实就是滤波器系数向量b(n),N为FIR滤波器的阶数。 为了使滤波器满足线性相位条件,要求其单
3、位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=- h(N-1-n)这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为:y(n)=h(i)x(n-i)+x(N-1-n-i)应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲击响应序列h(n)的各个参数值。matlab用fir1函数设计FIR滤波器:fir1函数用来设计标准
4、频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。具体语法如下: b=fir1(n,Wn) b=fir1(n,Wn,ftype) b=fir1(n,Wn,Window) b=fir1(n,Wn,ftype,Window)其中n为滤波器的阶数;Wn为滤波器的截止频率; ftype为用来决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。Window为用来指定滤波器采用的窗函数类型,Window参数可采用的窗口函数有: Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,
5、其默认时为Hamming窗,从而得到滤波器的系数。 matlab用fir2函数设计FIR滤波器:fir2函数用来设计有任意频率响应的各种加窗FIR滤波器。具体语法如下: b=fir2(n,f,m) b=fir2(n,f,m,Window) b=fir2(n,f,m,npt) b=fir2(n,f,m,npt,Window) b=fir2(n,f,m,npt,lap) b=fir2(n,f,m,nptt,lap,Window) 其中n为滤波器的阶数;f为频率点矢量;m为幅度点矢量;Window用来指定所使用的窗函数类型,默认值为汉明(Hamming)窗;npt用来指定fir2函数对频率响应进行内
6、插的点数;lap用来指定fir2函数在重复频率点附近插入的区域大小,从而得到滤波器的系数。四、主要参数:滤波器阶数n为40,截止频率为wp=0.35, ws=0.4。五、总体方案设计:1、由给定的设计参数确定滤波器的系数:根据给定的设计参数,滤波器系数可由MATLAB中的fir2函数产生,函数调用格式为:f =0 0.35 0.4 1;m =1 1 0 0;b =fir2(39, f, m)求得的系数为:b =Columns 1 through 6-0.0007 0.003 0.0014 0.0010 -0.0016 -0.0038 Columns 7 through 12-0.0008 0.
7、0064 0.0081 -0.0030 -0.0169 -0.0118Columns 13 through 180.0162 0.0353 0.0083 -0.0515 -0.0689 0.0247Columns 19 through 240.2051 0.3523 0.3523 0.2051 0.0247 -0.0689Columns 25 through 30-0.0515 0.0083 0.0353 0.0162 -0.0118 -0.0169 Columns 31 through 36-0.0030 0.0081 0.0064 -0.0008 -0.0038 -0.0016Column
8、s 37 through 400.0010 0.0014 0.0003 -0.00072、用CCS进行汇编编程,实现FIR滤波器滤波。六、源程序:.titleFIR.ASM.mmregs.bssy,1K_FIR_BFFR.set40PA0.set0PA1.set1FIR_COFF.usectFIR_COFF,40;定义数据存储空间D_DATA_BUFFER.usectFIR_BFR,40;定义数据存储空间.dataCOFF_FIR_START:.word-7*32768/10000,3*32768/10000;b0,b1.word14*32768/10000,10*32768/10000;b2
9、,b3.word-16*32768/10000,-38*32768/10000;b4,b5.word-8*32768/10000,64*32768/10000;b6,b7.word81*32768/10000,-30*32768/10000;b8,b9.word-169*32768/10000,-118*32768/10000;b10,b11.word162*32768/10000,353*32768/10000;b12,b13.word83*32768/10000,-515*32768/10000;b14,b15.word-689*32768/10000,247*32768/10000;b1
10、6,b17.word2051*32768/10000,3523*32768/10000;b18,b19.word3523*32768/10000,2051*32768/10000;b20,b21.word247*32768/10000,-689*32768/10000;b22,b23.word-515*32768/10000,83*32768/10000;b24,b25.word353*32768/10000,162*32768/10000;b26,b27.word-118*32768/10000,-169*32768/10000;b28,b29.word-30*32768/10000,81*
11、32768/10000;b30,b31.word64*32768/10000,-8*32768/10000;b32,b33.word-38*32768/10000,-16*32768/10000;b34,b35.word10*32768/10000,14*32768/10000;b36,b37.word3*32768/10000,-7*32768/10000;b38,b39.text.defFIR_INIT.defFIR_TASKFIR_INIT:SSBXFRCT;设置小数乘法STM#FIR_COFF,AR5;AR1指向b0单元RPT#K_FIR_BFFR-1;设置传输次数MVPD#COFF_
12、FIR_START,*AR5+;系数bi传输至数据区STM#D_DATA_BUFFER,AR4;D_DATA_BUFFER缓冲区清0RPTZA,#K_FIR_BFFR-1STLA,*AR4+STM#(D_DATA_BUFFER+K_FIR_BFFR-1),AR4STM#(FIR_COFF+K_FIR_BFFR-1),AR5STM#-1,AR0;设置双操作数减量LD#D_DATA_BUFFER,DP;设置页指针PORTRPA1,D_DATA_BUFFER;输入x(n)FIR_TASK:STM#K_FIR_BFFR,BKRPTZA,#K_FIR_BFFR-1;重复操作MAC*AR4+0%,*AR5
13、+0%,A;双操作数乘法-累加STHA,y;暂存y(n)PORTWy,PA0;输出y(n)BDFIR_TASK;循环PORTRPA1,*AR4+0%;输入最新样本,并修正AR3.end(命令程序)vectors.objfir.obj-o fir.obj-m fir.map-e fir_initMEMORYPAGE0:EPROM:org=0E000Hlen=1000HVECS:org=0FF80Hlen=0080HPAGE1:SPRAM:org=0060Hlen=0020HDARAM:org=0080Hlen=1380H SECTIONS.text:EPROMPAGE 0.vectors:VEC
14、SPAGE 0.data:EPRAMPAGE 1.bss:SPRAMPAGE 1FIR_BFR:align(128)DARAMPAGE 1FIR_COFF:align(128)DARAMPAGE 1七、实验结果及分析:(1) 输入的时域波形(2)输入的频域波形滤波后的输出波形:(1)时域波形(2)频域波形八、设计总结:经过了两天的课程设计,从查阅资料直到设计完成,这之间让我学到了很多东西。一开始对DSP这门课程并不是很理解,但是经过设计之后,感觉对它的理解加深了许多,而且对我所学的知识是一种很好的回顾,也让我对所学知识理解更加透彻。巩固知识的同时,我也掌握了更多一门的软件CCS,多学会一个软件总是好的,并且以后用到它的地方会很多。总体而言,课设不仅是对所学知识的回顾,更是对动手实践能力的一种锻炼。希望以后能更多的接触这类设计,多动手,多学习,为毕业以后步入工作岗位打下坚实的基础。-