[최적화 알고리즘] 개선 된 LMS 알고리즘 -NLMS 알고리즘 [Matlab 소스 코드 631 기간 포함]

1. 소개

최소 평균 제곱 (LMS, 최소 평균 제곱)은 가장 기본적인 적응 형 필터링 알고리즘입니다.
LMS 알고리즘은 적응 형 필터에서 일반적으로 사용되는 알고리즘으로 Wiener 알고리즘과 다른 점은 입력 시퀀스에 따라 시스템 계수가 변경된다는 것입니다. Wiener 알고리즘에서는 시스템의 최적 계수를 구성하기 위해 입력 시퀀스의 자기 상관 함수 섹션을 가로 챕니다. LMS 알고리즘은 최소 평균 제곱 오차 기준에 따라 초기화 된 필터 계수를 지속적으로 수정하여 구현됩니다. 따라서 이론적으로 LMS 알고리즘의 성능은 동일한 조건에서 Wiener보다 우수합니다. 단, LMS는 초기 값 이하로 점진적으로 조정되기 때문에 시스템이 안정되기 전에 조정 시간이있을 것입니다. 조정 시간은 스텝 크기 계수에 의해 제어됩니다. 일정 범위 내에서는 스텝 크기 계수가 커집니다. , 조정 시간이 짧을수록 스텝 크기 계수의 최대 값은 R의 트레이스입니다. LMS는 최소 평균 제곱 오차의 원칙 대신 최소 제곱 오차의 원칙을 채택하며 기본 신호 관계는 다음과 같습니다.
여기에 사진 설명 삽입
여기에 사진 설명 삽입

둘째, 소스 코드

clear all
close all
hold off%系统信道权数
sysorder = 5 ;%抽头数
N=1000;%总采样次数
inp = randn(N,1);%产生高斯随机系列
n = randn(N,1);
[b,a] = butter(2,0.25);
Gz = tf(b,a,-1);%逆变换函数
h= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量
y = lsim(Gz,inp);%加入噪声
n = n * std(y)/(10*std(n));%噪声信号
d = y + n;%期望输出信号
totallength=size(d,1);%步长
N=60 ; %60节点作为训练序列
%算法的开始
w = zeros ( sysorder , 1 ) ;%初始化
for n = sysorder : N 
u = inp(n:-1:n-sysorder+1) ;% u的矩阵
y(n)= w' * u;%系统输出
r(n)=u'*u;%自相关矩阵
e(n) = d(n) - y(n) ;%误差
fai=.0001;%修正参数,为防止u'*u过小导致步长值太大而设置的
if n < 20
mu=0.32;
else
mu=0.15;
end
w = w + mu * u * e(n)/(r(n)+fai) ;%迭代方程
end 
%检验结果
for n = N+1 : totallength
u = inp(n:-1:n-sysorder+1) ;
y(n) = w' * u ;
e(n) = d(n) - y(n) ;%误差
end 
hold on
plot(d)
plot(y,'r');
title('系统输出') ;
xlabel('样本')
ylabel('实际输出')
figure
semilogy((abs(e))) ;% e的绝对值坐标
title('误差曲线') ;
xlabel('样本')
ylabel('误差矢量')
figure%作图
plot(h, 'k+')

세, 실행 결과

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

네, 비고

완전한 코드 또는 쓰기 추가 QQ 1564658423 과거 리뷰
>>>>>>
[워크샵 일정] Matlab 입자 군집 기반 워크샵 일정 [Matlab 소스 코드 013 포함]
[워크샵 일정] matlab 유전 알고리즘을 기반으로 GUI로 워크샵 일정 모델을 해결합니다. [매트랩 소스 코드 049 포함]
[워크샵 스케줄링] MATLAB 유전 알고리즘 기반으로 워크샵 스케줄링 해결 [매트랩 소스 코드 070 포함]
[워크샵 스케줄링] matlab nsgaII 기반으로 워크숍 스케줄링 해결 [매트랩 소스 코드 071 기간 포함]
[워크샵 스케줄링 ] 작업장 일정 문제 해결을위한 matlab 알고리즘 기반 도약 개선 [Matlab 소스 코드 073 포함]
[작업장 일정] Matlab을 기반으로 작업장 일정 계획 문제 해결 [Matlab 소스 코드 176 포함]
[작업장 일정] matlab PSO를 기반으로 6X6 워크숍 스케줄링 문제 해결 [Matlab 소스 코드 411 포함]
[워크샵 스케줄링] Matlab 입자 군집 기반 생산 스케줄링 [Matlab 소스 코드 412 포함]
[워크샵 스케줄링] Matlab 유전 알고리즘 기반 다목적 흐름 상점 스케줄링 [Matlab 소스 코드 443 포함] ]
[최적화] matlab 입자 군집 마이크로 그리드 기반 다목적 최적화 [Matlab 소스 코드 444 포함]
[최적화] matlab 잠자리 알고리즘 기반으로 다목적 최적화 문제 해결 [Matlab 소스 코드 477 포함]
[최적화 알고리즘] 해양 포식자 알고리즘 (MPA) [Matlab 소스 코드 478 포함]
[최적화 알고리즘] Black Hole Simulation Algorithm (MVO) [Matlab 소스 코드 479 포함]
[최적화 알고리즘] 변이 전략 기반 꽃 수분 알고리즘 개선 [Matlab 소스 코드 480 포함]
[최적화 솔루션] Matlab 입자 군집 알고리즘 기반으로 수열 전력 경제 파견 해결 [Matlab 소스 코드 500 기 포함]
[최적화 솔루션] 참새 검색 알고리즘 기반 3D 무선 센서 네트워크 (WSN) 커버리지 최적화 [Matlab 소스 코드주기 포함] 599]
[최적화 솔루션] 다목적 분산 망 재구성 모델을 해결하기위한 유전 알고리즘 기반 [Matlab 소스 코드 622 포함]
[최적화 알고리즘] 고정 단계 및 가변 단계 크기 LMS 알고리즘 개선 [Matlab 소스 코드 629 포함]
[최적화 알고리즘 ] 개선 된 LMS 알고리즘 [Matlab 소스 코드 630 포함]

추천

출처blog.csdn.net/TIQCmatlab/article/details/115221255