📄 sa_ex8_12.m
字号:
%%%%%%%%%%%%%%%%%%%
%% LSCMA Algorithm example 8.12 %%
%%%%%%%%%%%%%%%%%%%
n=6; % total number of iterations
K=22; % block length
d = .5; % element spacing in terms of wavelength d = lambda/2
N=8;
Nchips = 32;
nsamples = 4;
T=1;
tau = T/Nchips;
num = Nchips*nsamples;
t=(1:num)*T*1E6/num;
t=(1:num)*T/num;
randn('state',2)
btemp=sign(randn(1,Nchips));
b=[];
for i=1:length(btemp),
b = [b,btemp(i)*ones(1,nsamples)];
end
sig2=.01;
Rnn=sig2*eye(N);
thetaS=45; % desired signal angle
thetaS = thetaS*pi/180;
theta1 = -30; % interference angle
theta1 = theta1*pi/180;
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));
w=zeros(N,n); % initialize weights to small value
w(1,1)=1;
ww=w(:,1);
%randn('state',0)
ran=zeros(1:3);
r1=ran(1);
r2=ran(2);
r3=ran(3);
a1=[b 0 0 0 0];
a2=.3*[0 0 b 0 0];
a3=.1*[0 0 0 0 b];
for jj=1:n
%----- Desired Signal & Interferer definition-----%
%S=b(jj:K-1+jj);
%I1=.3*b(jj+3:K+2+jj);
%I2=.1*b(6+jj:K+5+jj);
S= a1(jj:K-1+jj);
I1=a2(jj:K-1+jj);
I2=a3(jj:K-1+jj);
x=(vS.'*S+v1.'*I1+v2.'*I2); %array input without noise
Rxx=x*x'/K+Rnn; % calculate initial correlation matrix
Rinv=inv(Rxx);
r=ww'*x;
er(jj)=sum((abs(r)-1).^2);
r=r./abs(r);
w(:,jj)=Rinv*(x*r'/K);
ww=w(:,jj);
weight(jj)=(abs(w(1,jj)));
end
ww=ww/real(ww(1));
%----- Plot Results -----%
theta = -pi/2:.01:pi/2;
AF = zeros(1,length(theta));
% Determine the array factor for linear array
for ii = 1:N
AF = AF + ww(ii)'*exp(1j*(ii-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)/max(real(out)),'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 + -