📄 adaptive_main.m
字号:
%this function creat the signal source
Pd=2000;
Fd=1;
Fs=4*Fd;
R=0.5;
Delay=5;
No=1;
m=2;
x1 = randint(Pd,1,m);
x2 = randint(Pd,1,m);
y1 = modmap(x1,Fd,Fs,'qask',m);
y2 = modmap(x1,Fd,Fs,'qask',m);
[rcv_a1,ti] = rcosflt(y1,Fd,Fs,'fir/sqrt/Fs',R,Delay);
[rcv_a2,ti] = rcosflt(y2,Fd,Fs,'fir/sqrt/Fs',R,Delay);
s1=amodce(rcv_a1,10, 'qam');
s2=amodce(rcv_a2,10, 'qam');
save sig_dat s1 s2;
%signal received by the antennas
j=sqrt(-1);
angle1=30;angle2=-60;
th=[angle1; angle2];
nn=1024;
SN1=-20; SN2=20;
sn=[SN1; SN2];
deg2rad=pi/180;
% signal_to_noise ration adjust
load sig_dat
tt=1:nn;
S=[s1(tt).';s2(tt).'];
nr=randn(m,nn); % creat a m*nn random matrix
ni=randn(m,nn);
U=nr+j*ni;% noise signals at the antenna array
Ps=S*S'/nn;
ps=diag(Ps); %返回Ps的主对角元素
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
%control matrix
tmp=-i*pi*sin(th'*deg2rad);
tmp2=[0:m-1 ]';
a2=tmp2*tmp;
A=exp(a2);
X=A*S2+U;
% the correlative matrix of the signals received by antennas
Rxx=X*X'/nn;
Rinv=inv(Rxx);
% calculate the w_lms
rxd=X*S2(1,:)'/nn; % X与矩阵S2的第一行相乘;
% s1(tt) is selected as the desired signal
%calculate the w_lcmv
C=A(:,1);% 将矩阵A的第一列赋值给C
h=[1].';
w_lcmv=Rinv*C*inv(C'*Rinv*C)*h;
% Antenna Pattern output
k=[-90:90]';
tmp=-i*pi*sin(k'*deg2rad);
tmp2=[0:m-1]';
a2=tmp2*tmp;
Ap=exp(a2);
pattern2=abs(w_lcmv'*Ap).^2/2;
pdb2=10*log10(pattern2);
plot(k,pdb2);
axis([-90 90 -80 0]);
legend('LCMV(SNR1=-20,SNR2=20)');
xlabel('Angle[degree]');
ylabel ('Antenna Pattern');
grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -