




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 一.绪论1 HYPERLINK l bookmark6 o Current Document 设计背景1 HYPERLINK l bookmark8 o Current Document 设计要求1 HYPERLINK l bookmark10 o Current Document 设计思路简介1二.系统开发平台与环境1 HYPERLINK l bookmark12 o Current Document CCS开发环境1 HYPERLINK l bookmark14 o Curre
2、nt Document 三.FIR滤波器设计过程2FIR滤波器基本理论.23.2FIR滤波器的MATLAB实现4 HYPERLINK l bookmark20 o Current Document 四FIR滤波器的DSP实现10CCS仿真图及结果12总结14 HYPERLINK l bookmark28 o Current Document 参考文献15 一.绪论1.1设计背景在信号处理中,滤波占有十分重要的地位。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。低通有限冲激响
3、应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:系统总是稳定的;易实现线性相位;允许设计
4、多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。1.2设计要求利用c语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。1.3设计思路简介在TMS320C54x系统开发环境CCS(CodeComposerStudio)下对FIR滤波器的DSP实现原理进行讨论。利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。二.系统开发平台与环境CCS开发环境CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工
5、作效率。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下图1.1所示的开发周期的所有阶段。V设计概念性规划编程和编译创建工程文件、编写源代码和配置文件调试语法检查、探测点设置和日志保存等分析实时调试、统计和跟踪IF图1.1三.FIR滤波器设计过程31FIR滤波器基本理论FIR滤波器的特点数字滤波器的功能,就是把输入序列通过一定的运算变换成输出序列。它的实现方法有很多,其中比较常用到的是无限长脉冲响应滤波器IIR和有限长脉冲响应滤波器FIR两种。在计算量相等的情况下,IIR数字滤波器比FIR滤波器的幅频特性优越,频率选择性也好。但是,它有着致命的缺点,其相位特性不好
6、控制。它的相位特性f()=argH(e加)是使频率产生严重的非线性的原因。但是在图像处理、数据传输等波形传递系统中都越来越多的要求信道具有线性的相位特性。在这方面FIR滤波器具有它独特的优点,设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)为H(z)=亍h(n)z-nn=0H(z)是z-1的(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。因此,H(z)永远稳定,它可以在幅度特性随意设计的同时,保证精确、严格的线性相位。FIR滤波器的基本结构数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列,FIR滤波器的差分方程为:y(
7、n)=工ax(n一k)kk=0对上式进行Z变换得到FIR滤波器的传递函数为:(z)=驚-1bki=0由上式可以看出,H(z)是z-1的N-1次多项式,它在z平面内有N-1个零点,同时在原点处有N-1个重极点。N阶滤波器通常采用N个延迟单元、N个加法器与N+1个乘法器,取图中(a)、(b)两种结构。如z暑(0ihMhh小印(bi图fir滤波器的一般结构因为FIR滤波器的单位抽样响应是有限长的,所以它永远是稳定的。另外,若对h(n)提出一些约束条件,那么可以很容易地使H(z)具有线性相位,这在信号处理的很多领域是非常重要的。FIR滤波器的设计任务,是要决定一个转移函数H(z),使它的频率响应满足给
8、定的要求。这里所说的要求,除了通带频率p、阻带频率及两个带上的最大和最小衰减6p和6s外,很重要的一条是保证H(z)具有线性相位。(3)Chebyshev逼近法窗函数法和频率采样法设计出的滤波器的频率特性都是在不同意义上对所给理想频率特性Hd,jW丿的逼近。由数值逼近理论可知,对某个函数f(x啲逼近一般有以下三种方法:插值法(InterpolatingWay)最小平方逼近法(LeastSquareApproachingWay)一致逼近法(ConsistentApproachingWay)切比雪夫最佳一致逼近的基本思想是,对于给定区间a,b上的连续函数f),在所有n次多项式的集合Pn中,寻找一个
9、多项式p(x),使它在a,b上对f)的偏差和其它一切属于Pn的多项式p(x)对f(x啲偏差相比是最小的,即maxp=min切比雪夫逼近理论,这样的多项式是存在的,且是唯一的,并指出了构造这种最佳一致逼近多项式的方法,就是有名的“交错点组定理”。切比雪夫逼近理论解决了p(x)的存在性、唯一性和如何构造等问题。J.H.McClellan、T.W.Parks、L.R.Rabiner等人应用切比雪夫逼近理论提出了一种设计FIR滤波器的计算机辅助算法。这种算法由于是在一致意义上对Hd,jw丿作最佳逼近,因而获得了较好的通带和阻带性能,并能准确地指定通带和阻带的边缘。但它的效率依赖于初始极值频率点的估计,
10、且通带和阻带内波纹数较多,这是Chebyshev方法的两个主要缺点。3.2FIR滤波器的MATLAB实现MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具(FDATOOL),根据指定的滤波器性能快速设计一个FIR,再把滤波器系数以头文件形式导入CCS中,头文件中MATLAB辅助DSP实现FIR数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言来实现程序。头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便程序调试、仿真。(1)输入信
11、号的产生首先利用Matlab产生导入CCS的dat文件,具体实现如下代码所示sl=1000;%有效信号ns1=3000;%高频噪声fs=20000;%采样频率N=500;T=1/fs;n=O:N;signal二sin(2*pi*sl*n*T);noise1=0.7*sin(2*pi*ns1*n*T);x=(signal+noise1);%待滤波信号figureplot(x)figure(2)y二abs(fft(x);%待滤波频谱df二n*(fs/N);plot(df,y)figure(3)plot(signal)figure(4)ysignal=abs(fft(signal);%滤波后频谱df
12、=n*(fs/N);plot(df,ysignal)%滤波数据导出xout二x/max(x);%归一化xto_css二round(32767*xout);%数据取整xoutcss二xto_css;fid二fopen(C:UserszhaoyongweiDesktopmyprojectsinput.dat,w);%打开文件fprintf(fid,16511000n);%输出文件头fprintf(fid,%dn,xoutcss);%输出fclose(fid);产生的时域波形如图所示:1.510.50-0.5-1-1-50100200300400500600图输入信号波形00250200150100
13、500.20.40.60.811.21.41.61.82x104图输入频谱经过滤波器后的预期时域波形如图:-1010.80.60.40.20-0.2-0.4-0.6-0.8100200300400500600图输出时域波形频谱如图所示图输出频谱(2)滤波器的设计MATLAB集成了一套功能强大的滤波器设计工具FDATool(FilterDesign&AnalysisTool),可以完成多种滤波器的设计、分析和性能评估。a.打开FilterDesign&AnalysisTool单击MATLAB主窗口下方的“Start”按钮,选择菜单“ToolBox”一“FilterDesignf“FilterDe
14、sign&AnalysisTool(FDATool)”命令,打开FDAToo,如图所示。MATLABifyoudanotvanttoseethian7oolboxesAerospace:lere*GimulinkGioinformaticskBlockeetsComrriunicstiDn&bLinksandTargetskControlSystemkCuir/eFitting一*ShcurtcutEDataArauiiticinDesktopTools.Database4WebDataftedkaGetProductTrialsEconometricskCheckfciirUpdatB-sF
15、ilterDesign卜nFilterBuilder(filterbuilder)Preferences.FilterDesignURLCoderftiJFilterDesign&AnalysisToolCFdstool)FindFilers.More,.,P奇Help&HttlpDemosDemosA&ProductPagFWmb图fadatool的启动b.产生滤波器阶数为81阶,这里应填80,比阶数少1。窗函数选择切比雪夫型(Chebyshev),采样频率为20000Hz,通带截止频率为750Hz。BBFilterDesignfitAnalysisTool-untitledfdaK|fil
16、eEditAnalysisTargetsViewwindowJdsdp4口亘妄/曲XICurcntFHrrhfarmdicn亡和Q0田蕊疇HJi囲闌严囤l-jik?尸WiBntudeAfespanse(dQjStojctureBred-FormFIROxter:00Stnbi曰.YesSource:DsslffiFd1&1mFtar.1FiferMnnaflr”1hBWftwMmidmiYn1Z34557S9Frequencyi.kHELow口Bss;VeHi妁2洛IRsspcnseTypBenUpnMBendskpDiTTerenliatur)FiferOrderjFrequencySpcc
17、riicatpors屢SpecifyordsrBOUhls:HZtMinimumordsrfs|zDQoalOplionsFeI|训ScalePa-sskBrdMcgitudeSpecjiic?iiaiyTheBitenudcn社oulDffftcHBrcesIsTisdEE阳hririh2paband国in)WIBB-oaaylMetncidIIR&.rltenCfth嵋,FiRwnd&wWrrim:&阳炖日Alien:Cheby亍1flC|VfcwFilterDesign&AnaisTod-JuHititied.Fd.a*图滤波器的幅频特性jCirr-ertfiterriomsitonMo
18、riludA专pa凸f込mii:riGTtealienugllonstcUoTTCoinuti仃qResiponsed:si出eSour-reSinrsFtler1FitsrMandgerTypaLvwpass-Hcinpas-fiEandpAssBSOMDpDrtte-rEntHlnrIR一Cptitns|71Scale-rxsbandJ图滤波器的相位特性c.产生滤波器系数和头文件iPifli!frieuassbsndqelnj图滤波器系数SUFilterD*ii-gni鱼Arial-iiiTai=l-|unlisld.fdaSlrudun:O*:!:IbL4上I*Udltfiniilyii
19、xVI:代Windewti-aipia:;$;;;:BJbJLltd-;iIIIE甌OLJLJIT|narviH_|Clov|”H匕LOWES专EkWobi?iHeriinn并在图头文件的产生最后将产生的头文件中的滤波器系数数组放入编写好的滤波器函数中进行CCS中进行调试与测试。四FIR滤波器的DSP实现(1)DSP中滤波器的z-1算法实现FIR滤波器的输出表达式为y(n)=Sh(i)x(n-i)=h(i)s(n-i)n=0n=0式中,为滤波器系数;x(n)表示滤波器在n时刻的输入;y(n)为n时刻的输出。它的基本算法是一种乘法-累加运算,即不断地输入样本x(n),经过延时后,再进行乘法-累加
20、,最后输出滤波结果y(n)。线性缓冲区法:线性缓冲区法又称延迟线法,其特点:对于N级的FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;从最老样本开始取数,每取一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本存入缓冲区的顶部。循环缓冲区法:循环缓冲区法的特点如下:对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;从最新样本开始取数;读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而其他数据位置不变;用片内BK(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环缓冲区地址首尾相邻。本次设
21、计的FIR滤波器所采用的就是循环缓冲区法。C语言实现FIR采用C语言算法在DSP平台上实现了FIR低通数字滤波器,C语言算法相比于汇编算法可移植性很强。这里是在TMS320VC5510DSP为平台编写的C语言算法,此算法可以稍加改动用在其他DSP芯片上,而汇编算法则不然。这种方法具有以下优点:程序的入口和出口由C语言自动管理,不必手工编写汇编程序实现。程序结构清晰,可读性强。程序调试方便。由于C程序中的变量全部由C语言来定义,因此采用C源码调试器可以方便地观察C语言变量。可移植性较强,通用性较好。具体代码如下:#includestdio.h#includefdacoefs.h/头文件包含滤波器
22、的系数#defineN81/定义滤波器的阶数为81阶#defineLength200/定义缓冲区数组大小为200longyn;intinputLength;/存放输入数据intoutputLength;/存放输出数据voidmain()intm,n;int*x;for(n=0;nLength-1;n+)/循环导入数据x=&inputn;/指针指向每次导入的数据yn=0;/每做完一次乘累加后,把值赋给output数组后,从新归0for(m=0;mN-1;m+)yn+=Bm*(*(x+);/做N次的乘累加outputn=yn;把值赋给output数组while(1);/做完滤波后使程序保持在本循环
23、中五.CCS仿真图及结果CCS是TI推出的用于开发其DSP芯片的继承开发调试工具,集编辑、编译、链接、软件仿真、硬件调试及实时跟踪等功能于一体,极大地方便了DSP程序的设计与开发,此外还提供图形显示功能,方便用户观察特定地址的波形。此外,还需向工程中添加Link.cmd文件(源码见附录)。在CCSV3.3中建立工程,把c源代码和.cmd文件导入后,外加rts.lib文件,它是TI提供的运行时支持库,如果是C代码写的源程序,必须要包含该库,该库由TI公司做好放在CCScgtoolslib中,源代码TI网站可以下载。添加完成后,编译通过后,下载.out文件,导入.dat文件后运行程序。采用CCS的
24、图形显示功能,分别观察输入信号x(n)、输出信号y(n)的时域波形和频域波形,输入信号波形如图所示。0TimmIZipuT3.3e+410.020.030.040.01.1e+4-.1e+4-3.3e+4.50.060.070.060.090.099.0o.o166733335000冋冈inputKie+6.0e+5-4.0e+5-2.0e+5-9922(1015.63;S062S1)input83336667LinAutoScale珀毗:辺职11:辽图滤波前时域波形图滤波前频谱图经过滤波后,观察输出波形如下output9179.6119-3060-308U-6119-9179.80.090.
25、099.010.020.030.040.050.060.070.0(49,2812)TimeLin.AiitoScale图滤波后时域波形1BB73333500083339922(1015.63,450920)tni切utFFTMag8687Lin.AntoSealeRectangular图滤波后频谱图为了更加直观的观察滤波器的性能和滤波效果,把滤波前后的时域波形和频谱图进行对比和分析,具体如下:血d-STSstnekoptiontoulmi肿thudefault,sd辭.币浮內帀一应LIL卑凰i:-MlFirlci叫.pHOtejttiljfilhrijifesant;JEU/EKECkl,ICuuLt-U.JjLi:/fflI1111lt11JL111*11f1J1rin11/!.i1i/1I1,sJ/LfTVV,-rx空nrtsrrt.FTT二述iiluild.Ccuplete,.0Em环4如luu阿CiJjkxks./CIDDerlc*5insrtr(Tt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025项目管理聘用合同内容
- 《2025自动化设备采购合同》
- 青岛房屋过户合同范本
- 2025《合同法》与企业管理:应对新挑战实现共赢
- 语言艺术训练知到课后答案智慧树章节测试答案2025年春青岛职业技术学院
- 2025授权人力资源服务合同
- 2024年厦门医院招聘事业单位专业技术人员真题
- 2024年南昌市市属事业单位考试真题
- 2024年滦州市市属事业单位考试真题
- 2024年安吉县上墅私立职业高级中学专任教师招聘真题
- 山东省国控设计集团有限公司招聘笔试真题2024
- 《民航飞机航电设备故障检测与诊断》全套教学课件
- 2024年山东水利技师学院招聘初级专业技术岗位人员考试真题
- 2024年广东公需课《百县千镇万村高质量发展工程与城乡区域协调发展》试题及答案
- 2024年山东省济南市中考数学模拟试卷(三)(含答案)
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 志愿服务证明(多模板)
- 教学课件·植物组织培养
- 部编版语文一年级下册识字8-人之初市级优质课课件
- 基于仿真的轴承动力学分析设计毕业设计说明书
- 丽声北极星分级绘本第二级下Eek,Spider 教学设计
评论
0/150
提交评论