%lms 程序 w(t+1)=w(t)+miu*x(t)*conj(e(t))
%2007-6-20 huangfei
clear;
f0=50*rand(1); %frenquency of signal
c=3*10^8; %optical speed
lambda=c/f0; %wavelength
N=32; %number of elements
T=400; %sample number of one period
t=[0:2*pi/T:2*pi*(T-1)/T];
element_interval=lambda/2; %interval of elements
Q0=40*pi/180; %signal direction
S0=1*exp(-j*f0*t); %signal
A=2; %amplitude of interfere
Rn=0.0100; %average power of noise??
Q1=0*pi/180; %interfere direction
I0=A*exp(-j*(f0+500)*t); %interfere
S=zeros(N,T);
I=zeros(N,T);
for i=1:N %阵元
for n=1:T
S(i,n)=S0(n)*exp(j*2*pi*(i-1)*element_interval*sin(Q0)/lambda); %signal matrix of a period
I(i,n)=I0(n)*exp(j*2*pi*(i-1)*element_interval*sin(Q1)/lambda); %interfere matrix of a period
end
end
noise=0.005*(i*randn(N,T)+randn(N,T));
U=S+I+noise; %total incident signal
Rxx=zeros(N,N); %noise item of variance matrix??
for n=1:T
Rxx=Rxx+(U(:,n))*(U(:,n)')/T; %average variance matrix of signal
end
mu=3/(7*trace(Rxx)); %step-size<trace(Rxx)
W=zeros(N,T);
%====================subarray initialization====================
for n=1:T
d(n)=S0(n); %d(n) is desire response
end
for t=1:T-1
deta(:,t)=conj(d(t+1)-W(:,t)'*U(:,t+1))*U(:,t+1);
W(:,t+1)=W(:,t)+mu*deta(:,t);
ndeta(t)=norm(deta(:,t));
end
n=1:T;
figure(7);
plot(n,abs(W));
xlabel('迭代次数');
ylabel('权重系数');
w=W(:,T)';
figure(8);
clear i;
a=-pi/2:0.01:pi/2;
F1=0;
for i=1:N
F1=F1+w(i)*exp(j*2*pi*element_interval*(i-1)*sin(a)/lambda);
end
H1=abs(F1);
G=H1./max(H1);
Fa=20*log10(G);
plot(180*a/pi,Fa);
xlabel('Angle(Degree)');
ylabel('(DB)');
axis([-90 90 -80 0]);
grid on;
评论5