close all;
clear all;
N=5;
M=8;
L=1;
u=0.05;
j=sqrt(-1);
rp.TNRdB=0;
rp.INRdB=40;
rp.mean_v = 0; % mean of complex-valued AWGN
rp.var_v = 1; % variance of complex-valued AWGN
theta=[0,40*pi/180,48*pi/180,60*pi/180,80*pi/180];
t=0:0.01:2-0.01;
knap=length(t);
A_1 = sqrt(rp.var_v) * 10^(rp.TNRdB/20);
B_1 = sqrt(rp.var_v) * 10^(rp.INRdB/20);
s0=A_1*exp(j*2*pi*10*t);
s1=B_1*exp(j*2*pi*20*t);
s2=B_1*exp(j*2*pi*30*t);
s3=B_1*exp(j*2*pi*25*t);
s4=B_1*exp(j*2*pi*35*t);
s=[s0;s1;s2;s3;s4];
%imp=zeros(1,knap);
%b=sign(randn(1,knap/4));
%imp(1:4:knap)=b;
for i=1:M
for k=1:N
A1(i,k)=exp(-j*pi*(i-1)*sin(theta(k)));%array responce
end
end
vr = sqrt(rp.var_v/2) * randn(M,knap) + rp.mean_v;
vi = sqrt(rp.var_v/2) * randn(M,knap) + rp.mean_v;
v = vr + j*vi;
X_nn=A1*s;
X=X_nn+v;
d=s0;
R=zeros(M,M);
r=zeros(M,M);
INVRXX=zeros(M,M);
Rxx=X*X';
rxd=X*d';
Rxx=Rxx/knap;
[V,D]=eig(Rxx);
for i=1:M
R=1/D(i,i)*V(:,i)*V(:,i)';
INVRXX=INVRXX+R;
end
w_opt=INVRXX*A1(:,1)/(A1(:,1)'*INVRXX*A1(:,1));
sita1=[-90:2:90];
sita=sita1*pi/180;
G_sita=zeros(1,length(sita1));
for i=1:length(sita)
a_sita_i=[1,exp(-j*pi*sin(sita(i))),exp(-j*2*pi*sin(sita(i))),exp(-j*3*pi*sin(sita(i))),exp(-j*4*pi*sin(sita(i))),exp(-j*5*pi*sin(sita(i))),exp(-j*6*pi*sin(sita(i))),exp(-j*7*pi*sin(sita(i)))].';
G_sita(i)=w_opt'*a_sita_i;
end
figure;
plot(sita1,10*log10(abs(G_sita)));
grid on ;
figure;
plot(sita1,abs(G_sita));
grid on ;
figure;
compass(sita1,abs(G_sita));
grid on ;