资源描述:
《基于DSP的数字滤波器的设计与仿真.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.2.1系统功能介绍一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。设定模拟信号的采样频率为48000Hz,。设计一个FIR低通滤波器,其参数为:滤波器名称:FIR低通滤波器采样频率:Fs=48000Hz通带截止频率:15000Hz阻带截止频率:16000Hz通带最大衰减:0.1dB阻带
2、最少衰减:80dB滤波器系数:由MATLAB根据前述参数求得。2.2总体设计方案流程图图1总体设计方案资料..主要内容和步骤3.1滤波器原理对于一个FIR滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:其中是FIR的滤波器的阶数,为延时结,为端口信号函数。最基本的FIR滤波器可用下式表示:其中输入采样序列,是滤波器系数,是滤波器的阶数表示滤波器的输出序列,也可以用卷积来表示输出序列与、的关系,如下:3.2操作步骤(1)打开FDATOOL,根据滤波要求设置滤波器类型、通带截止频率、指定阶数、采样频
3、率等。指定完设计参数后单击按钮DesignFilter,生成滤波器系数。(2)把生成的滤波器系数传到目标DSP。选择菜单Targets->ExporttoCodeComposerStudio(tm)IDE,打开ExporttoCHeaderFile对话框,选择Cheaderfile,指定变量名(滤波器阶数和系数向量),输出数据类型可选浮点型或32b,16b整型等,根据自己安装选择目标板板号和处理器号,单击OK,保存该头文件,需指定文件名(filtercoeff.h)和路径(保存在c:timyproj
4、ectsfir工程中)。(3)修改CCS汇编程序,删掉数据前的所有文字,在开头加上.data,第二行加coeff.word,在每行的前面加上.word,比且把每行的最后的逗号去掉。(4)编译汇编程序,如果有错误,按错误进行修改;没错误,则往下执行。(5)加载初始化DATA数据。运行程序,查看输入输出波形,修改相应参数进行调试资料..第4章详细设计在本实验中使用MATLAB模拟产生信号,观察滤波前的时域波形和频域波形。MATLAB仿真后,使用得到的滤波器参数,进行DSP编程,在DSP中实现带通滤波,并使
5、用CCS的频谱分析功能,查看DSP的滤波效果。MATLAB程序流程图如图4.1所示图4.1MATLAB程序流程图CCS汇编程序流程图如图4.2所示图4.2CCS汇编程序流程图资料..第5章实验过程5.1汇编语言实验步骤与内容MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具(FDATOOL),根据指定的滤波器性能快速设计一个FIR,然后把滤波器系数以头文件形式导入CCS中,头文件中MATLAB辅助DSP实现FIR数字滤波器含滤波器阶数和系数数组
6、,在MATLAB中调试、运行DSP程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言来实现程序。头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。(1)在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图5.1和图5.2所示。图5.1待滤波信号的时域图图5.2待滤波信号的频域图利用FDATOOL设计FIR滤波器的参数,操作步骤如图5.3所示。资料..图5.3FIR滤波器的参数打开Export,把Numerator改为B,如图
7、5.4所示。图5.4Export设置已滤波的信号的时域和频域波形,如图5.5和图5.6所示。资料..图5.5已滤波信号时域波形图图5.6已滤波信号频域波形图MATLAB滤波器设计工具在完成FIR设计后,如图5.7所示,在Exportas中选择16bit符号整数输出,然后单击OK按钮。生成fir.hC语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。图5.7MATLAB输出数值转换图(2)在CCS中编写汇编语言程序,进行调试,实现带通滤波的功能。在CCSIDE中建立LHM.pjt工程,用汇
8、编语言编写处理主程序fir.asm。另外根据板上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的LHM.h和input1.dat文件拷贝到LHM.pjt工程文件夹下,进行编译、链接,生成可执行文件LHM.out。(3)加载初始化data数据,图5.8所示。资料..图5.8data初始化图运行程序,查看输入输出波形,修改相应参数进行调试。5.2实验过程中出现的错误及解决的办法(1)在MATLAB程序设计中,采样频率