一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【优化算法】改进定步长与变步长LMS算法【含Matlab源码 629期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、LMS简介

最小均方(LMS, Least Mean Squares)是最基本的自适应滤波算法。
LMS算法是自适应滤波器中常用的一种算法与维纳算法不同的是其系统的系数随输入序列而改变。维纳算法中截取输入序列自相关函数的一段构造系统的最佳系数。而LMS算法则是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。因此理论上讲LMS算法的性能在同等条件下要优于维纳。但是LMS是在初始值下逐步调整的,因此在系统稳定前,会有一段调整时间,调整时间受步长因子的控制,一定范围内,步长因子越大,调整时间越小,步长因子的最大取值为R的迹。LMS采用平方误差最小的原则代替均方误差最小的原则,信号基本关系如下:

三、部分源代码

clear all
clc
t=0:1/1000:100-1/1000;
s=15*sin(0.15*pi*t);
snr=10;
s_power=var(s);              %var函数: 返回方差值
linear_snr=10^(snr/10);
factor=sqrt(s_power/linear_snr);
noise=randn(1,length(s))*factor;
%noise=wgn(1,length(s),factor);
x=s+noise;                   %由SNR计算随机噪声
x1=noise;                    %噪声源输入
x2=noise;
%x3=noise;
w1=0;                       %权系数初值
w2=0;
%w3=0;
e=zeros(1,length(x));
error=zeros(1,length(x));
y=0;
%mu=0;
mu=0.000009;
for i=1:100000                 %定步长LMS算法y=w1*x1(i)+w2*x2(i);%+w3*x3(i);e(i)=x(i)-y;error(i)=s(i)-e(i);%   ee=error^2;%   mu=xuanze(mu,ee);w1=w1+mu*e(i)*x1(i);w2=w2+mu*e(i)*x2(i);%  w3=w3+mu*e(i)*x3(i);
end
figure(1)
subplot(4,1,1)
plot(t,s);
title('纯正弦信号')
subplot(4,1,2)
plot(t,x);
title('带噪声正弦信号')
axis([0 100 -30 30]);
subplot(4,1,3)
plot(t,noise);
title('噪声信号')
axis([0 100 -30 30]);
subplot(4,1,4)
plot(t,e);
title('定步长LMS算法自适应噪声对消器')
axis([0 100 -30 30]);
wu=error;
figure(2)
subplot(3,1,1);
plot(wu);
title('定步长LMS算法收敛过程')%自适应噪声对消器
clear all
clc
t=0:1/1000:100-1/1000;
s=15*sin(0.15*pi*t);
snr=10;
s_power=var(s);              %var函数: 返回方差值
linear_snr=10^(snr/10);
factor=sqrt(s_power/linear_snr);
noise=randn(1,length(s))*factor;
x=s+noise;                   %由SNR计算随机噪声
x1=noise;                    %噪声源输入
x2=noise;
w1=0;                       %权系数初值
w2=0;
e=zeros(1,length(x));
error=zeros(1,length(x));
y=0;
mu=0;
%mu=0.05;
for i=1:100000                 %变步长LMS算法y=w1*x1(i)+w2*x2(i);e(i)=x(i)-y;error(i)=s(i)-e(i);ee=error(i)^2;if ee>0.0005;ee=0.0005;endmu=xuanze(mu,ee);w1=w1+mu*e(i)*x1(i);w2=w2+mu*e(i)*x2(i);
end
figure(3)
subplot(4,1,1)
plot(t,s);
title('纯正弦信号')
subplot(4,1,2)
plot(t,x);
title('带噪声正弦信号')
axis([0 100 -30 30]);
subplot(4,1,3)
plot(t,noise);
title('噪声信号')
axis([0 100 -30 30]);
subplot(4,1,4)
plot(t,e);
title('变步长LMS算法自适应噪声对消器')
axis([0 100 -30 30]);
wu=error;
figure(2)
subplot(3,1,2);
plot(wu);
title('变步长LMS算法收敛过程')%自适应噪声对消器
clear all
clc
t=0:1/1000:100-1/1000;
s=15*sin(0.15*pi*t);
snr=10;
s_power=var(s);              %var函数: 返回方差值
linear_snr=10^(snr/10);
factor=sqrt(s_power/linear_snr);
noise=randn(1,length(s))*factor;
x=s+noise;                   %由SNR计算随机噪声
x1=noise;                    %噪声源输入
x2=noise;
w1=0;                       %权系数初值
w2=0;
e=zeros(1,length(x));
error=zeros(1,length(x));
y=0;
mu=0;
%mu=0.05;
for i=1:100000                 %改进变步长LMS算法y=w1*x1(i)+w2*x2(i);e(i)=x(i)-y;ee=exp(abs(error(i))^3)-1;%  ee=error^4; end    mu=xuanze(mu,ee);w1=w1+mu*e(i)*x1(i);w2=w2+mu*e(i)*x2(i);
end
figure(4)
subplot(4,1,1)
plot(t,s);
title('纯正弦信号')
subplot(4,1,2)
plot(t,x);
title('带噪声正弦信号')
axis([0 100 -30 30]);
subplot(4,1,3)
plot(t,noise);
title('噪声信号')
axis([0 100 -30 30]);
subplot(4,1,4)
plot(t,e);
title('改进变步长LMS算法自适应噪声对消器')
axis([0 100 -30 30]);

四、运行结果




五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

【优化算法】改进定步长与变步长LMS算法【含Matlab源码 629期】相关推荐

  1. 【优化布局】基于matlab免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  2. 【微电网优化】基于matlab粒子群算法求解综合能源系统优化问题【含Matlab源码 1969期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[微电网优化]基于matlab粒子群算法求解综合能源系统优化问题[含Matlab源码 1969期] 点击上面蓝色字体,直接付费下载,即可. ...

  3. 【数字信号去噪】基于matlab粒子群算法优化VMD分解分量选择数字信号降噪【含Matlab源码 1979期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号去噪]基于matlab粒子群算法优化VMD分解分量选择数字信号降噪[含Matlab源码 1979期] 点击上面蓝色字体,直接付费 ...

  4. 【优化布局】免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  5. 【雷达通信】基于matlab NCP算法SAR回波生成和成像【含Matlab源码 1185期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达通信]基于matlab NCP算法SAR回波生成和成像[含Matlab源码 1185期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  6. 【BA三维路径规划】基于matlab改进的蝙蝠算法农用无人机三维路径规划【含Matlab源码 1514期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

  7. 【图像分割】基于matlab形态学重建和过滤改进FCM算法(FRFCM)的图像分割【含Matlab源码 085期】

    ⛄一.简介 首先,通过引入形态学重构操作将图像的局部空间信息纳入FRFCM中,以保证抗噪性和图像细节保留.其次,基于局部空间邻居和聚类中心内像素之间距离的成员资格分区的修改被仅依赖于成员资格分区的空间 ...

  8. 【配送路径规划】蚁群算法求解配送路径最短问题【含Matlab源码 2222期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  9. 【配送路径规划】基于matlab蚁群算法求解配送路径最短问题【含Matlab源码 2222期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  10. 【ABC三维路径规划】基于matlab人工蜂群算法多无人机三维路径规划【含Matlab源码 170期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

最新文章

  1. freebsd php mysql_FreeBSD下Mysql5+Apache2+PHP5的安装
  2. Apache Ignite本机持久性,简要概述
  3. scikit-learn决策树算法类库使用小结
  4. 腾讯IVWEB前端工程化工具feflow思考与实践
  5. oracle一体机flash卡,PCIe Flash卡设备的测试
  6. 使用VMware虚拟磁盘管理工具调整磁盘大小
  7. c语言 静态断言,C断言/静态断言
  8. php 说说,PHP程序员:你过来,给我说说 $this,self,static 有什么区别?
  9. 云原生是一个时代下践行者们的故事
  10. Typescript入门教程(B站黑马程序员)
  11. select2 使用详解
  12. 神经网络模型怎么建立,如何选择神经网络模型
  13. C++ 自定义函数(全)
  14. LiteIDE的sublime黑色 淡绿色 配色文件自定义版本
  15. markdown 入门 - 这样就够用了
  16. 文儿结婚生子再被提起!利、文两家互喷,老利回怼:豆豆妈好!文儿暴怒:阴损至极!小洲专场欠礼之人!利、曼等人名利其中!
  17. 硬件microbit基础
  18. 基于可穿戴传感器和深度卷积神经网络运动状态进行下半身监控算法
  19. 找工作再也不愁之面试技巧全覆盖-这样面试保证拿Offer
  20. BIGEMAP离线数据包网盘下载地址:中国高清地图数据,中国高清谷歌数据 密码:1111

热门文章

  1. 【刷题】BZOJ 1003 [ZJOI2006]物流运输
  2. Intersecting Lines - POJ 1269(判断平面上两条直线的关系)
  3. Android 属性动画实现一个简单的PopupWindow
  4. 谷歌升级云数据库:更多的储存及更快的读取
  5. win7玩游戏窄屏变宽频的方法
  6. ubuntu 程序卡主解决方案
  7. 190524每日一句
  8. Atitit 高性能架构之道 attilax著 艾龙 著 1. 应用服务与数据隔离 2 2. 负载均衡你问题 2 2.1. 用户的请求由谁来转发到到具体的应用服务器 2 2.2. 有什么转发的算法
  9. Atitit mysql存储过程编写指南
  10. Atitit usrQBM1603短信验证码规范