当前位置:文档之家› 毕业设计基于dsp芯片的自适应滤波器实现课程设计

毕业设计基于dsp芯片的自适应滤波器实现课程设计

毕业设计基于dsp芯片的自适应滤波器实现课程设计
毕业设计基于dsp芯片的自适应滤波器实现课程设计

课程设计

题 目:

基于DSP 芯片的自适应滤

波器实现

班 级: 姓 名: 学 号: 指导教师: 成 绩:

摘 要:

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

电子与信息工程学院 信息与通信工程系

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

本文从自适应滤波器研究的意义入手,介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法。最后用DSP实现了自适应滤波器。实验结果表明,该自适应滤波器滤波效果优越。

关键词:DSP、自适应滤波器

目录

1 课程设计的目的和要求 (4)

2 主要内容和步骤 (4)

3 详细设计过程 (7)

3.1 LMS自适应算法 (7)

3.2 FIR 滤波器设计 (7)

3.3 自适应滤波器DSP设计实现 (8)

4 实验过程 (11)

4.1 CCS程序运行后的各种输出结果 (11)

4.2 DSP实现结果 (13)

5 结论与体会 (14)

1 课程设计的目的和要求

对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。Windrow等于1967年提出的自适应滤波系统的参数能自动的调整而达到最优状况,而且在设计时,只需要很少的或根本不需要任何关于信号与噪声的先验统计知识。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。自适应滤波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(LMS)算法、递归最小二乘(RLS)算法及相应的改进算法如:归一化(NLMS)算法、变步长(SVSLMS)算法、递归最小二乘方格形(RLSL)算法等。这些算法各有特点,适用于不同的场合。比如用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域。自适应滤波,对发展通信业务有着不可或缺的作用。所以是我们通信专业学习的重点。也是巩固《数字信号处理》知识的一个重要的实验。

2 主要内容和步骤

自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。

下图为自适应滤波器原理框图:

图中,自适应滤波器有两个输入端:一个输入端的信号Z (n )含有所要提取的信号s(n),被淹没在噪声 d(n)中,s(n).d(n)两者不相关,z(n)=s(n)+d(n)。另一输入端信号为x(n),它是z(n)的一种度量,并以某种方式与噪声d(n)有关。x(n)被数字滤波器所处理得到噪声d(n)的估计值y(n),这样就可以从z(n)中减去y(n),得到所要提取的信号s(n)的估计值e(n),表示为:e(n)=z(n)-y(n)=s(n)+d(n)-y(n)。

显然,自适应滤波器就是一个噪声抵消器。如果得到对淹没信号的噪声的最佳估计,就能得到所要提取的信号的最佳估计。为了得到噪声的最佳估计y(n),可以经过适当的自适应算法,例如用LMS (最小均方)算法来反馈调整数字滤波器的系数,使得e(n)中的噪声最小。e(n)有两种作用:一是得到信号s(n)的最佳估计;二是用于调整滤波器系数的误差信号。

自适应滤波器中,数字滤波器的滤波系数是可调的,多数采用FIR 型数字滤波器,设其单位脉冲响应为h(0), h(1), …,h(N-1),你们它在时刻n 的输出便可写成如下的卷积形式 y(n)= ∑h(k)x(n-k)

(2-1)

F(N)

为方便起见,上式中的各h(k)亦被称为权值。根据要求,输出y(n)

和目标号d(n)之间

应满足最小均方误差条件,即

E[e2(n)]=E{[d(n)-y(n)]2}

(2-2)

有最小值,其中e(n)表示误差。令

аE[e2(n)]/ аh(k)=0 (2-3)

并把式(2—2)代入,便得正交条件:E[e(n)x(n-k)]=0 , 0≤k≤N-1

(2-4)

如果令

h=h T(0,1,2,...,N-1),x(n)=x T(n,n-1,...,n-N-1)

那么式(2-1)便可被写成

y(n)=x T(n)h=h T x(n)

(2-5)

而由式(2-4)给出的正交条件则变为:E{[d(n)-y(n)]x(n)}=0

把式(2-5)代入上式后,有

E[d(n)x(n)]= E[x(n)x T(n)]h (2-6)

= E[x(n)x T(n)],那么最佳权向量

如果令:r=E[d(n)x(n)],Ф

xx

-1r

h*=Ф

xx

(2-7)

3 详细设计过程

3.1 LMS 自适应算法

自适应算法是根据某种判断来设计的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。LMS 算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。LMS 算法的目标是通过调整系数,使输出误差序列()()()n y n d n e -=的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(Mean Sqluare Error ,MSE)。理想信号 ()n d 与滤波器输出()n y 之差()n e 的期望值最小,并且根据这个判据来修改权系数()n w i 。由此产生的算法称为LMS 。

3.2 FIR 滤波器设计

设h(n),n=0,i .2…N-l 为滤波器的冲激响应,输人信号为x(n),则FIR 滤波器就是要实现下列差分方程:

∑-=-=1

0)

()()(N t i n x i h n y

(3-1)

式中,y(n)为输出信号,即经过滤波之后的信号;N 为滤波器阶数。FIR 滤波器的最主要特点是没有反馈回路,因此是无条件稳定系统,其单位脉冲响应h(n)是一个有限长序列。由式(1)可见,FIR 滤波算法实际上是一种乘法累加运算。不断地输入样本x(n),经延时(z -1)做乘法累加,

再输出滤波结果Y(n)对式(1)进行z 变换.整理后可得FIR 滤波器的传递函数为:

∑-=-=1

01

)()(N t z i h z H 。

(3-2)

FIR 滤波器的一般结构如图3-4所示。

图3-4 横向型滤波器的结构示意图

(0w 其中,X(n )=[x(n),x(n-1),…,x(n-N+1)] 为自适应滤波器的输入矢量;W( n)=[w0(1 ),w1 (n ), …,wn-1(n )]T 为系统的权系数矢量;为时间序列;N 为滤波器的阶数;T 为矩转置符。由表达式可以看出 输出是两矢量的内积。

3.3 自适应滤波器DSP 设计实现

实验中采用的自适应滤波器采用16阶FIR 滤波器,采用相同的信号作为参考d(n)和输入信号x(n),并采用上一时刻的误差值来修正本时刻的滤波器系数,2μ取值0.0005,对滤波器输出除128进行幅度限制。实验

程序设计的整个实现过程主要分为3个步:

(1)滤波运算前的相关运算单元、寄存器以及变量的初始化; 原始信号xx[i]=256*sin(i*2*PI/34);

(2)根据输入的采样值计算滤波器的输出并求出误差;

这一步是最重要的滤波计算,我们用FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber) 这个函数来实现。其完整代码是 int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber) { int i,r; float fWork; r=0;

for ( i=0;i

nh[i]+=fWork;

r+=(nx[i-i]*nh[i]);

}

r/=128;

return r;

}

收敛因子fU=0.0005。nError是上一次的误差值, fWork是当前的滤波器权系数,输出值r。

这里实现自适应算法中∑-

=-

=

1

)(

*)1

(

)

(

N

i

i

w n

x

n

y的公式。输出值y(n)等于输入值x(n-1)*w(i)的积分。???

(3)根据LMS算法的迭代公式更新滤波器参数,有新的采样输入后转到第二步循环执行。

把一信号进行采样。把采样点放在数字中。这里用到了输入信号数组xx[],输出信号数组rr[],误差数组wc[],以及滤波器权系数h[]。通过for循环语句进行一个一个样点值滤波计算。得到想要的结果。

for ( i=COEFFNUMBER+1;i

{

nLastOutput=FIRLMS(xx+i,h,nLastOutput-xx[i-1],COEFFNUMBER);

rr[i]=nLastOutput;

wc[i]=rr[i]-xx[i];

}

用FIRLMS函数得到了一个滤波后的样点信号值nLastOutput 存放在输出信号数组rr[]中。for循环一个一个得到滤波过的信号值第INPUTNUMBER=1024个为止。

4 实验过程

4.1 CCS程序运行后的各种输出结果

1.实验准备

-启动软件仿真模式

-启动CCS

2.打开工程

3.编译并下载程序

4.点击运行按钮

5.打开观察窗口(view->Graph->Property....)设置如下

图4-1 设置输入信号XX

图 4-2 设置输出信号rr

图4-3 设置误差wc

7.观察结果

8.退出CCS

4.2 DSP实现结果

观察得结果的波形如下:

图4-4 输出信号原始波形

图4-5 滤波后输出信号的波形

图4-6自适应误差e(n)波形

5 结论与体会

本课程设计的重点是自适应FIR滤波器的设计和DSP的实现。通过本课程设计加深了对DSP原理的理解,初步掌握了DSP 芯片的开发应用,为接下来的深入学习打下了坚实的基础。但是同时还有很多的问题还有待于进一步深入研究,我将在今后的学习工作中,要加强学习,不断进取。

参考文献

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

[2] 万建伟,王玲.信号处理仿真技术[M].长沙:国防科技大学出版社,2008

[3] John G. Proakis,Dimitris G.Manolakis.数字信号处理[M].方艳梅,刘永清译.北京:电子工业出版社,2007

[4] Sanjit K Mitra.数字信号处理实验指导书[M].孙洪等译.北京:电子工业出版社,2006

相关主题
文本预览
相关文档 最新文档