[最適化アルゴリズム]改良された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+')

3、実行中の結果

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

四、備考

完全なコードまたは書き込み追加QQ1564658423過去のレビュー
>>>>>>
[ワークショップスケジューリング] Matlab粒子群ベースのワークショップスケジューリング[Matlabソースコード013を含む]
[ワークショップスケジューリング] Matlab遺伝子アルゴリズムに基づいてGUIでワークショップスケジューリングモデルを解決[Matlabソースコード049を含める]
[ワークショップスケジューリング]ワークショップスケジューリングを解決するためのmatlab遺伝子アルゴリズムに基づく[Matlabソースコード070を含める]
[ワークショップスケジューリング]ワークショップスケジューリングを解決するためのmatlabnsgaIIに基づく[Matlabソースコード071期間を含む]
[ワークショップスケジューリング]ワークショップスケジューリング問題を解決するためのmatlabアルゴリズムに基づく改良されたleapfrog [Matlabソースコード073を含む]
[ワークショップスケジューリング]交換フローショップスケジューリング問題を解決するためのmatlabに基づく[Matlabソースコード176を含む]
[ワークショップスケジューリング] matlabPSOに基づく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を含む]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/115221255