- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自适应信号处理论文-基于MATLAB的自适应滤波算法研究
自适应信号处理论文
基于MATLAB的自适应滤波算法研究
摘要:自适应滤波算法是自适应滤波器设计的核心部分,本文主要介绍了两种算法: LMS算法和DCT变换。LMS算法是时域变换,DCT是频域变换,文章采用 MATLAB相关函数实现了对信号变换的仿真,并对这两种算法进行了一定的对比。
关键词:Matlab,LMS算法,DCT变换
1、引言
LMS算法是自适应滤波算法中最基本的算法,它包含了自适应滤波的许多基本的概念,是其它许多算法的基础,是实际中使用的最广泛的一种算法。LMS算法是在最陡下降法的基础上导出的,可以说LMS算法是最陡下降法的随机实现。表1详细地给出LMS算法,其中x(n)为n时刻滤波器的输入信号,w(n)为n时刻的滤波器系数,y(n)为滤波器的输出信号,d(n)为滤波器的期望信号,e(n)为滤波器的估计误差,u为更新步长。
表 1 LMS算法
滤波(Filtering):
误差估计(Error estimation):
权值更新(Tap-weight update): 为了保证最陡下降法收敛,步长的取值决定于特征值最大的那个收敛模式。
其中为特征值中的最大值。这必然导致其它收敛模式的收敛速度下降,输入信号自相关矩阵R的特征值分散度在很大程度上影响了算法的收敛性能。
针对LMS算法存在特征值分散度的问题,我们可以采用牛顿法来进行克服,牛顿法使得滤波器各系数(各收敛模式)的收敛速度一致,与特征值分布无关,从根本上消除了最陡梯度下降法受特征值分布影响的缺陷。牛顿方法其实就是KL变换域的最陡下降法,由于KL变换是最理想的正交变换,它依赖于自相关矩阵R特征矢量,统计特性不同的输入信号有不同的KL变换,所以很难在实际中使用。
因此我们可以用常用的变换来替代KL变换,这样就得到了TDAF算法。TDAF就是变换域中的LMS算法,所以也称为TDLMS算法。详细算法如下所示。
表 2 TDLMS算法
变换(Transformation):
滤波(Filtering):
误差估计(Error estimation):
功率估计(Power estimation):
权值更新(Tap-weight update):
TDAF中的常用变换主要有 离散傅立叶变换(DFT)、实数离散傅立叶变换(RDFT)、离散哈特利变换(DHT)、离散余弦变换(DCT)和离散正弦变换(DST)。
在这里主要研究DCT变换,DCT变换是一种性能接近于最佳正交变换KL变换的频域变换,由于其相比离散余弦变换很多有快速算法,便于实现,所以经常被信号处理和图像处理使用,用于对信号和图像进行有损数据压缩。
2、DCT变换
离散余弦变换(Discrete Cosine Transform ,简称DCT )变换是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。该变换有八种表达形式,其中主要的四种变换形式如下图(1) 所示。
图(1) 四种DCT变换形式
DCT-I :
DCT-II :
DCT-III:
DCT-IV:
本文采用其中第二种来进行讨论。
一维N点离散余弦变换(DCT)可表示为:
其中,xn是输入时域序列中的第n项,yk是输出频域序列的第k项,系数Ck定义如下:
一维N点离散余弦逆变换(IDCT)可以表示为:
3、MATLAB仿真实验
3.1 DCT变换对语音信号的压缩
DCT 变换的MATLAB实现方法,基于FFT 的快速算法,这是通过 MATLAB 工具箱提供的 dct 和 idct 函数实现的,仿真结果如下
程序:
t=0:1/1000:0.2;x=sawtooth(2*pi*45*t);
subplot(4,1,1);plot(t,x);title(原始信号);
y=dct(x); %DCT 变换输出
subplot(4,1,2); plot(y);title(DCT输出信号);
y1=y.*(abs(y)0.5); %将 DCT 结果中绝对值小于 0.5 的令为 0,相当于压%缩了数据率
subplot(4,1,3);plot(y1);title(DCT 压缩后的信号);
z=idct(y1); %DCT 反变换
subplot(4,1,4);plot(t,z);title(恢复的信号);
仿真结果图:
可以看出,当波形数据做DCT 变换后压缩到原数据的 12.94%左右时 ,根据压缩信号重建的时域波形存在失真,但在工程上这样的失真是允许的。在一定失真度指
原创力文档


文档评论(0)