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

📄 lfm1_mp_1.m

📁 信号与信息处理——阵列信号处理DOA估计的matlab算法
💻 M
字号:
tic
  %  the  data of signal
clear;
format short;
c=3*10.^8;
L=6;
N=128*2;
fm1=0.25;%fc1=0.275;
Km1=0.025;
Phia=0;
f0=0.275;
lamta=c/f0;
len=lamta/2;
%len=1/2;
P1=10*pi/180;
%snr1=10;
Amp1=1%sqrt(2*10^(snr1/10));
t=1:N;
sig1=Amp1.*exp(j*2*pi*(Km1/2*(t.^2)/N+fm1*t+Phia));
f1=1*Km1*t/N+fm1;
s=[sig1];
  for i=1:N;
      l=1:L;  
      x1=exp(j*2*pi*(len*f1(1,i)*(l-1)*sin(P1))/c);
      a1=x1.';
      a=[a1];
      S(:,i)=a*s(:,i);
  end
  %a=[a1.';a2.'];
 noise=hilbert(randn(N,1));
 %noise=randn(L,N)+j*randn(L,N);
 SNR=-10;
 for i=1:L
     
 z(:,i)=sigmerge(S(i,:).',noise,SNR);
end
z=z.';
 %z=S+noise;

 [gamma,rr,atom]=mp_f_K_Pi(N,z(1,:)); 
 gamma

 numm=90; 
 for fyin=0:numm         
           fyin1=fyin*pi/180*1;       
                  
                    All_atom=mp_doa_w(L,N,len,gamma,fyin1); 
                    Rzs1=z*All_atom';
                    R1=trace(Rzs1); 
                    err_eig_1(fyin+1)=R1;
    end
    
     
   yabs1=abs(err_eig_1);

   [m1,n1]=max(yabs1);
   doa1=(n1-1)/1
   %******************************
   num=200; 
 doa_b=doa1-num/100/2;

 for fyin=0:1:num
           fyin1=(fyin*0.01+doa_b)*pi/180;      
           All_atom=mp_doa_w(L,N,len,gamma,fyin1); 
           Rzs=z*All_atom';
           R2=trace(Rzs);
           err_eig2(fyin+1)=R2;
    end
   yabs=abs(err_eig2);

   [mm,nn]=max(yabs);

   doa=(nn-1)/100+doa_b
   
   %tt=0:1:num;
   %ttt=doa_b+tt/100;
   %yyp=yabs-max(yabs);
   %plot(ttt,-10*log(yyp),'r');
 
 
    toc

⌨️ 快捷键说明

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