自适应滤波及其Python实现

由于原博客在word里编辑,插入了很多Mathtype公式,而CSDN不支持Mathtype,转换格式出现了很多麻烦和排版混乱,故此博客部分采用截图展示。

原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序及结果

Python
程序:
(1)LMS算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)求MSE
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述
在这里插入图片描述

分析

图1.1上图是滤波器输入信号,即滤波前含噪声的接收信号x(n)波形,从图中我们可以看出,输入信号中的噪声引起波形的随机性,对于有效信号s(n)的原波形造成了不同程度的波动,要想近乎完美的得到s(n)信号,必须进行滤波,而又因为噪声的随机性,仅靠一个固定参数的滤波器是不行的,需要能够利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而才能实现最优滤波。
图1.1下图中蓝色是期望输出信号s(n),红色是滤波实际输出信号s(n)估计。程序中我取了序列长度为256点,然后训练次数为128次,结果如图所示。对比两个波形,以及与上面的滤波前信号相比较,可以发现,滤波效果几乎和期望结果相一致。前一部分的滤波输出波形有一定偏差,分析是因为取信号向量时,由于程序设定信号序列长度为N,范围是从0-N-1,故信号向量中,x(n-i)项中索引小于0的部分便默认为0,故实际输出序列前一部分,由于n值较小,导致信号向量中的有效数据较少,其他都设置为0,但这并不影响整体的滤波效果。
图1.2中,画出了输出与期望均方误差随着迭代次数变化的曲线。程序中设定序列长度为64,然后分别探究迭代1-60次时的输出与期望的误差,每种迭代次数重复进行200次,对每一次的误差进行平方求和再求平均得到该迭代次数的均方误差,画出图像。由图像可知,随着迭代次数的增加,均方误差逐渐收敛于0,符合该算法的收敛性要求。
下载链接:
自适应滤波算法及均方误差随迭代次数的变化

  • 6
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值