您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页一种块处理模式数字滤波器的DSP实现

一种块处理模式数字滤波器的DSP实现

来源:爱玩科技网
第32卷第2期2011年3月

文章编号:1002󰀁2082(2011)02󰀁0206󰀁05

应󰀁用󰀁光󰀁学

JournalofAppliedOpticsVol󰀁32No.2Mar󰀁2011

一种块处理模式数字滤波器的DSP实现

索󰀁亮,梁󰀁芳

(中北大学信息探测与处理技术研究所,山西太原030051)

摘󰀁要:对称FIR(有限冲激响应)滤波器的严格的线性相位特性和系统稳定性在数据传输、图像处理等领域得到了广泛的应用。基于单点处理模式的传统数字滤波器能实时处理点信号,但在处理图像、语音等帧信号时,速度较慢,实时性不强。针对这个问题提出了块处理模式的解决方案。通过分析FIR滤波器的原理,设计出基于块处理模式的对称FIR滤波器,并在TMS320C5510芯片中实现。介绍了基于双指针循环寻址的滤波算法,并给出了相应的主要程序。计算机试验仿真表明块处理模式方案提高了帧信号的处理速度,滤波性能良好。关键词:数字滤波;对称FIR滤波器;块处理模式;TMS320C5510;MATLAB

中图分类号:TN611󰀁72󰀁󰀁󰀁󰀁󰀁󰀁文献标志码:A

ImplementationofablockprocessingmodeofdigitalfilteronDSP

SUOLiang,LIANGFang

(InstituteofCapturing&ProcessingTechnology,NorthUniversityofChina,Taiyuan030051,China)

Abstract:Symmetricfiniteimpulseresponse(FIR)filterwithastrictlylinearphasecharacteris󰀁ticsandsystemstabilityiswidelyusedindatatransmission,imageprocessingandotherfields.Conventionaldigitalfilterbasedonsingle󰀁pointprocessingmodecanprocesspointsignalinreal󰀁time.However,itsprocessingspeedisslow,andreal󰀁timeperformanceisnotverygoodwhendealingwithimages,orvoiceframesignals.Thispaperproposesablockprocessingmodeltosolvethisproblem.ByanalyzingFIRfiltertheory,asymmetricFIRfilterwasdesignedbasedonblockprocessingmode,andimplementedintheTMS320C5510chip(aDSPchip).Thefilte󰀁ringalgorithmbasedontwo󰀁pointerscircularaddressingwasintroduced,andthemainprogramwasgiven.Computersimulationshowsthattheblockprocessingmodeoftheprogramsignifi󰀁cantlyimprovestheprocessingspeedofframesignal,andfilteringperformanceissatisfactory.Keywords:digitalfilter;symmetricFIRfilters;blockprocessingmode;TMS320C5510;MAT󰀁LAB

引言

数字滤波器是数字信号处理中重要的组成部分之一,在各个领域都有着广泛的应用。所谓数字滤波,就是将输入的信号序列按规定的算法处理,得到所希望的输出系列的过程。因此,一个数

字滤波器就是一个数字系统,其特性在频域用系统传输函数表示,在时域用系统的单位冲激响应表示。其中,按照单位冲激响应是无限长的还是有限长的,可以分为无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器两种。

收稿日期:2010󰀁05󰀁31;󰀁修回日期:2010󰀁06󰀁10基金项目:国家自然科学基金(60772102)

作者简介:索亮(1984-),男,湖北荆州人,中北大学信息与通信工程学院硕士研究生,主要从事基于嵌入式传感器阵列信息处理研究工作。E󰀁mail:kenny19840730@163.com

应用光学󰀁2011.32(2)󰀁索亮,等:一种块处理模式数字滤波器的DSP实现

󰀁207󰀁

󰀁󰀁IIR滤波器虽然所需要的运算量相对较小,但是其在频带范围内的相位响应是非线性的,这导致信号在处理后会出现频率失真,并且由于IIR滤波器的反馈特性,使得系统的稳定性较弱。而FIR滤波器则可以做到既具有严格的线性相位响应又具有任意的幅度,此外FIR滤波器的单位冲激响应是有限长无反馈的,因而系统一定是稳定的。本文通过对FIR滤波器原理的分析,在TMS320C5510芯片中实现了块处理模式的对称FIR滤波器[1]。

输入信号,其幅度为0.3,采样频率为8000,频率由800,1800,3300混合而成的正弦信号。主程序如下:

x=0.3*sin(w1*n)+0.3*sin(w2*n)+󰀁0.3*sin(w3*n);

fid=fopen(󰀁input.dat󰀁,󰀁w󰀁);

fprintf(fid,󰀁intinput[128]={\\n}󰀁);fprintf(fid,󰀁%5d\\n󰀁,round(x(1:128)*362767));

fclose(fid);

程序编写中注意,应根据所选择的DSP芯片和实际数据大小来定标数据格式。本文选择的是16位定点DSP芯片,这里乘以362767将输入数据统一定标为Q15格式。2.2󰀁FDATool设计滤波系数

设计一个数字滤波器,关键就是要得到滤波系数b(l)(见公式1、2)。在MATLAB的信号处理工具箱中,FDATool以图像界面的形式,包含了所有滤波器M函数的功能,使得滤波器的设计非常方便和简单。下面利用FDATool设计一个对称FIR滤波器。

如图2所示在FDATool设计界面中指定滤波器设计方法为FIR(Window),窗函数选为Ham󰀁ming,滤波器类型选为Lowpass,滤波器阶数为48,采样频率Fs为8000Hz,截止频率Fc为1000Hz,滤波器结构选为直接1型。指定完设计参数后,点击DesignFilter,量化后即可生成一个具有对称性的滤波器系数。

1󰀁FIR滤波器的基本原理

在很多实际的应用中,要求滤波器不仅具有稳定性而且具有严格的线性相位,特别是对相位敏感的信号,如图像信号、语音信号等。通过计算推导出,当FIR滤波器的系数呈对称性时,滤波器将具有精确的线性相位。其输出表达式根据滤波器阶数L的奇偶性可以分为以下两种情况[2]:

1)L为偶数时流程图见图1(a),其传输函数为

L-12H(z)=

l=0

󰀁b(l)[Z

-l

+Z-(L-l-1)]

L-1-12(1)

2)L为奇数时流程图见图1(b),其传输函数为H(z)=b(

Z

1

L-1L-)Z-2+2

󰀁

l=0

b(l)[Z+

(2)

-l

-(L-l-1)

]

图2󰀁用FDATool生成对称的滤波器系数󰀁Fig.2󰀁Symmetricalfiltercoefficients

图1󰀁对称FIR滤波器流程图Fig.1󰀁SymmetricFIRfilterflowchart

generatedbyFDATool

2󰀁MATLAB设计数字滤波器

2.1󰀁MATLAB生成输入信号

在MATLAB中生成数据文件input.dat作为

3󰀁DSP中实现块处理模式FIR滤波器

󰀁󰀁FIR滤波器按照处理数据的方式,可以分为以下两类:单点处理模式的FIR滤波器和块处理模󰀁208󰀁

应用光学󰀁2011,32(2)󰀁索亮,等:一种块处理模式数字滤波器的DSP实现

式的FIR滤波器。所谓单点处理就是每一个采样周期仅有一个新的输入数据,并且FIR滤波器在每一个周期也只有一个结果。而在有些实际应用中,其数字采样通常都被组合成帧的形式,需要用块处理模式来进行处理。在块处理模式下,FIR滤波器可以快速处理由N个采样组成的帧信号。由图3(a)和图3(b)可以看到在单点模式下处理由N个采样组成的帧信号需要循环执行N次滤波程序。而在块模式下处理这个帧信号只需要循环执行r次(r=[N/M]+1),r是远小于N的,这样可以使得处理速度大幅度上升,有效提高数字处理系统的实时性

[3]

义字的个数,对于寄存器缓冲区则定义位的个数[4]。循环寻址的情况如表1所示。

表1󰀁TMS320C5510循环寻址的配置位󰀁Table1󰀁TMS320C5510circularaddressing

theconfigurationbit

指针线性/循环寻址配置位AR0AR1AR2AR3AR4AR5AR6AR7CDP

ST2󰀁55(0)=AR0LCST2󰀁55(1)=AR1LCST2󰀁55(2)=AR2LCST2󰀁55(3)=AR3LCST2󰀁55(4)=AR4LCST2󰀁55(5)=AR5LCST2󰀁55(6)=AR6LCST2󰀁55(7)=AR7LCST2󰀁55(8)=CDPLC

支持主

数据页AR0HAR1HAR2HAR3HAR4HAR5HAR6HAR7HCDPH

缓冲区首地址寄存器BSA01BSA01BSA23BSA23BSA45BSA45BSA67BSA67BSAC

缓冲区大小寄存器BK03BK03BK03BK03BK47BK47BK47BK47BKC

󰀁󰀁利用双指针循环寻址设计对称FIR滤波器的步骤如下:

1)设置信号循环缓冲区和系数循环缓冲区,其中系数循环缓冲区只需要L/2。

2)采用双指针循环寻址,AR3和AR1同时指向信号缓冲区最新和最老的数据。临时寄存器T1和T0用来作为更新循环缓冲器指针时的偏移量。偏移量被初始化为T0=L/2和T1=L/2-2。

3)首先用双重存储器加法指令add*AR1,*AR3,AC1使第1对滤波器采样相加结果放入AC1的高位,然后内部循环firsadd*AR3+,*AR1-,*CDP+,AC1,AC0指令。

4)循环结束后,再次调用firsadd*(AR3-T0),*(AR1+T1),*CDP,AC1,AC0指令,计算出y(n),同时更新AR3和AR1指针,指向下一时刻的最新和最老的采样。图4表示了信号循环缓冲器双指针的变化过程。

+

+

-

图3󰀁两种处理模式的流程图Fig.3󰀁Flowchartsoftwoprocessingmodes

本文所设计的对称FIR滤波器阶数为48,完成一个点的滤波要做24次乘法和47次加法,需要选用高速的DSP芯片。TMS320C5510是一款定点16位DSP芯片,它是TI公司C55x系列产品中最新的一种,它具有2个乘/加(MAC)单元,4个40位累加器,能够在单周期内作2个17位󰀁17位的乘法运算,处理速度是C54x的5倍,功耗只有C54x的1/6。其片内存储空间共有352KB,外部存储空间共有16MB,而且内部资源丰富、接口灵活非常适合做复杂算法运算。设计中选用TMS320C5510芯片,并利用其双MAC单元的特点结合双指针寻址的方法给出基于块模式的滤波算法。

3.1󰀁TMSC5510的循环寻址方式

循环寻址的关键就是让缓冲区中的单元首尾相连,从而实现让新的数据进来,最老的数据被覆盖。C55x系列任何一种间接寻址方式都可以使用循环寻址,当用于指向数据或寄存器时,每个ARn(n=0~7)和CDP指针都能地配置为线性或循环寻址,只需要将配置位(配置位位于ST2󰀁55)进行相应的配置即可。循环缓冲区的大小在BK03,BK47或BKC中定义,对于字缓冲区则定图4󰀁双指针循环寻址

Fig.4󰀁Two󰀁pointercircularaddressing

3.2󰀁块处理模式的对称FIR滤波器子函数

用汇编语言编写FIR滤波器子函数文件firsymm.asm,程序流程见图5,主要程序如下(󰀁;󰀁后为程序注译):

mov󰀁#M-1,BRC0;用于执行的外部循环应用光学󰀁2011.32(2)󰀁索亮,等:一种块处理模式数字滤波器的DSP实现

󰀁209󰀁

计数器

mov󰀁#(L/2-3),CSR;(L/2-2)次迭代的内部循环

mov󰀁#L/2,T0;为AR1设置指针偏移sub󰀁#(L/2-2),T1;为AR3设置指针偏移

||rptblocalsample󰀁loop-1;外部循环M次处理一个块数据

mov󰀁#0,AC0

||mov󰀁AC1󰀁#-1,*AR3;输入量标度为Q14格式

add*AR3,*AR1,AC1;防止相加溢出AC1=[x(n)+x(n-L+1)]󰀁16

||rpt󰀁CSR󰀁;L/2-2次迭代计算一个y(n)firsadd*AC1,AC0

firsadd*(AR3-T0),*(AR1+T1),*CDP+,AC1,AC0

macm*CDP+,AC1,AC0;完成最后的macm指令

movrnd(hi(AC0󰀁1)),*AR2+;还原到Q15格式并保存

||mov*AR0,AC1;输入下一个信号sample󰀁loop

++

-

1)+x(n+1-L+1)],滤波系数与采样对之和相乘||add*ARx+,*ARy+,ACx;x(n-l+1)+x(n+1-L+2),同时下一对采样相加

2)使用对称FIR滤波器指令firsadd把两个相应的采样相加,然后进行相乘。在加法运算中可能会造成溢出,因此在新采样被存放到信号缓冲器之前,将其标定成Q14格式,可以解决溢出问题。3.3󰀁FIR滤波器主程序

用C语言编写主程序文件fir.c,由MATLAB产生的input.dat文件作为输入信号,同时调用firsymm.sam子函数完成低通滤波。程序中需定义一个全程变量index作为信号缓冲器标志,对每次读入的采样块(由M个采样组成)跟踪其信号缓冲器起始位置,以保证从帧信号中读取的数据块是连续的。同时还可以通过对M的设定来改变采样块的大小来调整块处理的时间。程序流程图见图6。

AR3,*

+

AR1,*

-

CDP,

+

图6󰀁主程序流程图Fig.6󰀁Mainprogramflowchart

4󰀁仿真调试及结果分析

4.1󰀁仿真调试

在CCS中建立一个

图5󰀁对称FIR滤波器子函数程序流程图Fig.5󰀁SymmetricFIRfilterfunctionprogramflowchart

工程文件夹,然后将主程序fir.c文件、滤波器子函数firsymm.sam、信号输入文件input.dat以及库文件和配置文件添加到工程文件夹中。如左图所示,编译后生成fir.out执

行文件,加载执行文件进行仿真调试[5]。在程序编写中应该要注意的两个问题1)TMS320C5510有一个专门的指令firsadd利用双MAC单位来实现对称FIR滤波器。指令语法如下:firsaddXmem,Ymem,Cmem,ACx,ACy,其作用等效于在一个周期内完成下列并行指令:macm*CDP+ACx,ACy󰀁;b(l)*[x(n-

󰀁210󰀁4.2󰀁结果分析

应用光学󰀁2011,32(2)󰀁索亮,等:一种块处理模式数字滤波器的DSP实现

泛应用。本文针对TI公司的TMS320C5510,叙述了FIR数字滤波器的理论、设计及在DSP上的实现过程,同时还提出了块模式FIR滤波器的思路,极大提高了帧信号的处理速度。在实际应用时只需按要求修改滤波器参数,对程序作较少的改动,即可实现不同截止频率的FIR滤波器,有很强的实用性,同时该方法对滤波器在嵌入式系统中的实现也有很好的参考价值。

帧信号input.dat由4000个采样点组成,块大小(M)设定为128。在CCS中将时钟周期设定为25ns,分别对点/块处理模式下的运算速度进行仿真。由表2可见,在相同的时钟周期下,点模式处理完帧信号所需的时间是块模式的5倍以上,这表明帧信号在块模式下处理速度得到了极大的提高。

表2󰀁两种处理模式下的运算速度比较Table2󰀁Comparisonofoperationspeedswith

twoprocessingmodes

处理模式块模式点模式

循环调用滤波子函数次数/次

󰀁32

所需时钟周期/个

116768556759

参考文献:

[1]󰀁赵洪亮,卜凡亮,黄鹤松,等.TMS320C55xDSP应用

系统设计[M].北京:北京航空航天大学出版社,2008.

ZHAOHong󰀁liang,BUFan󰀁liang,HUANGHe󰀁song,etal.TMS320C55xDSPapplicationsystem[M].Beijing:BeijingUniversityofAeronauticsandAstronauticsPress,2008.(inChinese)

[2]󰀁SENM,KUOBH,LEE.实时数字信号处理[M].卢

伯英,译.北京:中国铁道出版社,2005.

SENM,KUOBH,LEE.Real󰀁timedigitalsignalprocessing[M].TranslatedbyLUBo󰀁ying.Beijing:ChinaRailwayPublishingHouse,2005.(inChinese)[3]󰀁杨健,张慧慧.基于DSP的嵌入式数采系统滤波算法

设计与实现[J].制造业自动化,2006,28(12):30󰀁32.YANGJian,ZHANGHui󰀁hui.EmbeddedDSP󰀁baseddataacquisitionsystemsfilterdesignandimplementa󰀁tion[J].ManufacturingAutomation,2006,28(12):30󰀁32.(inChinesewithanEnglishabstract)[4]󰀁赵红怡.DSP技术与应用实例[M].北京:电子工业

出版社,2007.

ZHAOHong󰀁yi.DSPtechnologyandapplications[M].Beijing:PublishHouseofElectronicsIndus󰀁try,2007.(inChinese)

[5]󰀁王华,.DSP原理及其C编程开发技术[M].北

京:电子工业出版社.2005.

WANGHua,ZHANGJian.DSPtheoryandCpro󰀁grammingtechnology[M].Beijing:PublishHouseofElectronicsIndustry,2005.(inChinese)

4000

󰀁󰀁运行CCS图形工具,可以看到:输入信号是由频率分量为800Hz,1800Hz和3300Hz组成的混合正弦波,如图7(a)所示;通过低通滤波器之后,使得两个高频分量衰减,800Hz的低频分量通过,如图7(b)所示,滤波效果良好,达到设计要求。

图7󰀁信号的时域和频域图

Fig.7󰀁Signalintimedomainandfrequencydomain

5󰀁结论

对称FIR数字滤波器以其优越的稳定性和线性相位特性,在数据传输、图像处理等领域得到广󰀁

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务