基于TMS320F2812DSP处理器的FIR滤波器的设计与实现_第1页
基于TMS320F2812DSP处理器的FIR滤波器的设计与实现_第2页
基于TMS320F2812DSP处理器的FIR滤波器的设计与实现_第3页
基于TMS320F2812DSP处理器的FIR滤波器的设计与实现_第4页
基于TMS320F2812DSP处理器的FIR滤波器的设计与实现_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州航空工业管理学院电子通信工程系DSP原理及应用课程设计报告设计题目:基于TMS320F2812DSP处理器的FIR滤波器的设计与实现学号:姓名:专业:物联网工程设计日期:指导老师:、引言在当今信息时代数字信号处理已成为一门极其重要的学科。数字信号处理在通信、语音、图像等众多相关领域得到了广泛的应用。数字信号处理(DSP)包括两重含义:数字信号处理技术(DigitalSignalProcessing)和数字信号处理器(DigitalSignalProcessor)。数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以

2、达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。二、在数字信号处理的应用中,数字滤波器很重要而且得到了广泛的应用。按照数字滤波器的特性,它可以被分为线性与非线性、因果与非因果、无限长冲击响应(IIR)与有限长冲击响应(FIR)等等。其中,线性时不变的数字滤波器是最基本的类型;IIR滤波器的特征是具有无限持续时间冲激响应,而FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现也可以采用非递归的方式实现。三、目前FIR滤波器的实现方法大致可分为三种:利用单片通用数字滤波器集成电路、DSP器件或者可编程逻辑器件实现。其中以使用通用DSP芯片实现方式较为简单,

3、是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器,借助于通用数字计算机按滤波器的设计算法编出程序进行数字滤波计算。由于它具有丰富的硬件资源、改进的哈佛结构、高速数据处理能力和强大的指令系统而在通信、航空、航天、雷达、工业控制、网络及家用电器等各个领域得到广泛应用。二、设计目的(1)掌握用窗函数法设计FIR滤波器的原理及方法,熟悉线性纤维FIR滤波器的幅频特性和相频特性,熟悉不同的窗函数对滤波器性能的影响。(2)掌握使用matlab编程的基本方法,学会利用fdatool工具来快速设计满足需要的滤波器。(3)掌握TMS320F2812DSP处理器开发的程序框架结构,学习驱动TMS32

4、0F2812DSP处理器程序编写并能使其正常工作。实习驱动ADC模块实现信号的实时采集与模数转换。(4)掌握使用TMS320F2812DSP处理器实现FIR数字低通滤波器的设计方法,并能够实时采集输入信号并滤除高频信号再通过SCI串口传输到计算机显示。三、设计要求1、利用Matlab软件的FDATool工具设计FIR滤波器,并提取滤波器参数;2、 在CCS集成开发环境下,利用第1步得到的滤波器参数,利用窗函数法设计FIR滤波器程序,观察输入信号及滤波后得到的输出信号的时域波形及FFTMagnitude波形;3、 利用TMS320F2812的ADC片内外设的外围电路实时采集的混频信号数据,使用1

5、个51阶的FIR低通滤波器,在CCS中设计FIR滤波器程序实现滤波,观察相关波形及滤波效果,通过SCI接口将数据传送到计算机上;4、 (选做)利用TI公司的TLV320AIC23高性能立体声音频Codec芯片,通过MIC或音频接口采样音频信号,对采样的音频信号做滤波运算,进行低音加重处理,再将运算过的音频数据通过扬声器播放出来四、总体设计4.1 利用Matlab软件的FDATool工具设计FIR滤波器4.1.1 有限冲击响应数字滤波器的基础理论滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号。滤波器的设计实质上就是对提出的要求给出

6、相应的性能指标,再通过计算,使物理可实现的实际滤波器频率响应特性逼近给出的频率响应特性。FIR数字滤波器系统的传递函数为:10)()()(H(z)NnnznbzXzY(1)由此得到系统的差分方程:)1()1()1()1()()0()(NnxNbnxbnxbny(2)若FIR数字滤波器的单位冲激响应序列为h(n),它就是滤波器系数向量b(n)。传统的滤波器分析与设计均使用繁琐的公式计算,改变参数后需要重新运算,从而在分析与设计滤波器尤其是高阶滤波器时工作量特别大。这里应用MATLAB设方fFIR滤波器,根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将

7、所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。设计完成之后将得到FIR滤波器的单位冲激响应序列h(n)的各个参数值。4.1.2 利用Matlab软件的FDATool设计FIR滤波器(1)首先在命令窗口键入FDAtool命令,启动滤波器设方t分析器,调出FDAtool界面,如下图所示。FDATool界面(2)在FilterType选项中选Lowpass,在DesignMethod中选择FIR滤波器,接着在FIR中选择Window(窗函数)法。(3)然后在FilterOrder中选择SpecifyOrder(为指定阶数),输入数值为"24”;在

8、Opitions框中选中"ScalePassband'在窗类型(Window:)下拉框选择"Blackman"。(4)在FrenquencySpecification选项中,将fs(为采样频率卜fc(为通带截止频率)中分别键入30000Hz和9600Hz。(5)点击“DesignFilter”按钮,完成滤波器的设计。具体参数及设计成功后的结AleEditT«rgtt&ViewWifldowHelpDAR依回0£(XtER国团热姿田日血!0国目行-Cu,en( Filter TofmertionFilter Mauser ._ R

9、esponds Typer画枷pStrucMeOrderStMSoutteOirect-FamFf? 34Yes OeugnedJ缈 IW:_ F(bf Cueitaents0.0OOOHDOOCOOOOOO00031060526748157597-0.0000$17S5?22«£ll»«k ODQ打能和XE7HQUQMY.glMSfimS 前翟 434$叩,QOUQSMl 幻HUE?”kQ】如O39Q2&49卯 QIC-QitOBCfif4Z2fH37»12tS7Mg播价MM那上倒0.04tl44441»7Z09tMZ-O.

10、tt04JWS1801?£5175叩09503047门於40.280013635«46110130.14£144422*440.2$001333584£11013AlF«er OrderF Specify onfer:即-广 Mini酒umordtr-OnionsIsM _s .Frecpency SpetJhc4lorisFS1 POP®The atiesuMhon 批 cutotiirtfluenclei 芯 iKfld tA 6 d6FIR低通滤波器设计(6)通过菜单选项Analysis来分析滤波器的幅频响应和相频响应特性。点击

11、Analysis中的MagnitudeResponse和PhaseResponse寸幅频和相频响应进行分析。如下图所幅频和相频响应进行分析(7)在FDATool中,选择Targets->GenerateCHeader.,单击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表。(默认的系数表文件为fdacoefs.h。如下图所示。HGenerateCHeaderiVariablenamesinCheaderfile.KI-IliII赛而理宜 Close I Help I rib,m = rr,ivia-inaar导出滤波器系数(8) 在 Matlab 中打开得到的

12、fdacoefs.h 的文件,如下图所示1«1UXLk».搜索I翻译I百科I分享I二维码、DatatypetouseinexportDouble-precisionE即口rtsuggested:的骑1g.M巾Single-precisionlloatFractionallength:fileEdaCellTook加bugDesktop'Ando*Belp,X8一口向工*信柄f.粕电,3上鹤Sluk9u«,由cn日序口目Ediuxfuarotfs.h25/7326 Warning-Filtercoefficientsweretruncatectofitspe

13、cifieddatatype.27 Theresultingresponsemaynotmatchgeneratedtheoreticalresponse.28 UsetheFilterDesign&AnalysisIooftocesignaccurate29 single-precisionfiltercoefficients.30 731 constintBL=25;32constreal32_TB25=333.10905257e-019,-2,291755663e-005.00000169659413,-0,001606689151,-0,0019040340,010043390

14、1,*0,008689423092.*0.01796567254,0,04924444854,*0.02041105181135Q1095080301,C.2800138295,0.6399B24619,0,2000138295.01095080301,36-0,02041105181,0.04924444854,*0.01796567254.-0.000609423092,0,0100433901,37-0.001904095162,-0,001609688151hO.OOC9169659413,-2,291755663e-005,3J0805257e阳!;39d'11IJIC/CP

15、TiwcterhttlurfiltL&1Ctl1O,lJ从Matlab中打开的fdacoefs.h文件取系数表中的数据小数点后3位有效值,得到如下内容:ConstfloatB25=0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,-0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,-0.11,-0.02,0.049,-0.018,-0.009,0.01,-0.002,-0.002,0.001,0.0,0.04.2CCS环境下FIR滤波器的设计及软件仿真4.2.1 程序流程图4.2.2 在CCS集成开发环境下新建FIR滤波器工程(

16、1)实验准备设置软件仿真*II式,启动CCS。(2)建立工程建立一个文件夹,存放在D:FIR,将课程设计FIR滤波器Fir源程序文件夹下的工程全部复制到D:FIR,在CCS中打开D:FIRfirfir.pjt工程,打开的CCS集成开发环境如下图所示。,/3,磔一牌GJ-三!.“,又嗝配”,士 re 为事三名时巴 白电气flMt lopiiCWe.-wO;flwt FiR(jil'C:tic2OD0cgtwlfibi y 12000" "f'Defeug.Ikf*jJ耿ii 14 Caqtltttf 0 ErrorsF B Wianiags. 0 -srki,

17、tiaelgdfe"DSP28Dievie&.h-,LSP2BlxHMdarfil*I&ciudFils(耻ulod®*DS?281xwEiMple5,h"/DSP281工Exdnplasloclud#File/ineliid*f28l2®Tf*iieludeMtbA9N史门MFimMSES25财蟾工皿SIQailF1ODDdefineSIQiMSF4500“赳gfl口后SWLEF1DDD0*tie;itwPI3.H15926floatfHaFIMUMeR3>(0.0JX0.001rM>.tM)2002P0,01r-4)m00

18、9.- thm&tk恒九-ELULTJ工.Eh2S用工丸52斤.- 配U.4.Ql2.Mr口.G1九丽JML- (LM20.QKJLOOLUm.。;rieetfXilHMMBhC0.0:flmIapiit>fO«tpat;flMtfSignal1vfSigMilli门8tfSt邺$畤21LfStepSigvalZifloatfZPI;在CCS集成开发环境中打开工程4.2.3观察滤波前后的信号的时域波形及FFTMagnitude波形(1)编译工程文件生成fir.out文件,并通过File->LoadProgram,装载该文件。(2)设置波形时域观察窗口。选择菜单Vi

19、ewGraph一Time/Frequency,分别进行如下图所示进行设置以便观察输入/输出时域波形。HGraphPropertyDie0g日Gr4PhiPropertyDlog«g|SingleTine百BisfltyTyptTi«GrtphTitltInput*phTill*Ont押Addr凶fb|StirtAdirm|EDutfagshla仲ht*:Ac®uHlionSufferSn«IndtxIncrmtnt2%1Jkqiamti如BuffuShiIhdtxIkotatnl2S61BisplayDataSize256如呼1中B*hSirt256DS

20、FhtaType$flingEltle(Ki)32-bitpotM1DSFD*uTptSwtpbafUtt笈-bitfltthnfpMid1HotDaUFrwLefttoRightfUtht*?rcaLiftUlilLtfr*由DtUDispltyThLtfCskifltJDiUliipitylaiAntascdtAaUsedtOnDCVduf此恒m0触舔DisphyTi»DisplayKnithsAi<iTimIh印IhitgfSlstnsEarDisplay(hShbuJtrOnM版匕MhD】W*7ScdeLineur911闻DnplvrSctltbbttfBit*Plot

21、StjleLimDttin«ts(ji«UfitGri1StyleZeroLineGridStjrl*Ztr«LmCWMTHodtUH*Cursor叫ICui蕤1|xdp;Curiorf«44DtUC«ri«r醒|Cuwtl|Nfclp输入数据频域波形观察输出数据频域波形观察(3)设置断点。在程序fir.c中,有注释断点的语句上设置软件断点。(4)运行并观察结果。选择Debug菜单的Run项,或按F5键运行程序。观察到的图形如下图所示。.+:GELfilti?jJProject!-atk.pjt(Mbug)Dtpnid«nt

22、Pro口斯眦(jSWrJftd由Indudc_JLibrN”t'J$our(tJflu固Ardd"C:xtic2000VgtooIsxbinc12000"D«bug,lkfC!11J门r*B*,滤波前后的数据波形及FFT分析的对比图4.2.4程序清单fir.c程序/#include"DSP281x_Device.h"/DSP281xHeaderfileIncludeFile/#include"DSP281x_Examples.h"/DSP281xExamplesIncludeFile/#include"f2

23、812a.h"#include"math.h"#defineFIRNUMBER25/#defineSIGNAL1F1000/#defineSIGNAL2F4500/#defineSAMPLEF10000#definePI3.1415926floatInputWave();floatFIR();floatfHnFIRNUMBER=0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,-0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,-0.11,-0.02,0.049,-0.018,-0.009,0.01,-0.

24、002,-0.002,0.001,0.0,0.0;floatfXnFIRNUMBER=0.0;floatfInput,fOutput;floatfSignal1,fSignal2;floatfStepSignal1,fStepSignal2;floatf2PI;inti;floatfIn256,fOut256;intnIn,nOut;main(void)nIn=0;nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;WhilefInput=InputWave();fIn

25、nIn=fInput;nIn+;nIn%=256;fOutput=FIR();fOutnOut=fOutput;nOut+;if(nOut>=256)nOut=0;/*请在此句上设置软件断点*/floatInputWave()for(i=FIRNUMBER-1;i>0;i-)fXni=fXni-1;fXn0=sin(fSignal1)+cos(fSignal2)/6.0;fSignal1+=fStepSignal1;if(fSignal1>=f2PI)fSignal1-=f2PI;fSignal2+=fStepSignal2;if(fSignal2>=f2PI)fSig

26、nal2-=f2PI;return(fXn0);floatFIR()floatfSum;fSum=0;for(i=0;i<FIRNUMBER;i+)fSum+=(fXni*fHni);return(fSum);fir.cmd程序-lrts2800_ml.lib-stack400h-heap100MEMORYPAGE0:PROG(R):origin=0x80000,length=0x10000PAGE0:BOOT(R):origin=0x3FF000,length=0xFC0PAGE0:RESET(R):origin=0x3FFFC0,length=0x2/*PAGE0:VECTORS(R

27、):origin=0x3FFFC2,length=0x3E*/PAGE1:M0RAM(RW):origin=0x000000,length=0x400PAGE1:M1RAM(RW):origin=0x000400,length=0x400PAGE1:L0L1RAM(RW):origin=0x008000,length=0x2000PAGE1:H0RAM(RW):origin=0x3F8000,length=0x2000SECTIONS/*22-bitprogramsections*/.reset:>RESET,PAGE=0/*vectors:>VECTORS,PAGE=0*/.pi

28、nit:>PROG,PAGE=0.cinit:>PROG,PAGE=0.text:>PROG,PAGE=0/*16-Bitdatasections*/.const:>L0L1RAM,PAGE=1.bss:>L0L1RAM,PAGE=1.stack:>M1RAM,PAGE=1.sysmem:>M0RAM,PAGE=1/*32-bitdatasections*/.ebss:>H0RAM,PAGE=1.econst:>H0RAM,PAGE=1.esysmem:>H0RAM,PAGE=14.3对实时采样信号进行滤波的FIR滤波器的实现4.3.

29、1程序清单#include"DSP281x_Device.h"/DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"/DSP281xExamplesIncludeFile#include<math.h>#definepi3.1415927intpx256;intpy256;doublenpass,h51,x,y,xmid51;intm=50;intn=256;/Perruptvo

30、idadc_isr(void);/Globalvariablesusedinthisexample:Uint16LoopCount;Uint16ConversionCount;voidfirdes(intm,doublenpass)intt;for(t=0;t<=m;t+)ht=sin(t-m/2.0)*npass*pi)/(pi*(t-m/2.0);if(t=m/2)ht=npass;voidmain(void)intxm,ym;doublefs,fstop,r,rm;inti,j,p,k;/PLL,WatchDog,enablePeripheralClocks/Thisexample

31、functionisfoundintheDSP281x_SysCtrl.cfile.InitSysCtrl();/Forthisexample,setHSPCLKtoSYSCLKOUT/6(25Mhzassuming150MhzSYSCLKOUT)EALLOW;for(t=0;t<=m;t+)ht=sin(t-m/2.0)*npass*pi)/(pi*(t-m/2.0);if(t=m/2)ht=npass;voidmain(void)intxm,ym;doublefs,fstop,r,rm;inti,j,p,k;/PLL,WatchDog,enablePeripheralClocks/T

32、hisexamplefunctionisfoundintheDSP281x_SysCtrl.cfile.InitSysCtrl();/Forthisexample,setHSPCLKtoSYSCLKOUT/6(25Mhzassuming150MhzSYSCLKOUT)EALLOW;4.3.2测试效果,f/FSSeiII>55I(Ewslator/CTTl_126,点Codt:CDHpoyerStudio13回区口h£dU中占g亡.小宜工肛式式2cL安七调n1香力1DF/BIKJitiAtn*向百三R晶电:工心*本/2皿审三鸭庙Fi&es搬m画悒麻|0时白蜀国苜目闽世国口

33、露犀安Ml”_|斑1fiUx-_jFt&尸uLh-氢t_Ii49*dd«n£Ft力jh口EF/BIQSr«=.f4n_|iHiurtttdFilta+I±clu.dvLibru-atr+_S4'ife«5£出人_小3日t拗虎两加"C:tixgZOGOygtsolsbinl2000*'-e&bugBlk£|aBuildCp3etflPXSIUAUk:H中”"工FL:为密- 二 国 / /Kfcnc 1KS5LC &ILlU 第u聋如息17 4H如上图所示,可以发现使用

34、DSP芯片实现的的FIR滤波器已经成功的将设定的混合频率信号中的高频部分串口调试助学 SCciAssistant 12.2 For flMWWT/2000回回国串口网1 口 波脖率?而m 校登位网引 数据位处1 停止窗p3 遒 关闭串口 1 濯交提取图 停止显示|r后十六进制显耒限不旻水数剧便朗PCACOfflBATA35FCJ-CB5 S329SDOE7ic6CAn23 1 9 D B 9 D ea B即EE3SC93BD3SFTB ,98152DdnoD-43D2CF4 E19FKE113C6非ED 8388C8S6 0Fg£00wa 3159EA2C 543Eoko6C098E5EC曲四5F1D O4ACOOAC 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论