資源簡介
一種變步長LMS算法的matlab仿真,顯示算法的收斂速度和抗干擾能力
代碼片段和文件信息
close??all
N=200;
mmse1=zeros(11000);mmse2=zeros(11000);mmse3=zeros(11000);
for?j=1:N;
randn(‘state‘sum(1000*clock));
xs=randn(11000);
xn=0.2*randn(11000);
%?信號濾波
W4=[0.8?0.5];xin?=?xs‘;???%?輸入信號序列
M??=?2???;???%?濾波器的階數(shù)
W1=?zeros(Mlength(xn));?W2=?zeros(Mlength(xn));W3=?zeros(Mlength(xn));??%?每一行代表一個(gè)加權(quán)參量每一列代表-次迭代初始為0
en1?=?zeros(length(xn)1);?en2?=?zeros(length(xn)1);en3?=?zeros(length(xn)1);?
dn?=?zeros(length(xn)1);a?=?zeros(length(xn)1);b=?zeros(length(xn)1);?c=?zeros(length(xn)1);
en1(1)=W4*xin(2:-1:1)+xn(1);en2(1)=W4*xin(2:-1:1)+xn(1);en3(1)=W4*xin(2:-1:1)+xn(1);?%?誤差序列
mse1=zeros(1length(xn));mse2=zeros(1length(xn));mse3=zeros(1length(xn));
mu1=zeros(length(xn)1);mu1(2)=0.2;mu2=zeros(length(xn)1);mu2(2)=0.2;mu3=zeros(length(xn)1);mu3(2)=0.2;
p1?=?zeros(length(xn)1);?p1(1)=0.2;p2=?zeros(length(xn)1);?p2(1)=0.2;p3=?zeros(length(xn)1);?p3(1)=0.2;
c1=0.98;c2=0.00048;d1=2;d2=2;d3=2;e1=2;e2=2;e3=2;%e大d小則收斂快,跟蹤好,穩(wěn)態(tài)誤差小,但抗干擾差e的影響要大于d
%?迭代計(jì)算收斂特性d2=1;e1=4;抗噪聲特性d2=2;e1=0.5;
for?k?=?M:length(xn);?????????????????%?第k次迭代
????x?=?xin(k:-1:k-M+1);????????%?濾波器M個(gè)抽頭的輸入
????y1?=?W1(:k).‘*?x;?y2?=?W2(:k).‘*?x;y3?=?W3(:k).‘*?x;????????%?濾波器的輸出,
????if?k==500
???????W4=[0.4?0.2];
????end
????dn(k)=W4*xin(k:-1:k-M+1)+xn(k);
????en1(k)?=?dn(k)-?y1;en2(k)?=?dn(k)?-?y2;en3(k)?=?
- 上一篇:MATLAB GUI菜單制作
- 下一篇:matlab單應(yīng)矩陣
評論
共有 條評論