fir滤波器在dsp上的实现

上传人:F****n 文档编号:102714007 上传时间:2019-10-04 格式:DOC 页数:5 大小:45.50KB
返回 下载 相关 举报
fir滤波器在dsp上的实现_第1页
第1页 / 共5页
fir滤波器在dsp上的实现_第2页
第2页 / 共5页
fir滤波器在dsp上的实现_第3页
第3页 / 共5页
fir滤波器在dsp上的实现_第4页
第4页 / 共5页
fir滤波器在dsp上的实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《fir滤波器在dsp上的实现》由会员分享,可在线阅读,更多相关《fir滤波器在dsp上的实现(5页珍藏版)》请在金锄头文库上搜索。

1、院系:电子信息工程学院 专业:信号与信息处理FIR滤波器在DSP上的实现1. 引言在信号处理中,滤波占有十分重要的地位。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点。它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。数字滤波是语音处理、图像处理、频谱分析等应用中的基本处理算法。DSP是一种处理数字信号的专用微处理器,主要应用于实时快速地实现各种信号的数字处理算法。用DSP芯片实现数字滤波具有稳定性好、精确度高、不受环境影响等优点。数字滤波器分为有限冲激响应滤波器FIR和无限冲激响应滤波器IIR。对称FIR滤波器在数字信号处

2、理中应用十分广泛,常用于相位失真要求较高的场合,例如:(1)通信系统:调制解调器、综合业务数据网等,都要求保证数据脉冲的形状和通道中的相关时间。f2)希尔伯特变换器:要求输入输出信号正交。(3)高保真音响系统:音乐的相位失真必须减到最小,尽可能逼真地重现原来的声音等等。由于FIR是全零点的滤波器,因而系统总是稳定的。这对于系统综合是很重要的。2. FIR滤波器的基本结构设h(n)(n=0,1,2,N一1)为滤波器的冲激响应,输入信号为x(n),则FIR滤波器就是要实现下列差分方程: (1)式(1)就是FIR滤波器的差分方程。FIR滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的

3、单位脉冲响应h(n)是一个有限长序列。由上面的方程可见,FIR滤波箅法实际上足一种乘法累加运算,它不断地输入样本x(n),经延时做乘法累加,再输出滤波结果y(n)。FIR滤波器的一个分支的延时线,把每一节的输出加权累加,得到滤波器的输出。结构如图1所示,它由一条均匀间隔的延迟线上对抽失信号进行加权求和构成。x(n)h(0)h(1)h(2)h(N-1)y(n) 图1 FIR滤波器的直接型结构图3. 利用MATLAB确定滤波器的系数设计一个线性相位FIR低通滤波器,技术指标:通带截止频率fp=1500Hz,阻带起始频率fst=2250 Hz,通带允许的最大衰减为Rp=0.25 dB,阻带应达到的最

4、小衰减为As=50dB。滤波器的采样频率为fs=16000Hz。这里采用窗函数设计法设计FIR滤波器,首先根据阻带衰减As=50dB来选择窗形状,海明窗和布拉克曼窗等窗函数均可提供大于50dB的衰减。由于海明窗可提供较小的过渡带宽,所以选择海明窗。然后编写MATLAB程序,求出技术指标中fp、fst相对应的数字频率,求出过渡带宽,由过渡带宽确定窗口长度N,求出低通滤波器的截止频率,由firl函数求出滤波器的系数。这部分MATLAB程序如下:fp=1500;fst=2250;fs=16000;%输入设计指标wp=2*fp/fs;%求归一化数字通带截止频率ws=2*fst/fs; %求归一化数字阻

5、带起始频率deltaw=ws-wp; %求过渡带宽N0=ceil(6.6/deltaw); %求窗口长度N=N0+mod(N0+l,2);%确保窗口长度N为奇数n=N-1; %求出滤波器的阶数nwn=(ws+wp)/2; %求滤波器的截止频率b=firl(n,wn); %利用firl函数求出滤波器的系数bl=round(b*10000); %将系数用整数表示fn=fopen(COEF_FIR.inc,w);%将系数存放在文件COEF_FIRinc中fclose(fn)运行后得到:N=71,wp=0.1875,ws=0.2813,wn=0.2344。再编制以下MATLAB程序段用于检验Rp和As

6、是否满足设计要求:H,w=freqz(b,1); %计算频率响应mag=abs(H); %求幅频特性db=20*logl0(mag/max(mag); %化为分贝值dw =pi/512;Rp= -(min(db(1:wp*pi/dw+1)%检验通带波动As= -(max(db(ws*pi/dw+1:512)%检验最小阻带衰减求得滤波器的Rp=0.0404dB,As=51.1829dB,满足设计要求。4. DSP实现FIR滤波器程序设计的总体思路是:启动ADS7864对输入的模拟信号进行模数转换,每采集到一个数据就送人DSP滤波运算,运算结果送DAC7625转换为模拟量。不断地重复上述过程,在D

7、AC7625的输出端就得到滤波后的模拟信号。为了精确地控制ADS7864的采样率,使用TMS320VC5416内部的定时器控制采样时间间隔T,设置定时器的定时时间等于采样时间间隔T,并让它工作在中断方式,则定时器每过T时间就向CPU发出中断请求,CPU响应中断请求,转去执行中断服务程序,在中断服务程序中读取A/D转换结果,对转换结果进行滤波运算,并将运算结果送D/A转换器转换为模拟量。因此,程序分为主程序和定时器中断服务程序两部分。为了提高程序运行速度,全部程序用汇编语言编写。(1)主程序流程图主程序流程图如图2所示。主程序首先完成DSP的初始化,然后启动A/D转换,最后等待定时器中断。DSP

8、的初始化包括:设置堆栈用于存放定时中断的断点地址;设置DSP的工作频率,TMS320VC5416的工作频率最高可达到160MHz,可以根据采样率来选择相应的工作频率;设置定时器的定时参数,以确定A/D转换器的采样速率;定时器开中断等。(2)定时器中断服务程序流程图定时器中断服务程序流程图如图3所示。由图3看出,滤波运算是在定时器中断服务程序中完成的,因此,中断服务程序稍长,但由于全部程序采用汇编语言指令编写,执行速度快,而且TMS320VC5416的工作频率最高可达160MHz,在定时器定时周期内有充裕的时间完成中断服务程序的运行。中断服务程序开始读取A/D转换结果启动A/D转换进行滤波运算转

9、换结果有效?运算结果送D/A转换器返回主程序YN主程序开始等待定时中断堆栈设置DSP工作频率设置启动A/D转换定时器初始化开中断图2 主程序流程图3 定时器中断程序流程 (3)汇编语言程序主程序.mmregs.def start.def INLOOP.bss w0,1.bss wl,1STACK.usect“STACK”,10Hx .usect “x”,71.dataCOEF.copy “COEF_ FIRInc” ;FIR滤波器系数.textstart SSBX INTM ;关中断STM #STACK+IOH,SP ;设置堆栈STM #0124H, PMST ;OVLY =1,MP/MC=O

10、,IPTR =002HSSBX OVM ;OVM =1SSBX FRCT;FRCT=1,准备做小数乘法RSBXSXMLD #6h,A ;选择ADS7864的通道APORTW *(8H),3H;设置DSP时钟频率STM #0b,CLKMD ;切换到DIV方式Tst: LDMCLKMD,AAND#01b,ABCTst,ANEQ;A0,继续检测STM#97FFH,CLKMD;设置为PLL10方式LD#OH,A;hold=0,启动A/D转换PORTW *(8H),4HRPT #30;延时NOPLD #1H,A ;hold=1PORTW* (8H),4H;设置定时器,采样速率16000赫兹STM #0E

11、79H,TCR ;预定标分频系数TDDR=9STM #3E7H,PRD ;定时器时间常数=999STM #08H,IMR ;允许定时器中断STM #08H,IFR ;定时器中断标志清零STM #0E69H,TCR;启动定时RSBX INTM ;开中断WAIT B WAIT ;等待定时中断由于所设计的FIR滤波器的系数多达71个,所以在前面的MATLAB程序中将系数放在文件COEF_FIR.inc中,这样在汇编语言主程序中就可以通过.copy汇编命令将文件COEF_FIR.inc复制到汇编程序中,免去手工输入系数的麻烦。定时器中断服务程序INLOOP SSBXINTM ;禁止中断PORTR 2H

12、,w0;读取A/D转换结果存于w0中LD #0H,A ;hold=0,启动A/D转换PORTW *(8H),4HRPT #30;延时NOPLD #1H,A ;hold=1PORTW *(8H),4HLD#w0,DPLD#0F000H,A ;判断转换结果是否有效AND w0,ASTL A, wlCMPM w1,8000HBC GOBACK,NTC;若转换结果无效则返回主程序LDw0,A;转换结果有效,w0送ASTL A,4,w0 ;去掉高4位后再存于w0中LD w0,-4,A;右移4位LD #x+1,DPSTL A,x+1;送入x+1,准备由DSP进行运算STM #x+71,AR1;AR1指向线

13、性缓冲区FIR3 RPTZ A,#70;DSP进行滤波运算MACD *AR1-,COEF,ASTH A,* AR1 ;运算结果送D/A转换器PORTW *AR1,1000hLD #1FH,A ;使D/A转换器开始转换PORTW *(8H),1004HGOBACKRSBX INTM;开中断RETE;返回主程序.END5. 结束语在上面的汇编语言程序中,FIR滤波器采用的是直接型结构,并且采用带移位双操作数指令来实现,所设计的程序直观易懂。由于是线性相位的FIR滤波器,还可以采用线性相位FIR滤波器的结构及相应的DSP指令来设计程序。占用存储空间少,运行速度快。FIR滤波器以它优越的性能,在数字信号处理领域中占有很重要的地位。采用DSP芯片实现FIR数字滤波,不仅具有准确度高、执行速度快等特点,而且用程序可移植性好,实用性强可以十分方便地改变滤波器特性。财务盈利能力分析采用的主要评价指标包括静态评价指标和动态评价指标两类。其中静态评价指标主要有投资回收期,投资利润率,投资利税率和资本金利润率;动态评价指标主要有投资回收期,净现值、净现值率,内部收益率。5

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号