FIR滤波器程序的编写
《FIR滤波器程序的编写》由会员分享,可在线阅读,更多相关《FIR滤波器程序的编写(14页珍藏版)》请在装配图网上搜索。
1、目录1.引言.错误!未定义书签。2.FIR滤波器基本原理.错误!未定义书签。2.1两种FIR滤波器的框图及原理.错误!未定义书签。2.2用DSP实现的数字FIR滤波器的优点.错误!未定义书签。3.FIR滤波器的设计方法.错误!未定义书签。4.FIR滤波器的c54x实现.错误!未定义书签。5.FIR滤波器的实例设计.错误!未定义书签。5.1编写滤波器序列.错误!未定义书签。5.2汇编源程序主程序的编写.错误!未定义书签。5.3中断向量表的编写.错误!未定义书签。5.4相关的连接命令文件.错误!未定义书签。5.5程序在CCSC5000中编译.错误!未定义书签。6.设计心得.错误!未定义书签。7.参
2、考文献.错误!未定义书签。0引言在数字信号处理中,滤波占有及其重要的地位。数字滤波是谱分析、雷达信号处理、通信信号处理等应用中的基本处理算法,它能够满足滤波器对幅度和相位的严格要求,解决了模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题,同时有很高的可编程性和灵活性。数字滤波是DSP最基本的应用领域,一个DSP芯片执行数字滤波算法的能力反应了这种芯片的功能强弱,用DSP实现的数字滤波器可以十分方便地改变滤波器的特性。2.FIR滤波器基本原理2.1两种FIR滤波器的框图及原理对于FIR数字滤波器来说,它的实现一般采用非递归的算法,图2.1给出的是直接型和转置型FIR滤波器的机构图。输入x(n
3、)DDDh0h1hN-2-hN-1输出y(n)多输入加法器(a)直接型横向滤波器输入x(nhN-1hN-2-1h1h0输出y(n)DDD(b)转置型横向滤波器图2.1直接型和转置型FIR滤波器结构图FIR数字滤波器的差分方程表达式为:Ny(n)=h(i)x(n-i)其中N为FIR滤波器的阶数,FIR滤波器的单位脉冲响应h(n)是一个有限长序列。在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。为了是滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n
4、)=-h(N-1-n)。这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为:y(n)=N/2-1h(i)(x(n-i)+x(N-1-n-i)由上可见,FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加运算,将滤波结果y(n)输出,因此,FIR实际上是一种乘法累加运算。而对于线性相位FIR而言,利用线性相位FIR滤波器系数的对称特性,可以采用结构精简的FIR结构将乘法器数目减少一半,但加法器数目不变,这时乘法操作数和加法操作次数是1:2。事实上,线性相位FIR滤波器是用得最多的FIR滤波器。2.2用DSP实现的数字FIR滤波器的优点在数字滤波器中,FIR滤波器的最主要的特点是
5、没有反馈回路,故不存在不稳定的问题;同时,可以在幅度特性随意设置的同时,保证精度、严格的线性相位。稳定和线性相位特性是FIR滤波器的突出优点。FIR滤波器常表示为直接型和转置型两种结构,其功能是等效的。在用专用DSP或FPGA等硬件设计长阶数FIR滤波器时,常采用转置型结构,因为这种结构便于设计成大量规则排列、形式相同的乘法/累加器阵列,避免了直接型中的多输入加法器在长阶数时的实现困难。在用通用定点DSP实现FIR滤波器时,更多的是采用直接型结构,对于C54X来说,其单乘法器、双累加器结构更适合于对称FIR实现;如果采用转置结构,因为定点DSP仅乘法/累加器是32位或40位的,数据存储器都是1
6、6位的,用16位存储器保证FIR滤波器每级乘法/累加器输出的中间结果比较麻烦,程序效率也降低了。23.FIR滤波器的设计方法FIR滤波器的设计方法主要有窗函数法和频率采样法,其中,窗函数法是最基本的方法。窗函数法的过程是:设期望的滤波器理想响应为Hd(ej),需要寻找一个传递函数H(ej)N-1h(n)e-j去逼近Hd(ej),其中最直接的方法就是将Hd(ej)的时域响应hd(n)用一个矩形窗RN(n)进行截断,从而得到一个长度为N的序列h(n),即令h(n)=hd(n)RN(n)理想响应Hd(ej)与其时域响应hd(n)也有Hd(ej)hd(n)e-j的关系,通常hd(n)是一个关于原点n0
7、对称的无限长序列,截断后的h(n)还应进行右移以形成一个因果的FIR滤波器,即在nN,其中k是整数,N是FIR滤波器的级数,而且循环缓冲区的起始地址必须对准2k边界,即循环缓冲区基地址的k个最低有效位必须为0,如N31是,循环缓冲区必须从二进制地址xxxxxxxxxxx000002开始。可见,在循环寻址实现FIR滤波器时,首先将N值加载到BK寄存器中,然后指定一个辅助寄存器ARx指向循环缓冲区,并根据ARx的低k位作为循环缓冲区的偏移量进行所规定的寻址操作。寻址完成后,根据循环寻址算法修正这个偏移量,并返回ARx的低k为。下面是利用循环缓冲区和双操作数寻址方法实现的FIR滤波器程序。设N5,y
8、(n)a0x(n)+a1(n-1)+a2(n-2)+a3(n-3)+a4(n-4),且存放a0a4的系数表在ROM中,存放数据的循环缓冲区在DARAM中。程序如下:.mmregs.defstart.bssy,1Xn.usect“xn”,5A0.usect“a0”,5PA0.set0PA1.set1.dataTable:.word1*32786/10;a0=0.1=0x0ccc.word2*32786/10;a1=0.2=0x1999.word3*32786/10;a2=0.3=0x2666.word4*32786/10;a3=0.4=0x3333.word5*32786/10;a4=0.5=0
9、x4000.textStart:SSBXFRCT;小数乘法STM#a0,AR1;AR1指向a0RPT#4;传送5个系数至数据空间MVPDtable.*AR1+STM#xn+4,AR3;AR3指向x(n-4)STM#a0+4,AR4;AR4指向a46STM#5,BK;循环缓冲区长度BK5STM#-1,AR0;AR0-1,双操作数减量LD#xn,DPPORTRPA1,xn;输入x(n)FIR:RPTZA,#4;A清零,共迭代5次MAC*AR3+0%,*AR4+0%,A;双操作数乘法累加STHA,y;保存y(n)PORTWy,PA0;输出y(n)BDFIR;循环PORTRPA1,*AR3+0%;输入
10、新数据ENDFIR滤波器的实例设计5.1编写滤波器序列由已知的滤波器的系数可得滤波器的序列为:.datahtab:.word-10*32768/1000.word-10*32768/1000.word40*32768/1000.word60*32768/1000.word80*32768/1000.word-50*32768/1000.word-60*32768/1000.word70*32768/1000.word-80*32768/1000.word-90*32768/1000.word98*32768/1000.word-90*32768/1000.word80*32768/1000.w
11、ord-70*32768/1000.word60*32768/10007.word-50*32768/1000.word-80*32768/1000.word60*32768/1000.word40*32768/1000.word-10*32768/1000.word-10*32768/1000.word00*32768/1000.word00*32768/1000.word00*32768/1000.word00*32768/1000.word00*32768/1000.word00*32768/1000.word00*32768/10005.2汇编源程序主程序的编写采用循环缓冲区实现FIR
12、滤波器的程序如下:.mmregs.includehtable.inc.includextable.inc.defstarthtabcnt.set20xtabcnt.set80STACK.usect.stack,30H.bssncnt,1.bssx_tab,80H,1.bssh_tab,80H,1.bssr_tab,80H,1.bssdb_tab,80H,1.asg0+FRAME_SZ,SAVE_AR1.asg0+REG_SAVE_SZ+FRAME_SZ,RETURN_ADDR.asg0+PARAM_OFFSET,h.asg1+PARAM_OFFSET,r.asg2+PARAM_OFFSET,d
13、b.asg3+PARAM_OFFSET,nh.asg4+PARAM_OFFSET,nx8.asg0,nc.asgAR2,r_ptr.asgAR3,h_ptr;h.asgAR4,x_ptr;x.asgAR5,db_ptr.asgBRC,rptb_cntstart:SSBXSXMSSBXFRCT;STM#x_tab,x_ptrRPT#(xtabcnt-1)MVPDxtab,*x_ptr+STM#h_tab,h_ptrRPT#(htabcnt-1)MVPDhtab,*h_ptr+STM#x_tab,x_ptrSTM#h_tab,h_ptrSTM#r_tab,r_ptrSTM#db_tab,db_pt
14、rLD#xtabcnt,ASTLMA,rptb_cntLD#htabcnt,ASTLMA,BKSUB#3,ASTLA,*(ncnt)RPTBDEND_LOOP-1STM#1,AR0MVDD*x_ptr+,*db_ptr个y值MPY*h_ptr+0%,*db_ptr+0%,ARPT*(ncnt)MAC*h_ptr+0%,*db_ptr+0%,AMACR*h_ptr+0%,*db_ptr,ASTHA,*r_ptr+END_LOOP:_end:RETURN:结果连续连续滤波连续输入中值连续记数设置小数乘法;AR1指向b0单元;设置传输次数;系数bi传输至数据区;h_tab缓冲区清零;设置双操作数减量
15、;设置页指针;存贮0到AR0;h*x的和相加送入下一;存贮结果9LDMdb_ptr,BLD#0,AXC1,AOVLD#1,A5.3中断向量表的编写.sect.vectors.refstart.align0x80RESET:BDstart;branchtoCentrypointSTM#200,SP;设置堆栈初植为200nmi:RETE;中断返回NOPNOPNOP;软件中断sint17.space4*16sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16si
16、nt24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:RETENOPNOPNOPint1:RETE10NOPNOPNOPint2:RETENOPNOPNOPtint:RETENOPNOPNOPrint0:RETENOPNOPNOPxint0:RETENOPNOPNOPrint1:RETENOPNOPNOPxint1:RETENOPNOPNOPint3:RETENOPNOPNOP.end5.4相关的连接命令文件vector
17、s.obj11abc.obj-oa1.out-ma1.map-estartMEMORYPAGE0:EPROG:origin=0x1400,len=0x7c00VECT:origin=0xff80,len=0x80PAGE1:USERREGS:origin=0x60,len=0x1cBIOSREGS:origin=0x7c,len=0x4IDATA:origin=0x80,len=0x1380EDATA:origin=0x1400,len=0x8000EDATA1:origin=0x9400,len=0x4c00SECTIONS.vectors:VECTPAGE0.sysregs:BIOSREGSPAGE1.data:EPROGPAGE0.text:EPROGPAGE0.cinit:EPROGPAGE0.pinit:EPROGPAGE0.sysinit:EPROGPAGE0.stack:IDATAPAGE1.bss:IDATAPAGE1.sin_vars:IDATAPAGE15.5程序在CCSC5000中编译将编写的源文件加载到CCSC5000中,通过编译检查所编写的程序是否正确。再连接编译得输入波形、滤波器波形、输出波形。如图5.1所示:12图5.1编译得到的输入波形、滤波器波形、输出波形13
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中物理-第3章-专题-弹力摩擦力综合问题及物体的受力分析ppt课件-新人教版必修1
- 高中英语外研版选修六ppt课件:Module+2+Section+Ⅰ+Introduction+&+Reading+—+Pre-reading
- 高中英语外研版必修三ppt课件:Module+4+Section+Ⅴ+Writing—+环保类作文
- 高中英语必修4-Unit-2-Working-the-landppt课件
- 《高等石油地质》复习资料--课件
- 高中英语人教选修6ppt课件:Unit-3-Section-Ⅱ
- 高中信息技术基础《初识冒泡排序》优质课教学ppt课件
- 高中议论文语段训练修改ppt课件
- 高中英语必修五人教版ppt课件:Unit-3-Period-Three
- 党课ppt课件信仰的力量精编版
- 蔬果变变变课件
- 中央空调系统构成和设备配置课件
- 促进身心健康课件-人教课标版
- 传出神经系统药理---课件
- 一年级数学10的分与合课件