DSP课程设计报告题目:FIR高通滤波器设计姓名学号教学院系专业年级指导教师DSP课程设计目录一、设计题目.....................................................................................1二、设计目标.....................................................................................1三、算法研究与参数计算................................................................11、FIR的原理和参数生成公式...............................................12、利用MATLAB计算滤波系数............................................13、输入信号参数计算..............................................................2四、编写源程序................................................................................3五、调试过程.....................................................................................41、调试前准备..........................................................................52、MATLAB的使用.................................................................53、编写及编译程序..................................................................54、设置断点和探针..................................................................65、打开观察窗口......................................................................6六、实验结果及分析........................................................................61、输入信号的时域波形和频域波形......................................62、输出信号的时域波形和频域波形......................................7七、设计心得.....................................................................................81一、设计题目FIR高通滤波器设计二、设计目标设计一个FIR高通滤波器,通带边界频率为6000Hz,采样频率为20000Hz。FIR滤波器的设计用MATLAB窗函数法进行。三、算法研究与参数计算1、FIR的原理和参数生成公式图3-12、利用MATLAB计算滤波系数在MATLAB界面输入图3-2所示程序,可得到滤波系数并生成INC文件。图3-2DSP课程设计2输入freqz(y,1,512),MATLAB中显示高通滤波器的滤波特性曲线。如图3-3所示。图3-33、输入信号参数计算MATLAB中输入图3-4中所示程序,包含两种频率成分的正弦信号,一种信号频率1000Hz,一种信号6000Hz。图3-4其频谱特性曲线如图3-5。图3-5FIR高通滤波器设计3四、编写源程序参考资料,编写汇编语言源程序:HIGHPASS.set1;ifyouwanttouse,pleasesetthevalueto1.globalstart,fir.mmregsCOFF_FIR_START:.sectcoff_fir.copy0126.incK_FIR_BFFR.set64d_data_buffer.usectfir_bfr,64FIR_DP.usectfir_vars,0d_filin.usectfir_vars,1output.usectfir_vars,1input.usectfir_vars,1d_filout.usectfir_vars,100hstacksize.set256stack.usectfir_vars,stacksize.asgAR4,FIR_DATA_P.asgAR6,INBUF_P.asgAR7,OUTBUF_P.asgAR3,OUTBUF.asgAR2,INBUF.sectfir_prognopstart:stm#stack+stacksize,SPLD#FIR_DP,DPSTM#d_data_buffer,FIR_DATA_PRPTZA,#K_FIR_BFFR-1STLA,*FIR_DATA_P+STM#d_filin,INBUF_PDSP课程设计4STM#d_filout,OUTBUF_PSTM#output,OUTBUFSTM#input,INBUFSTM#100h,BKfir_loop:NOP;AddBreakpoint&porbepointLD*INBUF_P,ASTLA,*INBUFCALLfirSTHA,*OUTBUF_P+%STHA,*OUTBUFmain_end:bfir_loopfir:;SSBXSXM;SSBXFRCTSTM#d_data_buffer,FIR_DATA_PSTLA,*FIR_DATA_PSTM#(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_Pfir_task:RPTZA,#K_FIR_BFFR-1MACD*FIR_DATA_P-,COFF_FIR_START,ARET.end五、调试过程FIR高通滤波器设计51、调试前准备1)启动SETUP并选择芯片。2)在CCS的安装目录下的myproject的子目录下创建新文件夹,命名1207030126。2、MATLAB的使用使用MATLAB生成0126.Inc文件和1207030126.dat文件,保存在1207030126文件夹中。如图5-1:图5-13、编写及编译程序1)新建project并命名1207030126。2)在project中添加0126.asm文件和0126.cmd文件。如图5-2。3)编译并链接程序。4)设置工程文件,选择菜单“project”的“buildoptions…”项。图5-25)加载程序。File—loadprogramDSP课程设计64、设置断点和探针在标号“fir_loop”下的“NOP”语句处设置软件断点和探针。选择“file”、“fileI/O…”;按照实验程序操作。5、打开观察窗口选择菜单“view”、“Graph”、“time/Freauency…”。按要求设置。六、实验结果及分析1、输入信号的时域波形和频域波形输入信号的时域波形如图6-1所示,频域波形如图6-2所示。图6-1图6-2这个信号由1000Hz和6000Hz的信号叠加而得。FIR高通滤波器设计72、输出信号的时域波形和频域波形输出信号的时域波形如图6-3所示,频域波形如图6-4所示。图6-3图6-4从输入信号波形和输出信号波形对比看,低频信号(1000Hz)不能顺利通过滤波器,被削减到几乎为0,而高频信号(6000Hz)可以顺利通过。因此这是一个性能良好的高通滤波器。DSP课程设计8七、设计心得本次我的课程设计是基于窗函数法的FIR数字高通滤波器,由于数字信号处理课程是上学期学的,再加上自己对MATLAB软件操作不熟练。导致前期用了很长一段时间查阅相关书籍,重新学习了数字滤波器的相关知识和MATLAB软件的操作方法。同时也锻炼了文件检索和查找数据手册的能力。通过本次课程设计,加深了我对数字滤波器理解。也认识到数字滤波器在实际生活具有广泛的应用。同时,改变了我对数字信号的看法,原来,枯燥的理论也有很多有趣的应用。在本次课程设计过程中,发现自己理论知识的薄弱,需要在以后的学习过程中加强。同时也感谢曹玉英老师的讲解和其他同学的帮助。