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

📄 two_signal.m

📁 两个信号的DOA估计
💻 M
字号:
tic
  %  the  data of signal
clear;
clc;
format short;
%c=3*10.^8;
c=1;
L=9;
N=128;
f=[0.8,1];
Phia=0;
lamda=c/max(f);
%len=lamda/2;
len=1/2;
P1=15*pi/180;
P2=50*pi/180;
snr=0;
Amp1=sqrt(2*10^(snr/10));
Amp2=sqrt(2*10^(snr/10));
signum=2;
t=1:N;
sig1=Amp1*exp(j*2*pi*(f(1)*0.1*t+Phia));
sig2=Amp2*exp(j*2*pi*(f(2)*0.1*t+Phia));

s=[sig1;sig2];
      l=1:L;  
      x1=exp(j*2*pi*(len*(l-1)*sin(P1)/c));
      x2=exp(j*2*pi*(len*(l-1)*sin(P2)/c));
      a1=x1.';
      a2=x2.';
      a=[a1,a2];
      %a=a2;
      SSS=a*s;
  
 noise=randn(L,N)+j*randn(L,N);
 z=SSS+noise;
 %z=SSS;
 %----caculate c0,c2----
for hang=1:L,
   for lie=1:L,
% --------C0---------------------------  
       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;    
%  ------------C2-----------------------       
       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;      
   end
end
[u,v,ut]=svd(C0);
us=u(:,1:2);
u1=us(1:L-1,:);
u2=us(2:L,:);
psi=inv(u1'*u1)*u1'*u2;
[x,phi]=eig(psi);
for i=1:2;
    fer=phi(i,i);
    w=acos(real(fer)/abs(fer));
    theta(i)=asin(w/pi)*180/pi
end

⌨️ 快捷键说明

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