📄 sa_ex8_10.m
字号:
% CMA example 8.10
n=50; % total number of iterations
mu = .5;
d = .5; % element spacing in terms of wavelength d = lambda/2
N=8;
Nchips = 32;
nsamples = 4;
T = 32/3E6;
tau = T/Nchips;
num = Nchips*nsamples;
t=(1:num+4)*T*1E6/num;
randn('state',0)
btemp=sign(randn(1,Nchips));
b=[];
for i=1:length(btemp),
b = [b,btemp(i)*ones(1,nsamples)];
end
a1=[b 0 0 0 0];
a2=.3*[0 0 b 0 0];
a3=.1*[0 0 0 0 b];
tt=t(1:132);
figure;
subplot(221)
plot(tt,a1,'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
subplot(222)
plot(tt,a2,'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
subplot(223)
plot(tt,a3,'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
subplot(224)
plot(tt,a1+a2+a3,'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
%----- Desired Signal & Interferer definition-----%
S=a1;
thetaS=45; % desired signal angle
thetaS = thetaS*pi/180;
I1=a2;
theta1 = -30; % interference angle
theta1 = theta1*pi/180;
I2=a3;
theta2 = 0; % interference angle
theta2 = theta2*pi/180;
ii=1:N;
%-----Calculate Array Steering Vectors ----------
vS=exp(1j*(ii-1)*2*pi*d*sin(thetaS));
v1=exp(1j*(ii-1)*2*pi*d*sin(theta1));
v2=exp(1j*(ii-1)*2*pi*d*sin(theta2));
x=(vS.'*S+v1.'*I1+v2.'*I2); %array input without noise
w=zeros(N,n); % initialize weights
w(1,1) = 1;
%y(1)=0;
for k=1:n
y(k)=w(:,k)'*x(:,k);
w(:,k+1)=w(:,k)+2*mu*(1-1/abs(y(k)))*y(k)*conj(x(:,k));
end
ww=w(:,n);
ww=ww/abs(ww(1));
theta = -pi/2:.01:pi/2;
AF = zeros(1,length(theta));
% Determine the array factor for linear array
for i = 1:N
AF = AF + (ww(i))*exp(j*(i-1)*2*pi*d*sin(theta));
end
figure;
plot(theta*180/pi,abs(AF)/max(abs(AF)),'k')
xlabel('AOA (deg)')
ylabel('|AF_n|')
axis([-90 90 0 1.1])
set(gca,'xtick',[-90 -60 -30 0 30 60 90])
grid on
out=ww.'*x;
figure;
subplot(211)
plot(tt,a1+a2+a3,'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
title('Arriving signal')
subplot(212)
plot(tt,real(out/8),'k')
xlabel('t')
ylabel('amplitude')
axis([ 0 max(tt) -1.5 1.5])
title('CM output signal')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -