⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zuixiaoyueshu.m

📁 用最小约束阵实现频率、二维到达角和极化的联合估计,大家可以参考一下了.
💻 M
📖 第 1 页 / 共 2 页
字号:

clear;
format compact;

%--minimally constrained array-----

%----the first value---

M=6;
signum=2;
derta=0.5;
N=1024;

theta1=25*pi/180;   theta111=25;
theta2=40*pi/180;   theta222=40;
fai1=50*pi/180;     fai111=50;
fai2=60*pi/180;     fai222=60;

gama1=35*pi/180;    gama111=35;
gama2=30*pi/180;    gama222=30;
jita1=15*pi/180;    jita111=15;
jita2=20*pi/180;    jita222=20;

f1=0.70;
f2=1.00;



%----s---
for SSS=1:11, 
   snr=5+(SSS-1)*2;
   Amp=sqrt(2*10^(snr/10));
 
for MM=1:50, 
    SSS
    MM
s1=(exp(j*2*pi*(f1*0.1*[0:N-1]+rand)))*Amp;   % fc/fs=0.7*0.1
s2=(exp(j*2*pi*(f2*0.1*[0:N-1]+rand)))*Amp;   % fc/fs=1.0*0.1

s=[s1(1:N);s2(1:N)];
%----a---

u1x=sin(gama1)*cos(theta1)*cos(fai1)*exp(j*jita1)-cos(gama1)*sin(fai1);  % x polarization element
u1y=sin(gama1)*cos(theta1)*sin(fai1)*exp(j*jita1)+cos(gama1)*cos(fai1);  % y polarization element
p1=exp(j*2*pi*derta*sin(theta1)*cos(fai1)*f1); % x delay
q1=exp(j*2*pi*derta*sin(theta1)*sin(fai1)*f1); % y delay
a1=[u1x;u1y;u1x*p1;u1x*q1;p1^2;q1^2];


u2x=sin(gama2)*cos(theta2)*cos(fai2)*exp(j*jita2)-cos(gama2)*sin(fai2);
u2y=sin(gama2)*cos(theta2)*sin(fai2)*exp(j*jita2)+cos(gama2)*cos(fai2);
p2=exp(j*2*pi*derta*sin(theta2)*cos(fai2)*f2);
q2=exp(j*2*pi*derta*sin(theta2)*sin(fai2)*f2);
a2=[u2x;u2y;u2x*p2;u2x*q2;p2^2;q2^2];

a=[a1,a2];
%----noise---

noise=randn(6,N)+j*randn(6,N);

%----z---

z=a*s+noise;

%----caculate c0,c1,c2,c3 c4----

for hang=1:6,
   for lie=1:6,
      zmat = z(1,:).* conj(z(1,:)).* z(hang,:);   
      R4 = (zmat * z(lie,:)') /N;      
      r12= (z(1,:) * z(1,:)') / N;
      r34= (z(hang,:)*z(lie,:)')/N;
      r13= (z(1,:) * z(hang,:).') / N;
      r24= (conj(z(1,:))*z(lie,:)')/N;
      r14= (z(1,:) * z(lie,:)') / N;
      r23= (conj(z(1,:))*z(hang,:).')/N;
      C0(hang,lie) = R4 - r12*r34-r13*r24-r14*r23; 
      
      zmat = z(1,:).* conj(z(3,:)).* z(hang,:);   
      R4 = (zmat * z(lie,:)') /N;      
      r12= (z(1,:) * z(3,:)') / N;
      r34= (z(hang,:)*z(lie,:)')/N;
      r13= (z(1,:) * z(hang,:).') / N;
      r24= (conj(z(3,:))*z(lie,:)')/N;
      r14= (z(1,:) * z(lie,:)') / N;
      r23= (conj(z(3,:))*z(hang,:).')/N;
      C1(hang,lie) = R4 - r12*r34-r13*r24-r14*r23; 

      zmat = z(1,:).* conj(z(4,:)).* z(hang,:);   
      R4 = (zmat * z(lie,:)') /N;      
      r12= (z(1,:) * z(4,:)') / N;
      r34= (z(hang,:)*z(lie,:)')/N;
      r13= (z(1,:) * z(hang,:).') / N;
      r24= (conj(z(4,:))*z(lie,:)')/N;
      r14= (z(1,:) * z(lie,:)') / N;
      r23= (conj(z(4,:))*z(hang,:).')/N;
      C2(hang,lie) = R4 - r12*r34-r13*r24-r14*r23; 
      
      zmat = z(1,:).* conj(z(2,:)).* z(hang,:);   
      R4 = (zmat * z(lie,:)') /N;      
      r12= (z(1,:) * z(2,:)') / N;
      r34= (z(hang,:)*z(lie,:)')/N;
      r13= (z(1,:) * z(hang,:).') / N;
      r24= (conj(z(2,:))*z(lie,:)')/N;
      r14= (z(1,:) * z(lie,:)') / N;
      r23= (conj(z(2,:))*z(hang,:).')/N;
      C3(hang,lie) = R4 - r12*r34-r13*r24-r14*r23;
      
      zmat = z(1,1:(N-1)).* conj(z(1,2:N)).* z(hang,1:(N-1));   %f
      R4 = (zmat * z(lie,1:(N-1))') /(N-1);      
      r12= (z(1,1:(N-1)) * z(1,2:N)') / (N-1);
      r34= (z(hang,1:(N-1))*z(lie,1:(N-1))')/(N-1);
      r13= (z(1,1:(N-1)) * z(hang,1:(N-1)).') / (N-1);
      r24= (conj(z(1,2:N))*z(lie,1:(N-1))')/(N-1);
      r14= (z(1,1:(N-1)) * z(lie,1:(N-1))') / (N-1);
      r23= (conj(z(1,2:N))*z(hang,1:(N-1)).')/(N-1);
      C4(hang,lie) = R4 - r12*r34-r13*r24-r14*r23; 
   end
end

%----estimate f, DOA and polarization----
[u s v]=svd(C0);
u1=u(:,1:signum);ss1=s(1:signum,1:signum);v1=v(:,1:signum);

Tc1=u1'*C1*v1;
[up faip]=eig(ss1,Tc1);

Tc2=u1'*C2*v1;
[uq faiq]=eig(ss1,Tc2);

Tc3=u1'*C3*v1;
[ur fair]=eig(ss1,Tc3);

Tc4=u1'*C4*v1;
[uf faif]=eig(ss1,Tc4);

c=[C0;C1;C2;C3;C4];
%----grouping----

up1=up(:,1)/norm(up(:,1));
up2=up(:,2)/norm(up(:,2));
uq1=uq(:,1)/norm(uq(:,1));
uq2=uq(:,2)/norm(uq(:,2));
ur1=ur(:,1)/norm(ur(:,1));
ur2=ur(:,2)/norm(ur(:,2));
uf1=uf(:,1)/norm(uf(:,1));
uf2=uf(:,2)/norm(uf(:,2));


faip1=faip(1,1);
faip2=faip(2,2);
if abs(up1'*uq1)<abs(up1'*uq2)
    faiq1=faiq(2,2);
    faiq2=faiq(1,1);
else
    faiq1=faiq(1,1);
    faiq2=faiq(2,2);
end

if abs(up1'*ur1)<abs(up1'*ur2)
    fair1=conj(fair(2,2));
    fair2=conj(fair(1,1));
else
    fair1=conj(fair(1,1));
    fair2=conj(fair(2,2));
end

if abs(up1'*uf1)<abs(up1'*uf2)
    faif1=faif(2,2);
    faif2=faif(1,1);
else
    faif1=faif(1,1);
    faif2=faif(2,2);
end
    
if abs(faip1-p1)>abs(faip2-p1)
  temp=faip2;
  faip2=faip1;
  faip1=temp;
  temp=faiq2;
  faiq2=faiq1;
  faiq1=temp;
  temp=fair2;
  fair2=fair1;
  fair1=temp;
  temp=faif2;
  faif2=faif1;
  faif1=temp; 
end

%----caculate the f, DOA and p----
f11(MM)=angle(faif1)*10/2/pi;
f22(MM)=angle(faif2)*10/2/pi;

theta11(MM)=asin((sqrt((angle(faip1)*angle(faip1))+(angle(faiq1)*angle(faiq1))))/pi/2/derta/f11(MM));
theta22(MM)=asin((sqrt((angle(faip2)*angle(faip2))+(angle(faiq2)*angle(faiq2))))/pi/2/derta/f22(MM));

fai11(MM)=atan(angle(faiq1)/angle(faip1));
fai22(MM)=atan(angle(faiq2)/angle(faip2));

ipsilon1=(fair1*cos(fai11(MM))+sin(fai11(MM)))/(cos(theta11(MM))*((-1)*fair1*sin(fai11(MM))+cos(fai11(MM))));
ipsilon2=(fair2*cos(fai22(MM))+sin(fai22(MM)))/(cos(theta22(MM))*((-1)*fair2*sin(fai22(MM))+cos(fai22(MM))));

jita11(MM)=angle(ipsilon1);
jita22(MM)=angle(ipsilon2);
gama11(MM)=atan(abs(ipsilon1));
gama22(MM)=atan(abs(ipsilon2));


theta11(MM)=theta11(MM)*180/pi;
theta22(MM)=theta22(MM)*180/pi;
fai11(MM)=fai11(MM)*180/pi;
fai22(MM)=fai22(MM)*180/pi;
gama11(MM)=gama11(MM)*180/pi;
gama22(MM)=gama22(MM)*180/pi;
jita11(MM)=jita11(MM)*180/pi;
jita22(MM)=jita22(MM)*180/pi;
   

 
end

%----caculate the mean----
   mf1(SSS)=mean(f11);
   mf2(SSS)=mean(f22);
   mtheta1(SSS)=mean(theta11);
   mtheta2(SSS)=mean(theta22);
   mfai1(SSS)=mean(fai11);
   mfai2(SSS)=mean(fai22);
   mgama1(SSS)=mean(gama11);
   mgama2(SSS)=mean(gama22);
   mjita1(SSS)=mean(jita11);
   mjita2(SSS)=mean(jita22);
 
%----caculate the var---
   varf1(SSS)=std(f11);
   varf2(SSS)=std(f22);
   vart1(SSS)=std(theta11);
   vart2(SSS)=std(theta22);
   varfa1(SSS)=std(fai11);
   varfa2(SSS)=std(fai22);
   varg1(SSS)=std(gama11);
   varg2(SSS)=std(gama22);
   varj1(SSS)=std(jita11);
   varj2(SSS)=std(jita22);

end





%---crossed dipoles array-----

%----the first value---

L=3;
signum=2;
derta=0.5;
N=1024;

theta1=25*pi/180;
theta2=40*pi/180;
fai1=50*pi/180;
fai2=60*pi/180;

gama1=35*pi/180;
gama2=30*pi/180;
jita1=15*pi/180;
jita2=20*pi/180;

f1=0.70;
f2=1.00;

%----s---
for SSS=1:11, 
   snr=5+(SSS-1)*2;
   Amp=sqrt(2*10^(snr/10));
 
for MM=1:50,
    SSS
    MM
s1=(exp(j*2*pi*(f1*0.1*[0:N-1]+rand)))*Amp;
s2=(exp(j*2*pi*(f2*0.1*[0:N-1]+rand)))*Amp;

s=[s1(1:N);s2(1:N)];
%----a---

u1=[sin(gama1)*cos(theta1)*cos(fai1)*exp(j*jita1)-cos(gama1)*sin(fai1);
    sin(gama1)*cos(theta1)*sin(fai1)*exp(j*jita1)+cos(gama1)*cos(fai1)];
p1=exp(j*2*pi*derta*sin(theta1)*cos(fai1)*f1);   % *f1 
q1=exp(j*2*pi*derta*sin(theta1)*sin(fai1)*f1);   % *f1
a1=[u1;u1*p1;u1*(p1^2);u1*q1;u1*(q1^2)];


u2=[sin(gama2)*cos(theta2)*cos(fai2)*exp(j*jita2)-cos(gama2)*sin(fai2);
    sin(gama2)*cos(theta2)*sin(fai2)*exp(j*jita2)+cos(gama2)*cos(fai2)];
p2=exp(j*2*pi*derta*sin(theta2)*cos(fai2)*f2);
q2=exp(j*2*pi*derta*sin(theta2)*sin(fai2)*f2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -