ÏÖ´úÊý×ÖÐźŴ¦Àí·ÂÕæ×÷Òµ

ʵÓñê×¼Îĵµ

4.·ÂÕæÌâ4.18

·ÂÕæ½á¹û¼°Í¼ÐΣº

²½³¤Îª0.05ʱʧµ÷²ÎÊýΪm1=0.0493£» ²½³¤Îª0.005ʱʧµ÷²ÎÊýΪm2=0.0047¡£

ͼ 6 ²½³¤Îª0.05ʱȨÏòÁ¿µÄÊÕÁ²ÇúÏß

ͼ 7 ²½³¤Îª0.005ʱȨÏòÁ¿µÄÊÕÁ²ÇúÏß

Îݸ´óÈ«

ʵÓñê×¼Îĵµ

ͼ 8 ²½³¤·Ö±ðΪ0.05ºÍ0.005ʱ100´Î¶ÀÁ¢ÊµÑéµÄѧϰÇúÏß

·ÂÕæ³ÌÐò£¨4_18£©:

clear all clc

%% ²úÉú100×é¶ÀÁ¢Ñù±¾ÐòÁÐ data_len=512; trials=100; n=1:data_len; a1=-0.975; a2=0.95; sigma_v_2=0.0731;

v=sqrt(sigma_v_2)*randn(data_len,1,trials); u0=[0 0]; num=1; den=[1,a1,a2]; Zi=filtic(num,den,u0);

u=filter(num,den,v,Zi); %²úÉú100×é¶ÀÁ¢ÐźŠ%% LMSµü´ú mu1=0.05;mu2=0.005;

w1=zeros(2,data_len,trials); w2=w1; for m=1:100;

temp=zeros(data_len,1);

e1(:,:,m)=temp;e2(:,:,m)=temp;d1(:,:,m)=temp;d2(:,:,m)=temp; for n=3:data_len-1

Îݸ´óÈ«

ʵÓñê×¼Îĵµ

w1(:,n+1,m)=w1(:,n,m)+mu1*u(n-1:-1:n-2,:,m)*conj(e1(n,1,m)); w2(:,n+1,m)=w2(:,n,m)+mu2*u(n-1:-1:n-2,:,m)*conj(e2(n,1,m)); d1(n+1,1,m)=w1(:,n+1,m)'*u(n:-1:n-1,:,m); d2(n+1,1,m)=w2(:,n+1,m)'*u(n:-1:n-1,:,m); e1(n+1,1,m)=u(n+1,:,m)-d1(n+1,1,m); e2(n+1,1,m)=u(n+1,:,m)-d2(n+1,1,m); end end

t=1:data_len;

w1_mean=zeros(2,data_len);

w2_mean=w1_mean;e1_mean=zeros(data_len,1);e2_mean=e1_mean; for m=1:100

w1_mean=w1_mean+w1(:,:,m); w2_mean=w2_mean+w2(:,:,m); e1_mean=e1_mean+e1(:,:,m).^2; e2_mean=e2_mean+e2(:,:,m).^2; end

w1_mean=w1_mean/100; 0´Î¶ÀÁ¢ÊµÑéȨÏòÁ¿µÄ¾ùÖµ w2_mean=w2_mean/100;

e1_100trials_ave=e1_mean/100; 0´Î¶ÀÁ¢ÊµÑéµÄѧϰÇúÏß¾ùÖµ e2_100trials_ave=e2_mean/100; figure(1)

plot(t,w1(1,:,90),t,w1(2,:,90),t,w1_mean(1,:),t,w1_mean(2,:)) xlabel('µü´ú´ÎÊý');ylabel('ȨÏòÁ¿') title('²½³¤=0.05') figure(2)

plot(t,w2(1,:,90),t,w2(2,:,90),t,w2_mean(1,:),t,w2_mean(2,:)) xlabel('µü´ú´ÎÊý');ylabel('ȨÏòÁ¿') title('²½³¤=0.005')

%% ¼ÆËãÊ£ÓàÎó²îºÍʧµ÷²ÎÊý wopt=zeros(2,trials); Jmin=zeros(1,trials); sum_eig=zeros(trials,1); for m=1:trials

rm=xcorr(u(:,:,m),'biased'); R=[rm(512),rm(513);rm(511),rm(512)]; p=[rm(511);rm(510)]; wopt(:,m)=R\\p; [v,d]=eig(R);

Jmin(m)=rm(512)-p'*wopt(:,m); sum_eig(m)=d(1,1)+d(2,2); end

sJmin=sum(Jmin)/trials;

Îݸ´óÈ«

ʵÓñê×¼Îĵµ

Jex1=e1_100trials_ave-sJmin; %Ê£Óà¾ù·½Îó²îmu1 Jex2=e2_100trials_ave-sJmin; %Ê£Óà¾ù·½Îó²îmu2 sum_eig_100trials=sum(sum_eig)/100;

Jexfin1=mu1*sJmin*(sum_eig_100trials/(2-mu1*sum_eig_100trials)); Jexfin2=mu2*sJmin*(sum_eig_100trials/(2-mu2*sum_eig_100trials)); M1=Jexfin1/sJmin; %ʧµ÷²ÎÊým1 M2=Jexfin2/sJmin; %ʧµ÷²ÎÊým2 figure(3)

plot(t,e1_100trials_ave,'*',t,e2_100trials_ave) xlabel('µü´ú´ÎÊý');ylabel('¾ù·½Îó²î') legend('u1=0.05','u2=0.005') axis([0,600,0,1])

Îݸ´óÈ«

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4