DSP大作业Word下载.docx
- 文档编号:13160716
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:16
- 大小:752.61KB
DSP大作业Word下载.docx
《DSP大作业Word下载.docx》由会员分享,可在线阅读,更多相关《DSP大作业Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
关键词:
自适应滤波器;
CCS;
DSP
目录
1 引言 1
2 自适应滤波器理论知识 1
2.1自适应滤波器结构 1
2.2数字滤波器部分 2
2.3自适应算法部分 2
3 在CCS中实现自适应滤波器算法 3
3.1工程建立 4
3.2算法设计与实现 6
3.3结果分析 8
4 结束语 12
5 参考文献 13
III
1引言
这学期通过框架式学习方法,深入学习了DSP课程,非常希望通过所学的知识来做一点东西。
思前想后决定在CCS软件中实现自适应滤波算法。
因为,在许多应用场和中,常常要处理一些无法预知的信号、噪声或时变信号,如果采用具有固定滤波系数的数字滤波器无法实现最优滤波。
在这种情况下,必须设计自适应滤波器,以使得滤波器的动态特性随着信号和噪声的变化而变化,以达到最优滤波效果。
自适应滤波是仅需对当前观察的数据作处理的滤波算法。
它能自动调节本身冲激响应的特性,或者说自动调节数字滤波器的系数,以适应信号变化的特性,从而达到最佳滤波。
由于自适应滤波不需要关于输入信号的先验知识,计算量小,特别适用于实时处理,近年来得到广泛应用,如用于脑电图和心电图测量、噪声抵消、扩频通信及数字电话等。
2自适应滤波器理论知识
2.1自适应滤波器结构
自适应滤波器主要由两部分组成:
系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。
图1 自适应滤波器原理框图
在图1中,自适应滤波器有两个输入端:
一个输入端的信号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),表示为式
(1)。
e(n)=z(n)-y(n)=s(n)+d(n)-y(n)
(1)
显然,自适应滤波器就是一个噪声抵消器。
如果得到对淹没信号的噪声的最佳估计,就能得到所要提取信号的最佳估计。
为了得到噪声的最佳估计y(n),可以经过适当的自适应算法来反馈调整数字滤波器的系数,使得e(n)中的噪声最小。
e(n)有两种作用:
一种是得到信号s(n)的最佳估计;
二是用于调整数字滤波器系数的误差信号。
2.2 数字滤波器部分
自适应滤波器的结构采用FIR横向滤波器结构,如图2所示。
图2 FIR横向滤波器结构
其中,为自适应滤波器的输入矢量是权系数矢量,即自适应滤波器的冲击响应;
y(n)为自适应滤波器的输出矢量。
T为矩阵转制符,n为时间序列,N为滤波器的阶数。
2.3自适应算法部分
算法思路为:
假设给出了和原始信号相关的参考信号d(n),那么首先对FIR滤波器的权任意设定一组初始值;
输入信号时x(n),然后根据滤波器的输出值y(n)与参考信号d(n)之间的误差e(n)对权值进行调节,使下一次的输出误差能有所减少;
这样重复下去,直到权收敛到最佳值。
如图3
图3自适应算法框图
输入信号矢量为:
加权矢量(即滤波器抽头系数矢量)为:
相应的滤波器的输出为:
y(n)相对于期望信号d(n)的误差为:
根据最小均方误差(MSE)准则,最佳的滤波器参量Wopt应使得性能函数—均方误差为最小。
于是可得:
。
其中,μ为收敛因子,控制收敛速度和稳定性。
显然,上面的LMS算法不需要事先已知信号的统计量,而使用它们的瞬时估计代替。
LMS算法获得的权重只是一个估计值,但随着调节权重,这些估计值逐渐提高,滤波器也越来越适应信号特性。
最终,权重值收敛。
收敛条件为:
0<
μ<
1/λmax其中,λmax是输入数据方差矩阵的最大特征值。
在实际应用中,w(n)不会达到理论的最优点(维纳解),但会在其周围波动。
自适应步长μ是表征迭代快慢的物理量,μ越大,自适应时间越短,自适应过程越快,但引起的失调也越大,当μ大于1/λmax时,系统发散;
μ越小,系统越稳定,失调越小,但自适应过程也相应加长。
3在CCS中实现自适应滤波器算法
设计的自适应滤波器,采用16阶FIR滤波器,采用相同的信号作为参考信号d(n)和输入信号x(n),并采用上一时刻的误差值来修正本时刻的滤波器系数,2μ取值0.0005或0.0003,对滤波器输出除128进行幅度限制。
3.1工程建立
1首先双击,打开CCS5.5,然后选择workspace,如图4,
图4
2创建工程将工程名设置为”FIRLMS”,如图5,图6所示,
图5
图6
3将CCS设置位软件仿真如图7
图7
4在工程里添加.cmd文件,源文件,头文件,库文件,配置文件。
并编写主函数FIRLMS.C文件,然后添加在工程中,如图8,
图8
3.2算法设计与实现
1在主函数中编写自适应滤波算法,算法的思想如下:
更新滤波器系数,其中N为滤波器的阶数。
2FIRLMS.C文件中的主函数内容如下:
#include"
DSP2833x_Device.h"
//DSP2833xHeaderfileIncludeFile
DSP2833x_Examples.h"
//DSP2833xExamplesIncludeFile
f28335a.h"
#include"
math.h"
#definePI3.1415926
#defineCOEFFNUMBER16//阶数
#defineINPUTNUMBER1024//采样点数
intFIRLMS(int*nx,float*nh,intnError,intnCoeffNumber);
floath[COEFFNUMBER];
//FIR横向滤波器的权系数
floatfU;
//fU/2是自适应步长
intxx[INPUTNUMBER];
//采用相同的信号作为参考信号和输入信号
intrr[INPUTNUMBER];
//自适应滤波电路的输出信号
intwc[INPUTNUMBER];
//输出信号与参考信号的之间的误差信号。
main()
{
inti,nLastOutput;
nLastOutput=0;
fU=0.0003;
//自适应步长是0.00015
//fU=0.0005;
//自适应步长是0.00025
//fU=0.0008;
//自适应步长是0.0004
for(i=0;
i<
COEFFNUMBER;
i++) h[i]=0;
//权系数初始化为0
INPUTNUMBER;
i++)
{
xx[i]=256*sin(i*2*PI/34);
//对正弦波进行采样
rr[i]=wc[i]=0;
//初始化为0
}
for(i=COEFFNUMBER+1;
nLastOutput=FIRLMS(xx+i,h,nLastOutput-xx[i-1],COEFFNUMBER);
//breakpoint
rr[i]=nLastOutput;
wc[i]=rr[i]-xx[i];
exit(0);
}
//nx输入信号;
nh冲激响应;
error误差;
ncorenumber数据缓冲区长度
intFIRLMS(int*nx,float*nh,intnError,intnCoeffNumber)
inti,r;
floatfWork;
r=0;
nCoeffNumber;
fWork=nx[i]*nError*fU;
nh[i]+=fWork;
r+=(nx[i-i]*nh[i]);
r/=128;
returnr;
3.3结果分析
运行程序:
点击Dubug,,之后,在调试窗口中进行下面步骤:
步骤1:
新建一个SingleTime0,(输入波形)如图9
图9
步骤2:
再建一个SingleTime1(输出信号),如图10
图10
步骤3:
建第三个SingleTime2(误差信号),如图11
图11
步骤4:
运行程序并观察波形
输入波形:
情况一,当自适应步长fU=0.00025时:
输出波形:
误差幅度:
情况二,当自适应步长fU=0.00015时:
输出信号是:
情况三,当自适应步长fU=0.0004时:
由仿真结果可以看出:
1)输出波形SingleTime1在自适应滤波器的调整中逐渐与输入波形SingleTime0相重合,误差SingleTime2逐渐减小到0值附近。
2)自适应步长μ对系统的自适应时间和系统的失调有影响。
μ越大,自适应时间越短,自适应过程越快,但引起的失调也越大;
μ越小,系统越稳定,失调越小,但自适应过程也相应加长。
在实验中当μ≥0.0004时系统发散。
因此自适应步长μ的选择应从整个系统的要求出发,在满足精度的前提下,尽量减少自适应时间,并且在满足系统性能要求的前提下,尽量减少滤波器的阶数。
在本实验中μ=0.00015,μ=0.00025均能满足系统性能指标,但是当μ=0.00025时系统引起的失调比μ=0.00015较大。
综合考虑以上两个因素,本次试验自适应滤波器步长的选取为μ=0.00015较合适。
4结束语
通过一个学期的学习,对于DSP原理及应用这门课有了更深刻的理解。
DSP是一门软件与硬件紧密结合的课程。
如果要学好DSP,我们不仅需要掌握DSP芯片的内部结构,存储空间分配,时钟系统,存储器与通用I/0口,中断与复位,片内外设模块;
同时也需要熟练软件开发环境,汇编指令,伪/宏指令,目标文件链接,算法编程等。
在这次大作业中,我将大部分时间花费到CCS5.5软件的使用和自适应滤波器算法的编程中。
首先我查阅关于自适应滤波算法的文献,弄清楚该算法的数学思想,同时寻找采用C语言编写该算法的思路。
有了思路之后,就开始建立工程,然后在主函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 作业