FIR滤波器的设计电子版本.doc

上传人:1595****071 文档编号:51530127 上传时间:2022-10-18 格式:DOC 页数:18 大小:286KB
返回 下载 相关 举报
FIR滤波器的设计电子版本.doc_第1页
第1页 / 共18页
FIR滤波器的设计电子版本.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《FIR滤波器的设计电子版本.doc》由会员分享,可在线阅读,更多相关《FIR滤波器的设计电子版本.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。FIR滤波器的设计-1引言1.1FIR滤波器的介绍随着信息时代、数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。数字信号处理是将信号以数字方式表示并处理的理论和技术,处理的内容包括对数字信号的滤波、变换、频谱分析、检测、估计、压缩、识别等一系列的加工处理。由于大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。数字信号处理技术的应用领域非常广泛,而数字滤波器的设计是数字信号处理中最重

2、要的设计环节。数字滤波器分为IIR滤波器和FIR滤波器。本次课设使用的是FIR滤波器。FIR滤波器即有限长单位响应滤波器,是数字信号处理系统中最基本的原件。可以在保证任意频率特性的同时具有严格的线性相位特性。同时其单位冲激响应是有限长的,因而滤波器是稳定的系统。FIR滤波器在通信、图像处理、模式识别等领域具有广泛的应用。FIR滤波器误反馈回路,是一种稳定系统,可以设计成具有线性相位特性。设FIR滤波器的系数为h(0)、h(1)h(N-1),X(n)表示滤波器在n时刻的输入,则那时刻的输出为:y(n)=h(0)*x(n)+h(1)*x(n-1)+h(N-1)*xn-(N-1)FIR数字滤波器的结

3、构图如图1所示:图1FIR滤波器的结构图1.2MATLAB的介绍MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。主要应用于工程计算、信号处理与通讯、图像处理、信号检测、金融建模设计与分析、控制系统设计以及计算生物学等众多应用领域。MATLAB是矩阵实验室(MatrixLaboratory)之意。除具备卓

4、越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。当前流行的MATLAB5.3/Simulink3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。除内部函数外,所有M

5、ATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1.3CCS的介绍CCS软件简介CCS(CodeComposerStudio)代码调试器是一种合成开发环境。它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1,CCS1.2和CCS2.0等三个不同时期的版本,又有CC2000(针对C2XX),CCS5000(针对C54XX)和CCS6000(针对C6X)三个不同的型号。我们所使用的是CCS50002.2的版本。CCS5000具有以下特性:TI编译器的完全集成的环境:CCS5000目标管理系统,内建编辑器,所有

6、的调试和分析能力集成在一个Windows环境中。对C和DSP汇编文件的目标管理:目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。高集成的编辑器调整C和DSP汇编代码:CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在W

7、indows95和Windows-me中支持多处理。PDM允许将命令传播给所有的或所选择的处理器。在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。文件探针在算法处通过文件提取或加入信号或数据:CCS5000允许用户从PC机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。图形分析:CCS5000的图形分析能力在其环境中是集成的。在后台(系统命令)执行用户

8、的DOS程序:用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000。技术状态观察窗口:CCS5000的可视窗口允许用户进入C表达式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。代数分解窗口:允许用户选择查看写成代数表达式的C格式,提高可读性。目标DSP上的帮助:DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。用户扩展:扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中2设计过程2.1设计要求要求采用汇编语言针对DSP芯片设计一个15阶FIR低通滤波器,截止

9、频率为0.6(归一化后)。要求1.在Matlab中首先设计符合要求的滤波器,并得到滤波器的参数,并得到该滤波器的幅频特性和相频特性。2.编写汇编程序,在CCS软件环境下编写DSP程序,分别用方波和正弦波验证滤波器的设计。3.与Matlab中设计的滤波器进行对比研究。2.2设计流程2.2.1FIR滤波器参数的设计FIR滤波器的参数用Matlab来设计,其程序为:N=15;%滤波器的阶数Wn=0.6%滤波器的截止频率b=fir1(N,Wn)freqz(b,512,1000)%滤波器的幅频特性和相频特性其运行结果为:b=0.0034-0.0018-0.01080.0227,0.0165-0.0997

10、0.05960.50820.50820.0596-0.09770.01650.0277-0.0108-0.00180.0034滤波器的幅频特性和相频特性如图2和图3所示。图2滤波器的幅频特性图3滤波器的相频特性2.2.2输入方波的Matlab设计方波的Matlab程序为:t=0:0.25:50;x=square(pi*t);plot(x);xout=x/max(x);%归一化xto_ccs=round(32767*xout)fid=fopen(square.dat,w);%打开文件fprintf(fid,16511000n);%输出文件头fprintf(fid,%dn,xto_ccs);%输出

11、fclose(fid);%关闭文件输出方波如4所示图4方波信号运行程序后会生成.dat文件,为CCS的输入做准备。2.2.3正弦叠加信号的Matlab设计正弦叠加信号的Matlab程序为:f11=500;f12=9000;fs=20000;%采样频率N=300%数据个数T=1/fs;%采样周期n=-N/2:N/2;x11=0.5*sin(2*pi*f11*n*T);x12=0.5*sin(2*pi*f12*n*T);x_base=(x11+x12);subplot(1,2,1);plot(x_base);%正弦叠加信号的波形yff=abs(fft(x_base)df=n*(fs/N)subpl

12、ot(1,2,2);plot(df,yff);%正弦叠加信号的频谱xout=x_base/max(x_base);%归一化xto_ccs=round(32767*xout)fid=fopen(input.dat,w);%打开文件fprintf(fid,16511000n);%输出文件头fprintf(fid,%dn,xto_ccs);%输出fclose(fid);输出正弦叠加信号的波形如图5所示:图5正弦叠加信号运行程序后也会生成.dat文件,为CCS做输出。2.2.4FIR滤波器的设计FIR结构中的延迟Z-1在程序中实现是数据在存储器中的滑动,这对一个L阶的FIR数字滤波器来说,就是要求在存

13、储器中开辟一个L个样本并进行乘累加运算。这在DSP中可以用两种方法来实现该缓冲区。对于线性缓冲区来说,每当DSP读入一个样本后都将此样本向后移动,读完最后一个样本后,最前面的样本(最老的)被推出缓冲区,并输入最新的样本至缓冲区顶部。线性缓冲区的存储器延时可以由具有数据移动的DMOV指令来实现,它需要将缓冲区置于内部DARAM块中;对于循环缓冲区,每当输入新样本时,以新样本改写区中最老的样本,而缓冲区中的其他样本不需要其他样本移动。循环缓冲区可采用循环寻址技术来实现,它不需要必须定位在DARAM块中,但需要适当的缓冲区对准以满足循环寻址的要求。本次课设用的是循环寻址,下面主要介绍一下循环寻址的方

14、法。循环缓冲实现延时的特点是:(1)实现N阶FIR数字滤波器时,需要在数据存储器中开辟一个称为滑窗的N个单元的缓冲区,滑窗中存放最新的N个样本。(2)当每次输入新样本时以新的样本改写滑窗中最老的样本,而滑窗其他的数据不需要移动。(3)利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首位相邻。2.3仿真结果2.3.1Matlab的仿真结果Matlab中输入为方波信号信号时的输入输出信号波形如图6所示:图6方波信号的输入输出波形Matlab中输入信号为正弦叠加信号时的输入输出信号波形如图7所示:图7正弦叠加信号的输入输出波形2.3.2CCS的仿真结果CCS中方波信号和滤波后波

15、形如图8所示:图8方波波形及滤波后波形CCS中方波信号的幅频、相频特性如图9所示:图9方波信号的幅频、相频特性CCS中方波信号滤波后的幅频、相频特性如图10所示:图10方波信号滤波后的幅频、相频特性波形图10方波信号滤波后的幅频、相频特性CCS中正弦叠加信号与滤波后波形如图11所示:图11正弦叠加信号波形及滤波后波形CCS中正弦叠加信号的幅频、相频特性如图12所示:图12正弦叠加信号的幅频、相频特性CCS中正弦叠加信号滤波后的幅频、相频特性如图13所示:图13正弦叠加信号滤波后的幅频、相频特性通过上图可看出当输入信号为方波时,输出信号基本为正弦波;当输入信号为叠加正弦波时,输出为低频正弦波。这

16、说明滤波器起到了较好的滤波效果,符合设计要求。通过Matlab仿真和CCS仿真滤波效果比较,DSP程序的滤波效果要好于Matlab的滤波效果。3总结通过这次对FIR滤波器的设计,原来在课堂上学的理论知识变成了实践操作,我们对滤波器的原理和设计流程以及对Matlab和CCS的操作有了更深入的理解。书上虽然有FIR滤波器的设计,但对程序并不是太理解,导致程序总也调不出来。后来经过深入的研究,得知书上的程序使用I/O口做的,并不适合本次的课程设计。于是我们将I/O口改成了数据存储在内存中直接操作,终于把程序调出来。接下来一个难题就是输入数据的生成。通过查资料等方式查出用Matlab生成.dat文件的

17、方法信号的频率和采样频率的选择也是一个令人头疼的问题。信号的基波要在截止频率内,二次以上谐波要在截止频率外,经过计算我们选择500Hz和9000Hz的信号叠加,采样频率20000Hz。这样正好能把低频信号滤出。总之这次课设收获挺大!参考文献1张卫宁DSP原理及应用教程北京:科学出版社,2008.72戴明桢TMS320C54XDSP结构原理及应用北京航空航天大学出版社,2007.83程佩青数字信号处理教程北京:清华大学出版社,20014高西全丁玉美等数字信号处理北京:电子工业出版社,20095范寿康DSP技术与DSP芯片北京:电子工业出版社附录DSP汇编程序.titlefir.asm.mmreg

18、s.global_mainHn:.usectHn,16BUF:.usectBUF,16Xn:.usectXn,200Yn:.usectYn,215.dataHDATA:.word34*32768/10000,-18*32768/10000,-108*32768/10000,227*32768/10000.word165*32768/10000,-997*32768/10000,596*32768/10000,5082*32768/10000.word5082*32768/10000,596*32768/10000,-977*32768/10000,165*32768/10000.word227

19、*32768/10000,-108*32768/10000,-18*32768/10000,34*32768/10000.text_main:SSBXFRCTSTM#Hn,AR5;AR5指向冲激响应RPT#15MVPDHDATA,*AR5+STM#BUF,AR4;AR4指向缓冲区间RPTZA,#15STLA,*AR4+STM#Xn,AR3;AR3指向输入STM#Yn,AR2;AR4指向输出STM#(Hn+15),AR5;STM#(BUF+15),AR4STM-1,AR0LD#BUF,DPMVDD*AR3+,*AR4;向缓冲去送数STM#215,BRCRPTB#TABLE;卷积算法STM#16,

20、BKRPTZA,#15MAC*AR4+0%,*AR5+0%,ASTHA,*AR2+TABLE:MVDD*AR3+,*AR4+0%.endCMD链接命令文件vectors.objfir.obj-ofir.out-mfir.mapMEMORYPAGE0:EPROM:org=0E000Hlen=1000HVECS:org=0FF80Hlen=0080HPAGE1:SARAM:org=0060Hlen=0040HDARAM:org=0101Hlen=1380HSECTIONS.text:EPROMPAGE0.vectors:VECSPAGE0.data:EPROMPAGE0.bss:SARAMPAGE1Hn:align(128)DARAMPAGE1BUF:align(128)DARAMPAGE1Xn:DARAMPAGE1Yn:DARAMPAGE1中断向量文件.titlevectors.asm.ref_main.sect.vectorsB_main.end-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁