




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
评语学号 成绩 DSP技术课程论文 题目:有限脉冲响应FIR滤波器的DSP实现 作 者 班 级 院 别 专 业 电子信息工程 完成时间 2012年5月19 目录1、 概述32、 设计目的33、 设计原理44、 总体设计方案55、 CCS开发环境介绍66、 参数及其设计步骤77、 总结与体会178、 参考文献199、 附录(源程序)19一、概述随着信息技术和计算机技术的飞速发展,数字信号处理技术在众多领域得到广泛应用。数字滤波器由于其精度高、稳定性好、使用灵活等优点,广泛应用在各种数字信号处理领域。数字滤波器根据冲击响应函数的时域特性,可以分为FIR(有限长冲击响应滤波器)和IIR(无限长冲击响应滤波器)。FIR滤波器与IIR滤波器相比,具有严格的线性相位,幅度特性可任意等优点。而且,FIR滤波器的单位抽样响应是有限长的,故一定是稳定的,他又可以用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。Matlab辅助DSP开发实现的关键是建立Matlab与DSP间的连接。以往一般是由开发工具CCS把DSP中间结果先保存,再调入Matlab工作空间与:Matlab仿真中间结果比较,以此发现DSP程序的不足,这需要反复操作,比较麻烦。Math Works公司和TI公司共同开发的Matlab Link for CCS开发工具(CCSLink),实现了在Matlab,TICCS开发环境和DSP硬件问的双向连接,开发者可以利用Matlab强大的数据处理、分析、可视化功能来处理CCS和目标DSP中的数据,可以大大简化DSP软件开发的分析、调试和验证过程,缩短软件开发周期。二、设计目的1、 掌握数字滤波器的设计过程;2、 了解FIR的原理和特性;3、 熟悉设计FIR数字滤波器的原理和方法;4、 FIR滤波器的DSP实现原理;5、 使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。3、 设计原理滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号,滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器响应特性逼近给出的频率响应特性。FIR数字滤波器是一种非递归系统,其传递函数为:=由此可得到系统的差分方程为:则,FIR滤波器的结构如下图:bN-1bN-2b1b0x(n-N+1)x(n-1)aZ-1Z-1Z-1X(n)y(n)其冲激响应是有限长序列,它 滤波器系数向量,N 为FIR滤波器的阶数。在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性为了使滤波器满足线性相位条件,要求其单位脉冲响应为实序列,且满足偶对称或奇对称条件,即或.这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达为由上可见,FIR滤波器不断地对输入样本延时后,再做乘法累加运算,将滤波器结果输出。因此,FIR实际上是一种乘法累加运算。而对于线性相位FIR滤波器系数的对称特性,可以采用结构精简的FIR结构将乘法器数目减少一半。应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个,使其逼近这一指标,进而计算并确定滤波器的系数,再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到的FIR滤波器的单位冲激响应序列的各个参数值。具MATLAB滤波器设计工FDATOOL设计系数4、 总体设计方案总体设计框图如下所示:MATLAB编程产生待滤波数据CCS软件观察输入输出波形 1、 利用MATLAB来确定FIR滤波器的参数;2、 启动CCS,在CCS中建立一个C源文件和一个命令文件,并将这两个文件添加到工程再编译并装载程序;a、 程序流程图: 3、设置波形时域观察窗口,得到滤波前后的波形变化图;4、设置频域观察窗口,得到滤波前后的频谱变化图。五、 CCS开发环境CCS是一种针对TMS320系列DSP的集成开发环境,在windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具,提供了配置、建立、调试、跟踪和分析程序的工具,从而完成编辑、编译、链接、调试和数据分析等工作。利用ccs集成开发软件,用户可以在一个开发环境下完成工程项目创建、程序编辑、编译、链接、调试和数据分析等工作环节。使用ccs开发应用程序的一般步骤为:1.打开或创建一个工程项目文件,包括源程序、目标文件、库文件、链接命令文件和包含文件。2.编辑各类文件。可以使用ccs提供的集成编辑环境,对头文件、链接命令文件和源程序进行编辑。对工程项目进行编译。如出现语法错误,将在构建窗口中显示错误信息。用户可以根据显示信息定位错误信息,更改错误。4.对结果和数据进行分析和算法评估。用户可以利用ccs提供的探测点、图形显示、性能评价等工具,对运行结果、输出数据进行分析,评估算法性能。六、参数及其设计步骤1、滤波器的参数采样频率FS=10KHZ,通带截止频率FP=1kHZ,阻带截止频率FS=1.5khz。通带衰减AP=0.05db,阻带衰减RP=100db。利用MATLAB中的FDATOOL设计低通滤波器,并导入CCS软件中。在Matlab 的Start 菜单中选择Toolboxes - Filter Design - Filter Design & Analysis Tools(fdatool),或者在命令行中输入fdatool 来启动滤波器设计分析器。a、 启动成功后界面如图 b、在选项中选择或输入滤波器参数,然后点击“Design Filter”按钮,完成滤波器的设计。具体参数及设计成功后的结果如图c、从Matlab 中导出FIR 滤波器系数。1)、在Fdatool 中,选择Targets - Code Composer Studio (tm) IDE,如图1-3。2)、在出现的对话框中选择输出文件类型为C header file,输出系数类型为signed 16-bit integer,如图1-4 所示。3)、点击Generate 按钮,选择路径,即可输出前一步设计出的FIR 滤波器的系数表。(假设生成的系数表文件为fdacoefs.h) 如图所示: 2、 利用Matlab 产生噪声信号用于滤波器测试a、 将下面代码另存为 M 文件,在Matlab 中运行后将会生成input.dat 文件。该数据文件中含有500Hz、8000Hz 三种频率的信号,用于滤波器滤波效果测试。信号的时域图和频谱分别如图所示。待滤波信号产生代码:f11=500; %/Hzf12=8000; %/Hzfs=10000; %/采样HzN=1024 %数据个数T=1/fs; %采样周期n=1:N;x11=5*sin(2*pi*f11*n*T);x12=2*sin(2*pi*f12*n*T);x_base=(x11+x12);%待滤波信号波形figuresubplot(2,1,1);plot(x_base)xlabel(待滤波信号波形);subplot(2,1,2);yff=abs(fft(x_base)%待滤波信号频谱df=n*(fs/N)plot(df,yff)title(待滤波信号频谱);xout=x_base/max(x_base);%归一化xto_ccs=round(32767*xout)fid=fopen(input.dat,w);%打开文件fprintf(fid,1651 1 0 0 0n);%输出文件头fprintf(fid,%dn,xto_ccs);%输出fclose(fid);3、在CCS 中编写FIR 滤波器程序 a、新建工程。b、编写C 语言源代码并导入工程,如下: IFIR.C文件#define N 81 /FIR滤波器的级数+1#define LEN 200 /待滤波的数据长度long yn;int inputLEN; /输入缓冲,在仿真时将从内存载入int outputLEN; /输出缓冲,直接存放在内存中void main()int i,j;int *x;for(j=0;jLEN-1;j+)x=&inputj;yn = 0;for(i=0; i15;while(1);链接命令文件:MEMORYPAGE 0: EPROG: origin = 0x1400, len = 0x7c00VECT: origin = 0xff80, len = 0x80PAGE 1: USERREGS: origin = 0x60, len = 0x1cBIOSREGS: origin = 0x7c, len = 0x4IDATA: origin = 0x80, len = 0x1380EDATA: origin = 0x1400, len = 0x8000EDATA1: origin = 0x9400, len = 0x4c00SECTIONS.vectors: VECT PAGE 0.sysregs: BIOSREGS PAGE 1.trcinit: EPROG PAGE 0.gblinit: EPROG PAGE 0frt: EPROG PAGE 0.text: EPROG PAGE 0.cinit: EPROG PAGE 0.pinit: EPROG PAGE 0.sysinit: EPROG PAGE 0.bss: IDATA PAGE 1.far: IDATA PAGE 1.const: IDATA PAGE 1.switch: IDATA PAGE 1.sysmem: IDATA PAGE 1.cio: IDATA PAGE 1.MEM$obj: IDATA PAGE 1.sysheap: IDATA PAGE 1.stack: IDATA PAGE 1MATLAB生成的系数表文件:/* * Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool * * Generated by MATLAB(R) 7.0 and the * * Generated on: 18-May-2012 21:45:57 * */* * Discrete-Time FIR Filter (real) * - * Filter Structure : Direct-Form FIR * Filter Order : 9 * Stable : Yes * Linear Phase : Yes (Type 1) */* General type conversion for MATLAB generated C-code */#include E:matlabexternincludetmwtypes.h/* * Expected path to tmwtypes.h * E:matlabexternincludetmwtypes.h */* * Warning - Filter coefficients were truncated to fit specified data type. * The resulting response may not match generated theoretical response. * Use the Filter Design & Analysis Tool to design accurate fixed-point * filter coefficients. */const int BL = 11;const int16_T B11 = 0, -307, -1239, 967, 8242, 14746, 8242, 967, -1239, -307, 0;4、滤波器仿真测试a、在编译成功后会在”/debug”文件夹下产生*.out 文件,在CCS 软件的File-Load Program 里打开这个.out 文件如图:b、将滤波器设计文件载入到内存中1) 选择File-Data-Load打开之前Matlab 生成的input.dat 文件2) 、将Address 设置为input,Length 设置为200,Page 设置为Data如图:c、运行程序,点击按钮,程序即开始运行并设置断点观察波形及频谱。1) 滤波前的时域波形及其频谱如下:2) 滤波后的时域波形及其频谱如图所示:七、结论与体会一般DSP芯片实现FIR滤波器时,常是先在Matlab中设计要求的滤波器,得到滤波器系数,在目标DSP汇编程序中,对系数进行相应的Q格式转换,再用相关汇编指令实现FIR滤波器算法。但在调试时,每改变一次滤波器参数,相关系数也改变,目标DSP中的程序也要做相应改变,给调试仿真带来很大麻烦,使滤波器设计效率很低Matlab具有强大的数值分析、计算、信号处理及图形显示功能,并为用户提供了强大的信号处理工具箱和友好方便的交互式图形用户界面,用Matlab辅助DSP实现FIR,在滤波器系数改变时可以不必改变DSP中程序,大大提高了滤波器设计效率。本文只是利用Matlab辅助DSP实现了一个简单的FIR低通滤波器,并在TMS320C54x DSP上成功运行。还可以利用Matlab辅助DSP来实现比较复杂的诸如语音处理、通信、图像处理等方面的程序开发,可以大大缩短DSP 应用程序的开发时间,提高设计效率,这也是以后DSP设计的一个趋势。这次课程设计,也出现些现许多问题,但也对滤波器的原理有了进一步的理解,学会了DSP理论知识的实际应用,掌握了FIR滤波器的设计方法,熟练使用ccs设计。在调试过程中出现的问题,及要注意的事项:(1)、在用Matlab设计滤波器时采样频率一定要满足奈奎斯特准则。(2)、在用FDATool设计滤波器时,采样频率、截至、通带频率取的不好,会影响滤波器最后的滤波效果,用MATLAB编写程序中的频率数据进行比较和筛选,最终能够设计出较理想的滤波器。(3)、在加载input.dat文件后总是忘运行程序导致最终的图形出不来。(4)、在图形窗口观察结果时,如果所观察的图形不明显,可以通过设置幅度值来改善效果。参考文献1 戴明祯,周建江TMS320C54xDSP结构、原理及应用M.北京: 北京航空航天大学出版社,200782 程佩青数字信号处理教程M.北京:清华大学出版社,200723 杨志红杨万铨MATLAB程序设计基础及应用北京:清华大学出版社,20057附程序清单:1、 MATLAB仿真代码如下:f11=500; %/Hzf12=8000; %/Hzfs=10000; %/采样HzN=1024 %数据个数T=1/fs; %采样周期n=1:N;x11=5*sin(2*pi*f11*n*T);x12=2*sin(2*pi*f12*n*T);x_base=(x11+x12);%待滤波信号波形figuresubplot(2,1,1);plot(x_base)xlabel(待滤波信号波形);subplot(2,1,2);yff=abs(fft(x_base)%待滤波信号频谱df=n*(fs/N)plot(df,yff)title(待滤波信号频谱);xout=x_base/max(x_base);%归一化xto_ccs=round(32767
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB23-T 3561-2023 城市桥梁自复位拉索减震支座技术规程
- 年产7350吨农用摇臂轴项目可行性研究报告
- 汽车水性抗紫外涂料项目可行性研究报告
- 防汛知识培训课件医院
- AbMole小课堂丨Staurosporine(星孢菌素):广谱激酶抑制剂的作用 机制及其在肿瘤、神经生物学上的研究应用
- DB65T 4100-2018 羊肺丝虫病的诊断与治疗规程
- 防意外伤害自救知识培训课件
- 建材买卖合同2篇
- 2025年信托合同2篇
- 部队军事体能训练教学课件
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- GB/T 45777-2025水泥中石膏掺量评估方法
- 任务一切中断时的接发列车办法授课颜保凡课件
- 情侣合伙开店合同范例
- 表面工程学第十二章-表面微细加工技术
- 山东大学工程流体力学(杜广生)课件第5章 粘性流体的一维流动
- 底拖法在管道施工中的应用
- Toeic托业考试真习题及答案
评论
0/150
提交评论