自适应滤波器的dsp实现

自适应滤波器的dsp实现
自适应滤波器的dsp实现

课程设计

学院

专业

年级

姓名

论文题目

指导教师职称

成绩

2013年 1 月 10 日

目录

摘要 (1)

关键词 (1)

Abstract (1)

Key words (1)

引言 (1)

1 自适应滤波器原理 (2)

2 自适应滤波器算法 (3)

3 自适应滤波算法的理论仿真与DSP实现 (5)

MATLAB仿真 (5)

DSP的理论基础 (7)

自适应滤波算法的DSP实现 (9)

4 结论 (11)

致谢 (12)

参考文献 (12)

自适应滤波器算法的DSP实现

学生姓名:学号:

学院:专业:

指导教师:职称:

摘要:本文从自适应滤波器的基本原理、算法及设计方法入手。本设计最终采用改进的LMS算法设计FIR结构自适应滤波器,并采用MATLAB进行仿真,最后用DSP 实现了自适应滤波器。

关键词:DSP(数字信号处理器);自适应滤波器;LMS算法;FIR结构滤波器

DSP implementation of the adaptive filter algorithm Abstract:In this article, starting from the basic principles of adaptive filter and algorithms and design methods. Eventually the design use improved the LMS algorithm for FIR adaptive filter,and use MATLAB simulation, adaptive filter using DSP.

Key words:DSP;adaptive filter algorithm;LMS algorithm;FIR structure adaptive filter

引言

滤波是电子信息处理领域的一种最基本而又极其重要的技术。在有用信号的传输过程中,通常会受到噪声或干扰的污染。利用滤波技术可以从复杂的信号中提取所需要的信号,同时抑制噪声或干扰信号,以便更有效地利用原始信号。滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,让该部分信号顺利通过;而对其他不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。在电子系统中滤波器是一种基本的单元电路,使用很多,技术也较为复杂,有时滤波器的优劣直接决定产品的性能,所以很多国家非常重视滤波器的理论研究和产品开发[1]。近年来,尤其数字滤波技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。从总的来说滤波可分为经典滤波和现代滤波。经典滤波要求已知信号和噪声的统计特性,如维纳滤波和卡尔曼滤波。现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。

自适应滤波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,

因此我们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力[2]。

1 自适应滤波原理

所谓的自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种能调节其自身传输特性以达到最优的维纳滤波器。自适应滤波器不需要关于输入信号的先验知识,计算量小,特别适用于实时处理。由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和II 种具有固定滤波系数的滤波器无法实现最优滤波。在这种情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的[3]。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR 滤波器作为自适应滤波器的结构。图1给出了自适应滤波器的一般结构。

图1 自适应滤波器的一般结构

图1为自适应滤波器结构的一般形式,图中x(n)为输入信号,通过参数可调的数字滤波器后产生输出信号y(n),将输出信号y(n)与标准信号(或者为期望信号)d(n)进行比较,得到误差信号e(n)。e(n)和x(n)通过自适应算法对滤波器的参数进行调整,调整的目的使得误差信号e(n)最小。

自适应滤波器设计中最常用的是FIR横向型结构。图2是横向型滤波器的结构示意图。

图2 横向型滤波器的结构示意图

其中:x(n)为自适应滤波器的输入;w(n)为自适应滤波器的冲激响应:

w(n)={w(O),w(1),…,w(N-1)};y(n)为自适应滤波器的输出:y(n)=x(n)*w(n)。

∑-=-

=

=

1

)

(

)

(

)

(

)

(

)

(

N

i i

T i

n

x

n

w

n

X

n

W

n

y

自适应滤波器的结构可以采用FIR或IIR滤波器,但IIR滤波器存在稳定性的问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应FIR滤波器结构又可分为3种结构类型:横向型结构(Transversal Structure)、对称横向型结构(Symmetric Transversal Structure)以及格型结构(Lattice Strcuture)。本文采用自适应滤波器设计中最常用的FIR横向型结构[4]。

2 自适应滤波算法

自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。自适应算法是根据某种判断来设计的。自适应滤波器的算法主要是以各种判据条件作为推算基础的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。LMS 算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。最小均方误差(Least Mean Square,LMS)算法是一种易于实现、性能稳健、应用广泛的算法。所有的滤波器系数调整算法都是设法使y(n)接近d(n),所不同的只是对于这种接近的评价标准不同。LMS 算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(Mean Square Error,MSE)。理想信号d(n)与滤波器输出y(n)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi(n)。由此产生的算法称

为LMS。均方误差ε表示为:

对于横向结构的滤波器,代入 y(n)的表达式:

其中:R=E[X(n)XT(n)]为N×N的自相关矩阵,它是输入信号采样值间的相关性矩阵。

P=E[d(n)X(n)]为N×1互相关矢量,代表理想信号d(n)与输入矢量的相关性。在均方误差ε

达到最小时,得到最佳权系数:

它应满足下式:

,,

这是一个线形方程组,如果R矩阵为满秩的,R-1 存在,可得到权系数的最佳值满足:

W*=R-1p。用完整的矩阵表示为:

显然φx(m)=E[x(n)x(n-m)]为x(n)的自相关值,φxd(R)=E[x(n)d(n 一k)]为x(n)与d(n)互相关值。在有些应用中,把输入信号的采样值分成相同的一段(每段称为一帧),再求出R,P 的估计值得到每帧的最佳权系数。这种方法称为块对块自适应算法。

如语音信号的线性预测编码LPC 就是把语音信号分成帧进行处理的。R,P的计算,要求出期望值E,在现实运算中不容易实现,为此可通过下式进行估计:

用以上方法获得最佳 W*的运算量很大,对于一些在线或实时应用的场合,无法满足其时间要求。大多数场合使用迭代算法,对每次采样值就求出较佳权系数,称为采样值对采样值迭代算法。迭代算法可以避免复杂的R-1和P的运算,又能实时求得近似解,因而切实可行。LMS算法是以最快下降法为原则的迭代算法,即W(n+1)矢量是W(n)矢量按均方误差性能平面的负斜率大小调节相应一个增量:W(n+1)=W(n)-μ▽(n),这个“是由系统稳定性和迭代运算收敛速度决定的自适应步长。▽(n)为n 次迭代的梯度[5]。对于LMS算法▽(n)为下式

即E[e2(n)]的斜率:

由上式产生了求解最佳权系数W*的两种方法,一种是最陡梯度法。其思路为:设计初始权系数W(0),用W(n+1)=W(n)-μ▽(n)迭代公式计算,到W(n+1)与W(n)误差小于规定范围。其中▽(n)计算可用估计值表达式:

上式 K 取值应足够大。如果用瞬时一2e(n)X(n)来代替上面对-2E[e(n)X(n)]的估计运算,就产生了另一种算法——随机梯度法,即Widrow-Hoft 的LMS 算法。此时迭代公式为:W(n+1)=W(n)+2ue(n)X(n)。

以后讨论的 LMS 算法都是基于WidrOW-Hoff 的LMS 算法。上式的迭代公式假定滤波器结构为横向结构。对于对称横向型结构也可推出类似的迭代公式:

W(n+1)=W(n)+2ue(n)[X(n)+X(n-N+1)]

3 自适应滤波算法的理论仿真与DSP实现

MATLAB仿真

MATLAB程序仿真

使用MATLAB编程,采用自适应滤波器技术实现语音去噪过程[6],程序如下:clear all;

clf;

pi=;

signal=sin(2*pi**[0:999]'); %产生输入信号

noise=randn(1,1000); %产生随机噪声

nfilt=fir1(11,; %产生11阶低通滤波,截止频率为

fnoise=filter(nfilt,1,noise); %噪声信号进行FIR滤波

d=signal.'+fnoise; %将噪声叠加到信号中

w0=nfilt.'; % 设置初始化滤波器系数

mu=; % 设置算法的步长

s=initse(w0,mu); %初始化自适应FIR结构滤波

[y,e,s]=adaptse(noise,d,s); %进行自适应滤波

t=1:200;

plot(t,signal(1:200))

figure(2);

plot(t,d(1:200),'.-',t,y(1:200),'-');

仿真结果

(1)为了确保噪声的相关性,首先让噪声通过一个11阶的低通FIR滤波器然后将滤波后的噪声加到信号中去;

(2)对程序中所使用的一些函数的详细说明,请参考MATLAB的函数说明,这些函数包括:FIR、INITSE、FILTER、PLOT、ADAPTSE等。图3为原始信号的信号图;图4为滤波前信号和滤波后信号时域图。比较图3和图4可以看出,采用自适应滤波后的滤波输出信号和原始信号基本相似,噪声完全滤除。

采样点数幅值

图3 原始信号时域图

-2.5-2

-1.5

-1

-0.5

00.5

1

1.5

2

滤波前后波形比较图

幅值采样点数

图4 滤波前信号和滤波后信号时域图

对比图4中滤波前和滤波后的信号可以看出,信号中的噪声完全滤除,信号完全恢复,通过Matlab 仿真结果分析,自适应滤波器具有很好的性能。

DSP 的理论基础

数字信号处理(DSP)是指人们利用计算机或专用处理设备,以数字的形式对信号进行采集,变换,滤波,估值,增强,压缩,识别等处理[7],以得到符合人们需要的信号形式。其框图如图5所示。

图5 数字信号处理系统的简化框图

DSP内部一般都包含多个处理单元,如算术逻辑运算单元,辅助寄存器运算单元,累加器等。另外DSP芯片也有很多种,这里着重介绍TMS320C5000系列。

目前TMS320C5000系列芯片包括了TMS320C54XX和TMS320C55XX两大类。这两类芯片的软件互相兼容。但是本文选择TMS320C55XX系列DSP芯片。

1.结构特点比较

(1) TMS320C54XX和TMS320C55XX均为16bit定点DSP

(2) C55XX有双MAC单元;C54XX只有单MAC单元。

(3) C55XX 的指令长度可变,且没有排队的限制;C54X的指令长度固定。

(4) C55XX有12组总线;C54XX只有8组总线。

(5) C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX 则不能直接使用。

2.内部结构对比

(1) C54XX关注于低功耗,而C55XX则将低功耗提高到一个新水平:300MHZ的C55XX和120MHZ的C54XX相比,性能提高了5倍,而功耗则降到1/6。

(2) C55XX总线的宽度为32bit,而C54XX总线宽度为16 bit。C55XX有三组数据读总线和两组数据写总线,而C54XX有两组数据读总线和一组数据写总线。

(3) C55XX包含一个40bit的ALU。用户可以用ALU作32bit的运算。C54XX包含一个分开40bit的ALU。它的ALU可以做成两个16bit的配置。

(4) C55XX可以执行可变长度的指令,这和C54XX有显著的不同。C54XX的指令长度为固定的16 bit,而C55XX的指令长度则为8~48bit。

3. 寻址模式对比

C54XX支持单数据存储器操作数寻址和32 bit操作数寻址,还使用并行指令支持双数据存储器操作数寻址。它也提供立即数寻址,循环寻址和位倒序寻址。在C54XX 的基础上,C55XX还支持绝对值寻址,寄存器间接寻址,直接寻址。C55XX的ADFU 包括专门的寄存器,支持使用间接寻址指令的循环寻址。可以同时使用5个独立的循环缓冲器和3个独立的缓冲器长度。这些循环缓冲器没有地址排队的限制[8]。

自适应滤波算法的DSP实现

为了提高LMS算法的处理速度及减小系统的硬件规模,在实现滤波器算法时,采用了TMS320C54xx作为核心芯片。由于该处理器采用改进型结构,具有高度并行性,同时拥有高度集成的指令系统,简化编程过程,模块化结构程序设计增强了程序的可移植性。利用TMS320C54xx实现LMS自适应算法时,存储器中数据的存放形式对DSP的有效运用有着特殊的意义和合理的存放形式,可以使算法实现起来更加快速和高效,为了实现算法中输入样值x(n)和滤波器系数W(n)的对应项相乘,他们在存储器中的存放形式如图6所示。

低地址

高地址

图6 TMS320C54xx自适应滤波器存储器组织形式

根据算法和DSP汇编语言程序,在CCS环境下编译,连接生成公共目标代码文件,在线下载到DSP中运行。为了能观察到相应的波形,在CCS环境下选择View\Graph\Time \Freqency 进入图形观察窗口,在“Graph Property Dialog”窗口中选定相应类型的值。

将编译产生的可执行文件下载到DSP芯片中,经过运行得到图7为输入信号的时域图,由图可以看到,正弦信号中叠加了噪声,导致正弦信号出现了较大的畸变。通过对输入信号进行FFT变换,可以得到其频谱图如图8,由图8可以看出,低频的信号中

叠加了比较多的高频噪声,要得到比较好的原始低频正弦信号,必须要进行滤波。

图7 输入波形

图8 输入波形FFT

如图9所示,可以看出输入波形中的高频噪声基本上得到了滤除,为了更方便,更直接的看出滤波效果,对滤波后的波形进行了FFT变换,得出信号的频谱图如图10所示。图10的输出信号的频谱图中仅剩余了低频信号,滤除了高频成分。通过对比图8和图10,更清楚地看到高频区的噪声基本上被消除了。但是由于参数设置不够精确等原因造成高频噪声得不到完全消除,但也很明显的显现了低通滤波的目的。

图9 输出波形

图10 滤波后波形FFT

4 结论

通过仿真实验结果表明:自适应滤波器却能很好地消除叠加在信号上的噪声,虽然也可以用固定滤波器来实现,但设计固定滤波器时需要预先知道信号和噪声的统计特性,而自适应滤波器则不需要,并且当信号和噪声的统计特性发生变化时,自适应滤波器也能自动地调节其冲激响应特性来适应新的情况,因此,自适应滤波器具有更加广阔的应用前景[9]。

本课程设计的重点是自适应FIR滤波器的设计和DSP的实现。对线性自适应滤波器的算法作了大量调查和研究,详细比较了FIR结构滤波器和IIR结构滤波器,并结合硬件设计考虑,最终采用FIR横向结构滤波器。

自适应滤波技术的核心问题是自适应算法的性能问题,研究自适应算法是自适应滤波器的一个关键内容,算法的特性直接影响滤波器的效果。介绍了两种基本的自适应算法:最小均方(LMS)算法及递归最小二乘(RLS)算法,并就这两种基本算法的特点进行了比较,运用MATLAB对采用了LMS自适应算法的自适应滤波器进行了仿真,通过分析仿真结果,验证了算法的可行性。同时,在DSP上实现了对含噪信号的频率跟踪。在实际中,自适应滤波器的应用比较复杂,包括维纳滤波和卡尔曼滤波都是基于改变参数的滤波方法,修改参数的原则一般采用均方最小原则,修改参数的目的就是使得误差信号尽量接近于0。传统的滤波方法总是设计较精确的参数,尽量精确地对信号进行处理,传统滤波方法适用于稳定的信号,而自适应滤波器可以根据信号随时修改滤波参数,达到动态跟踪的效果。通过本课程设计加深了对DSP原理的理解,初步掌握了DSP 芯片的开发应用,为接下来的深入学习打下了坚实的基础。但是同时还有很多的问题还有待于进一步深入研究,我将在今后的学习工作中,要加强学习,不断进取。

致谢

感谢我的老师们,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。

感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

感谢我的同学和朋友,在我写论文的过程中给予我了很多学问素材,还在论文的撰写和排版的过程中提供热情的帮助。

最后要感谢我的父母,让我一直可以无忧的在大学校园学习。他们的教育方式让我比较独立,有一股不怕输的闯劲。

参考文献

[1] 西蒙赫金.自适应滤波器原理.北京:电子工业出版社,2003

[2] 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用(第2版)[M].北京:电子工业出版社, 2004

[3] 高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008

[4] 刘顺兰,吴杰.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2008

[5] 吴湘淇.信号系统与信号处理(上、下)[M].北京:电子工业出版社,2000

[6] 张志勇.精通[M].北京:北京航空航天大学出版社,2003

[7] 门爱东,杨波,全子一.数字信号处理[M].北京:人民邮电出版社, 2003

[8] 吴湘淇.信号与系统(第3版)[M].北京:电子工业出版社, 2009

[9] 吴湘淇,肖熙,郝晓莉.信号、系统与信号处理的软硬件实现[M].北京:电子工业出版社, 2002

相关主题
相关文档
最新文档