收藏 分享(赏)

基于dsp芯片的自适应滤波器实现_课程设计.doc

上传人:无敌 文档编号:631612 上传时间:2018-04-15 格式:DOC 页数:22 大小:136KB
下载 相关 举报
基于dsp芯片的自适应滤波器实现_课程设计.doc_第1页
第1页 / 共22页
基于dsp芯片的自适应滤波器实现_课程设计.doc_第2页
第2页 / 共22页
基于dsp芯片的自适应滤波器实现_课程设计.doc_第3页
第3页 / 共22页
基于dsp芯片的自适应滤波器实现_课程设计.doc_第4页
第4页 / 共22页
基于dsp芯片的自适应滤波器实现_课程设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、课程设计题 目: 基于 DSP 芯片的自适应滤波器实现班 级: 姓 名: 学 号: 指导教师: 成 绩: 摘 要:自适应滤波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我DSP 芯片原理与应用课程设计报告电子与信息工程学院信息与通信工程系们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。本文从自适应滤波

2、器研究的意义入手,介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法。最后用 DSP 实现了自适应滤波器。实验结果表明,该自适应滤波器滤波效果优越。关键词:DSP、自适应滤波器目录1 课程设计的目的和要求 .12 主要内容和步骤 .13 详细设计过程 .33.1 LMS 自适应算法 .33.2 FIR 滤波器设计 .33.3 自适应滤波器 DSP 设计实现 .44 实验过程 .64.1 CCS 程序运行后的各种输出结果 .64.2 DSP 实现结果 .75 结论与体会 .91 课程设计的目的和要求对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一

3、。Windrow 等于 1967 年提出的自适应滤波系统的参数能自动的调整而达到最优状况,而且在设计时,只需要很少的或根本不需要任何关于信号与噪声的先验统计知识。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。自适应滤波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(LMS)算法、递归最小二乘(RLS)算法及相应的改进算法如:归一化(NLMS)算法、变步长(SVSLMS)算法、递归最小二乘方格形(RLSL)算法

4、等。这些算法各有特点,适用于不同的场合。比如用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域。自适应滤波,对发展通信业务有着不可或缺的作用。所以是我们通信专业学习的重点。也是巩固数字信号处理知识的一个重要的实验。2 主要内容和步骤自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。下图为自适应滤波器原理框图:数字滤波器 FIRY(N)X(N)自适应算法LMS F(N)E(N)图中,自适应滤波器有两个输入端:一个输入端的信号 Z(n)含有所要提取的信号 s(n),被淹没在噪声 d(n)中,s(n).d(n)两者不相

5、关,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(

6、n)有两种作用:一是得到信号 s(n)的最佳估计;二是用于调整滤波器系数的误差信号。自适应滤波器中,数字滤波器的滤波系数是可调的,多数采用 FIR型数字滤波器,设其单位脉冲响应为 h(0), h(1), ,h(N-1),你们它在时刻 n 的输出便可写成如下的卷积形式y(n)= h(k)x(n-k) (2-1)为方便起见,上式中的各 h(k)亦被称为权值。根据要求,输出 y(n)和目标号 d(n)之间应满足最小均方误差条件,即 Ee2(n)=Ed(n)-y(n) 2 (2-2)有最小值,其中 e(n)表示误差。令Ee 2(n)/ h(k)=0 (2-3)并把式(22)代入,便得正交条件:Ee(n

7、)x(n-k)=0 , 0kN-1 (2-4)如果令h=hT(0,1,2,.,N-1),x(n)=xT(n,n-1,.,n-N-1)那么式(2-1)便可被写成y(n)=xT(n)h=hTx(n) (2-5)而由式(2-4)给出的正交条件则变为:Ed(n)-y(n)x(n)=0把式(2-5)代入上式后,有Ed(n)x(n)= Ex(n)xT(n)h (2-6)如果令:r=Ed(n)x(n), xx= Ex(n)xT(n),那么最佳权向量h*= xx -1r (2-7)3 详细设计过程3.1 LMS 自适应算法自适应算法是根据某种判断来设计的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。

8、LMS 算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。LMS 算法的目标是通过调整系数,使输出误差序列 的均方值最小化,并且根据这nydne个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(Mean Sqluare Error,MSE)。理想信号 与滤波器输出nd之差 的期望值最小,并且根据这个判据来修改权系数 。由nye wi此产生的算法称为 LMS。3.2 FIR 滤波器设计 设 h(n),n=0,i2N-l 为滤波器的冲激响应,输人信号为 x(n),则 FIR 滤波器就是要实现下列差分方程:10)()(Ntinxhny(3-1) 式中,y(n)

9、为输出信号,即经过滤波之后的信号;N 为滤波器阶数。FIR 滤波器的最主要特点是没有反馈回路,因此是无条件稳定系统,其单位脉冲响应 h(n)是一个有限长序列。由式(1)可见,FIR 滤波算法实际上是一种乘法累加运算。不断地输入样本 x(n),经延时(z -1)做乘法累加,再输出滤波结果 Y(n)对式(1)进行 z 变换整理后可得 FIR 滤波器的传递函数为:。 10)()(NtzihzH(3-2) FIR 滤波器的一般结构如图 3-4 所示。 自 适 应 算 法x(n) x(n-1) x(n-2) x(n-N-1)b(0) b(1) b(2)+ + + + y(n)w(n) b(n-1)图 3

10、-4 横 向 型 滤 波 器 的 结 构 示 意 图1z 1z1znwnnw其中,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 进行幅度限制。实验流程

11、图如下:开始初始化并产生输出波形调用 LMS 算法计算输出结束LMS 算法返回根据上次误差调整参数滤波用当前 FIR 滤波参数滤波程序设计的整个实现过程主要分为 3 个步:(1)滤波运算前的相关运算单元、寄存器以及变量的初始化;原始信号 xxi=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 nCo

12、effNumber)int i,r;float fWork;r=0;for ( i=0;inCoeffNumber;i+ )fWork=nxi*nError*fU;nhi+=fWork;r+=(nxi-i*nhi);r/=128;return r;收敛因子 fU=0.0005。nError 是上一次的误差值, fWork 是当前的滤波器权系数,输出值 r。这里实现自适应算法中 的公式。输出值 y(n)等10)(*()(Ni iwnxy于输入值 x(n-1)*w(i)的积分。 (3)根据 LMS 算法的迭代公式更新滤波器参数,有新的采样输入后转到第二步循环执行。把一信号进行采样。把采样点放在数字中。这里用到了输入信号数组xx,输出信号数组 rr,误差数组 wc,以及滤波器权系数 h。通过for 循环语句进行一个一个样点值滤波计算。得到想要的结果。for ( i=COEFFNUMBER+1;iINPUTNUMBER;i+ )nLastOutput=FIRLMS(xx+i,h,nLastOutput-xxi-1,COEFFNUMBER);rri=nLastOutput;wci=rri-xxi;用 FIRLMS 函数得到了一个滤波后的样点信号值 nLastOutput 存放在输出信号数组 rr中。for 循环一个一个得到滤波过的信号值第INPUTNUMBER=1024 个为止。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报