【优化算法】改进型的LMS算法-SVSLMS算法【含Matlab源码 632期】

一、简介

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

二、源代码

%%------------------- 定义变量:----------------------%%
% N - # of elements in array                                  %
% d - 阵元间距                          %
% ang - theta in deg                                          %
% thetaS - 期望用户波达角                             %
% thetaI - 干扰波达角                              %
% T - 期望信号的周期                               %
% t - 期望信号的时间轴                            %
% S - 期望信号                                        %
% I - 干扰信号                                    %
% vS,vI - 期望用户和干扰用户的转移矢量   %
% X - 总阵列因子                                     %
% Rxx - 总接收信号相关矩阵             %
% mu - 收敛参数                                  %
% w - 用LMS算法确定的均匀线阵权值          %
% x - 总接收信号                                   %
% y - 阵列输出                                            %
% e - 阵列输出和期望信号的误差           %
% theta - range of AOA's (rad)                                %
% AF - 加权阵列输出                                  %
%%-----------------------------------------------------------%%

%%----- 赋值-----%%

N = 8; d =0.5; 

thetaS = 30*pi/180; thetaI = -60*pi/180;%期望信号方向30. 干扰-60.%

%%----- 期望和干扰信号-----%%

T = 1E-3; t = (1:100)*T/100; it = 1:100;%1E-3表示1ms%

S = cos(2*pi*t/T); %,此时,S已经是一个矩阵!1100列


I = randn(1,100);%生成1100列的正态分布随机矩阵%
  
%%----- 为每个用户的线性阵列信号创建的阵列因子 -----%%

vS = []; vI = [];
i = 1:N;
vS = exp(1j*(i-1)*2*pi*d*sin(thetaS)).';%’表示厄米特转置,产生N行1列的阵列向量,然后后面在此基础上乘以信号就得到天线每个阵元接收到的信号
vI = exp(1j*(i-1)*2*pi*d*sin(thetaI)).';

%%----- 用LMS解决权值 -----%%

w = zeros(N,1);%初始天线阵权值全为0%
X = vS + vI;
Rxx = X*X';%X'为X的厄米特转置%
mu = 1/(4*abs(trace(Rxx)));%trace,迹%

wi = zeros(N,max(it));%初始权值都为0%
for n = 1:length(S)%n是迭代次数?%
    x = S(n)*vS + I(n)*vI;
    y(n) = w'*x;
    e = conj(S(n)) - y(n);     esave(n) = abs(e)^2;%conj,求复数的共轭%
    nu=mu*(1-exp(-(abs(e))^2));
    w = w + nu*conj(e)*x;
    wi(:,n) = w;
end               %没有判断收敛,要判断是从误差收敛曲线来看
w = w/w(1);    % 第一权值的规范解%

%%----- 显示权值 -----%%

disp(' ')
disp('%------------------------------------------------------------------------%')
disp(' ')
disp(['    N = ',num2str(N),' 的权值是:'])
disp(' ')
for m = 1:length(w)
    disp(['   w',num2str(m),' = ',num2str(w(m),3)])
end
disp(' ')

%%----- 输出结果 -----%%

% 1.) Plot 权重与迭代次数

wi = wi.';
figure(1), plot(it,abs(wi(:,1)),'kx',it,abs(wi(:,2))...
    ,'ko',it,abs(wi(:,3)),'ks',it,abs(wi(:,4)),'k+',...
    it,abs(wi(:,5)),'kd','markersize',2)
xlabel('Iteration no.'), ylabel('|weights|')
title('\bf  阵列权值')

% 2.) Plot 信号采集和跟踪

figure(2)
plot(it,S,'k',it,real(y),'k--')
xlabel('迭代次数'), ylabel('Signals')
title('\bf  期望信号采集与跟踪')
legend('期望信号','阵列输出')

% 3.) Plot 最小均方误差

figure(3), plot(it,esave,'k')
xlabel('Iteration no.'), ylabel('|e|^2')
title('\bf 均方误差与迭代次数.')

% 4.) Plot 阵列因子

theta = -pi/2:.01:pi/2;
AF = 0;
for i = 1:N
    AF = AF + w(i)'.*exp(j*(i-1)*2*pi*d*sin(theta));
end

三、运行结果

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

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【车间调度】基于matlab粒子群的车间调度【含Matlab源码 013期】
【车间调度】基于matlab遗传算法求解车间调度模型含GUI【含Matlab源码 049期】
【车间调度】基于matlab遗传算法求解车间调度【含Matlab源码 070期】
【车间调度】基于matlab nsgaII求解车间调度【含Matlab源码 071期】
【车间调度】基于matlab改进蛙跳算法求解车间调度问题【含Matlab源码 073期】
【车间调度】基于matlab求解置换流水车间调度问题【含Matalb源码 176期】
【车间调度】基于matlab PSO求解6X6的车间调度问题【含Matlab源码 411期】
【车间调度】基于matlab粒子群的生产调度【含Matlab源码 412期】
【车间调度】基于matlab遗传算法多目标流水车间调度【含Matlab源码 443期】
【优化求解】基于matlab粒子群的微电网多目标优化【含Matlab源码 444期】
【优化求解】基于matlab蜻蜓算法求解多目标优化问题【含Matlab源码 477期】
【优化算法】海洋捕食者算法(MPA)【含Matlab源码 478期】
【优化算法】黑洞模拟算法(MVO)【含Matlab源码 479期】
【优化算法】基于变异策略的改进型花朵授粉算法【含Matlab源码 480期】
【优化求解】基于matlab粒子群算法求解水火电经济调度【含Matlab源码 500期】
【优化求解】基于麻雀搜索算法3D无线传感器网络(WSN)覆盖优化【含Matlab源码 599期】
【优化求解】基于遗传算法求解多目标配电网重构模型【含Matlab源码 622期】
【优化算法】改进定步长与变步长LMS算法【含Matlab源码 629期】
【优化算法】改进型的LMS算法【含Matlab源码 630期】
【优化算法】改进型的LMS算法-NLMS算法【含Matlab源码 631期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/115221281