基于DSP的自适应FIR滤波器设计与实现
2014-08-07王晓娟
王晓娟
(内蒙古电子信息职业技术学院,呼和浩特010070)
基于DSP的自适应FIR滤波器设计与实现
王晓娟
(内蒙古电子信息职业技术学院,呼和浩特010070)
介绍了基于TMS320VC5402 DSP的自适应FIR滤波器的设计与实现。采用TMS320VC5402 DSP芯片作为处理单元,设计并实现了自适应FIR滤波器,给出了硬件系统设计模块,软件系统设计流程图及相应的汇编代码。仿真结果和实现结果表明所设计的自适应FIR滤波器能很好的消除叠加在信号上的噪声。
自适应FIR滤波器;LMS算法;数字信号处理芯片-TMS320VC5402
1 引 言
随着人们对信号处理要求的不断提高,越来越多的工程技术人员开始采用DSP进行系统设计,DSP技术发展日新月异,而在数字信号处理过程中,自适应滤波器又占有重要的地位,在无法得到信号和噪声统计特性的相关知识的情况下,自适应滤波器能够获得极佳的滤波性能,从而具有很好的应用价值。通信领域的自动均衡、回波消除、自适应天线阵列、线性预测及其他有关领域信号处理的系统模拟、自适应谱线增强、自动频率跟踪等领域都有着广泛应用。用可编程的DSP芯片实现自适应滤波器,可以十分方便的修改自适应滤波器的特性,同时还具有稳定性好,精确度高,不受环境影响,灵活性好等优点。文中采用TMS320VC5402 DSP芯片处理器,作为硬件系统来实现自适应FIR滤波器。
2 自适应滤波器的设计原理
自适应滤波器一般结构如图1所示,一部分为调整参数的数字滤波器,另一部分为调整滤波器系数的自适应算法[1]。在滤波过程中,自适应滤波器能够自动适应随时间缓慢变化的噪声和信号之间的自相关函数,并且自动调节误差函数,直到满足均方误差最小的要求。因此,自适应滤波器设计时,信号与噪声的自相关函数可以是未知的。
图1 自适应滤波器的一般结构
图1中d(n)为参考信号,x(n)为输入信号,y(n)为实际输出信号,e(n)为实际输出与期望信号的误差信号,e(n)=d(n)-y(n)。自适应滤波器的系数在工作过程中根据e(n)的值和自适应算法自动调整,使得系统满足输出误差要求。
2 自适应FIR滤波器的结构及算法
2.1 自适应FIR滤波器的结构
自适应滤波器有FIR和IIR两种基本结构。FIR数字滤波器具有易实现严格的线性相位,稳定性和任意的幅频特性的优点。所以本设计采用FIR滤波器横向结构作为自适应滤波器结构。其结构如图2所示。
图2 自适应FIR滤波器的结构
自适应FIR滤波器的I/O方程表示为:
其中wk(n)是在时刻n的第k个可调系数(或权值)。由N个系数组成的系数向量W(n)表示为:
时刻n的输入信号向量X(n)给出如下:T为矩阵转置符,N为滤波器阶数。
2.2 LMS算法
当输入信号和噪声的统计特性未知或输入过程的统计特性发生变化时,自适应滤波能自动调整自身参数以满足某种最佳准则要求。根据不同准则,产生不同的自适应算法,但主要有两种基本算法:最小均方误差(LMS)算法和递推最小二乘(RLS)算法[2]。
LMS算法的基本思想:调整滤波器自身参数,使滤波器的输出信号与期望输出信号之间的均方误差最小,这样系统输出为有用信号的最佳估计[2]。
基本的LMS算法如下:
其含义是:下一时刻权矢量W(n+1)等于当前权矢量W(n)加上一个修正值,该修正量等于误差信号的加权值,加权系数为2μX(n)。LMS算法收敛的条件为:0<μ<1/λmax,λmax是输入信号自相关矩阵的最大特征值。
3 自适应FIR滤波器的TMS320VC5402硬件系统设计
TMS320VC5402是TMSS320VC54系列中高性价比的16位定点DSP芯片的代表,与其他54系列芯片相同,TMS320VC5402具有高速数据处理性能以及高度灵活的可操作性能,同时兼备低功耗及价格低等优点。VC5402具有6级工作流水线,并且当系统执行重复指令RPT时,使得一部分多周期指令转变为单周期指令,通过PMST寄存器的OVLY和DROM位可以灵活设置芯片内部的RAM和ROM存储器。这些都为算法的优化提供了有利条件。
此系统利用TMS320VC5402及其他一些外设实现,系统结构如图3所示:EPROM为32K×8bit,与TMS320VC5402构成32KB的引导装载,范围为8000H-FFFFH;SARAM与TMS320VC5402构成32KB的外部程序存储器和16KB的外部数据存储器,其范围分别为48000H-48FFFFH,40000H-7FFFFH。
图3 系统结构图
模数转换接口设计采用TLC320AC01芯片实现数据采集和控制,该芯片的工作过程直接由TMS320VC5402控制,TMS320VC5402与2片TLC320AC01的主时钟共用同一外部时钟源。在本系统中AC01与VC5402通过串口0连接。DSP通过串口可以控制AC01的采样频率、增益、低通/高通滤波器的截止频率等参数。这一步是通过写AC01寄存器来实现的。图4为TMS320VC5402与AC01的连接电路。
图4 TMS320VC5402与TLC320AC01的主从模式连接图
4 自适应FIR滤波器的TMS320VC5402软件系统设计
该系统初步验证算法使用MATLAB7.0软件,并为硬件设计提供输入及参考数据,同时使用TI公司提供的CCS(Code Compo ser Studio)软件,配合XDS510仿真器调试,使用汇编语言设计自适应FIR滤波器的软件系统。
4.1 自适应FIR滤波器实现的几个关键问题
4.1.1 输入信号处理
先用MATLAB进行算法验证,所有输入数据和参考数据由MATLAB导出。由于TMS320VC5402是16位定点处理器,在进行汇编运算时,输入数据、参考输入数据及步长需要采用Q格式表示,即将MATLAB中产生的100点X(n)、d(n)及步长进行一定比例的压缩,使所有数据处于-1~1之间,然后采用Q15格式进行数据格式转换,使转换后的数据处于-32768~32768之间,作为.data段的输入数据存储在数据存储区。
4.1.2 循环寻址
设计使用了循环寻址的方法实现自适应滤波器,如图5所示。为了能正确使用循环寻址,必须先初始化BK,块长为N,同时,输入数据缓冲区和系数缓冲区的起始地址必须与2N边界对准,其中N为满足2N>BK的最小整数,即N=4,所以将系数缓冲器的首地址设置为400h,输入数据的缓冲地址设置为100h,保证后4位为0。
图5 自适应FIR滤波器存储器里的数据存储方式
4.1.3 溢出问题
由于程序中出现e(n)=d(n)-y(n),可能出现溢出问题,解决溢出的方法有多种,本程序中使用饱和模式来防止DSP运算的溢出,即设置溢出模式位OVM=1打开饱和模式。当运算结果超出可以表示的最大值时,处理器将其结果设置为最大值,当两个负数相加结果小于-1时,硬件将其结果限定为-1。
4.1.4 特殊指令LMS
C54x提供了一种并行执行FIR滤波和系数更新的特殊指令LMS。
LMS的指令语法为:
LMS Xmem,Ymem
式中Xmem和Ymem分别指向系数和信号元素。此指令以并行方式执行FIR滤波、将乘积保存于ACC B,更新ACC A中的旧系数,此指令可以解释如下:
4.2 软件程序设计
软件程序设计流程图如图6所示:其中BK为块循环大小,设置值为10;BRC为快循环指针,设置位8。
其中硬件资源的初始化包括时钟、中断、RAM,McBSP0,AC01及片上定时器;之后便在主程序中一直循环工作,直到定时器中断到来。
在软件设计中,AC01的初始化运用了idle 1指令的同时使用的是片上的同步串口,为保证安全传输数据,在系统发送完初始化数据后便等待串口发送中断。
先用MATLAB进行算法验证,输入数据和参考数据由MATLAB导出,编写汇编代码文件,部分汇编代码如下所示:
然后通过编译,汇编和链接,生成TMS320VC5402可执行的COFF目标代码,然后将生成的可执行代码通过仿真器下载到DSP目标系统中运行,在利用调试工具进行调试,得到测量波形如图7所示。
图6 软件程序设计流程图
图7 测量波型
比较图7(b)和图7(c)可得出系统运行经过大约5秒的自适应调整后,二者之间误差逐渐减小,系统开始收敛,收敛速度的大小主要取决于自适应步长的选择;同时由图7(d)可得到:响应时间越长,误差越小,滤波效果就越好。
5 结束语
基于TMS320VC5402硬件系统和软件系统相结合设计的自适应FIR滤波器,充分利用了DSP芯片的特殊结构和指令集。从测量结果可知,所设计的自适应FIR滤波器能很好的消除叠加在信号上的噪声,在实际应用中,所设计的自适应FIR滤波器即使输入信号中被其他噪声干扰,通过修改自适应步长,也可以得到期望的输出,这正是用DSP芯片设计自适应滤波器的优势。所设计的自适应FIR滤波器已经在薄板粘结超声检测系统中应用,得到了令人满意的效果。
[1]Hay kin S.Adaptiv e Filter Theory[M].T hird Editio n.Pren-cice-H all,1996.
[2]何振亚.自适应信号处理[M].北京:科学出版社,2002.
[3]楼天顺.基于MATLAB的系统分析与设计-信号处理[M].西安:西安电子科技大学出版社,1998.
[4]赵海斌.MATLAB应用大全[M].北京:清华大学出版社,2012.
[5]张朝柱.自适应信号处理技术[M].北京:北京理工大学出版社,2010.
[6]郭森茂,闫生.数字信号处理器模式[M].北京:清华大学出版社,2005.
Design and Im plementation of Adaptive FIR Filter Based on DSP
WANG Xiao-juan
(Inner Mongolia Electronic Information Vocational Technical College,Hohhot010070,China)
The article introduces the design and implementation of the adaptive FIR filter based on DSP.TMS320VC5402 DSP chip is used as the center processor to design and implement the adaptive FIR filter.The hardware system design module,the software system design flow chart and the related assembly code are given.The results of simulation and measurement show that the designed filter can perfectly eliminate the noise which disturbs the input signal.
Adaptive FIR filter;TMS320VC5402;LMS algorithm
10.3969/j.issn.1002-2279.2014.05.023
TN713
:A
:1002-2279(2014)05-0080-04
王晓娟(1982-),女(蒙古族),内蒙古赤峰人,讲师,硕士研究生,主研方向;数字信号处理。
2014-07-07