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

📄 cricle_azimuth_elevation.m

📁 基于均匀圆阵的方位角和俯仰角联合估计
💻 M
字号:
function Cricle_Azimuth_Elevation%%用MUSIC算法和MNM算法对均匀圆阵方位角与俯仰角联合估计
clear all;
clc;
close all;

snap=1000;         %%快拍数
fs=1000;            %%采样频率
t=[0:snap-1]/fs;
M=16;               %%阵元数
N=4;                %%目标数
f=30e3;
K=0:M-1;
R=1/(4*sin(pi/M));
SNR=20;
XXX=X(t,M,N,snap,R,[60,70;60,40;80,40;90,30],SNR,f);%4个信号的入射角

RR=XXX*XXX'/snap;
[p,w]=eig(RR);
U_n=p(:,1:12);     %16X12
c_1=U_n(1,:);      %1X12
E_n=U_n(2:16,:);   %15X12
d_1=[1 ;(E_n*c_1')/(c_1*c_1')];
theta=0:1:180;
phi=0:1:100;
for ii=1:length(phi)
    for iii=1:length(theta)
       a_theta=exp(j*2*pi*R*cos(2*pi*K'/M-theta(iii)*pi/180)*cos(phi(ii)*pi/180));
%       p_MUSIC(ii,iii)=abs(20*log10(1/(a_theta'*U_n*U_n'*a_theta)));
      p_MUSIC(ii,iii)=20*log10(1/norm(a_theta'*U_n)^2);
%       p_MNM(ii,iii)=abs(20*log10(1/(a_theta'*d_1*d_1'*a_theta)));
      p_MNM(ii,iii)=20*log10(1/norm(a_theta'*d_1)^2);
    end
end
[X,Y]=meshgrid(phi,theta);
figure(1);
mesh(X,Y,p_MUSIC');grid on;xlabel('俯仰角/(\phi)');ylabel('方位角/(\theta)');zlabel('PMUSIC/dB');title('均匀圆阵方位角与俯仰角联合估计——MUSIC算法');
axis([0,100,0,180,-20,80]);
figure(2);
mesh(X,Y,p_MNM');grid on;xlabel('俯仰角/(\phi)');ylabel('方位角/(\theta)');zlabel('PMNM/dB');title('均匀圆阵方位角与俯仰角联合估计——MNM算法');
axis([0,100,0,180,-20,80]);
return
 %========================================信号源========================
%M 阵元数 ,N信源数 ,snap快拍数 ,R阵元间距与波长比 ,theta 信源方位角  ,phi俯仰角,SNR 信噪比
function out=X(t,M,N,snap,R,theta,SNR,f)
a=[0:(M-1)]';
for ii=1:N
    rand('state',ii)
    s(ii,:)=exp(j*2*pi*(f*t+0.5*5*2^(ii-1)*t.^2));
end
for i=1:N
    A(:,i)=exp(j*2*pi*R*cos(2*pi*a/M-(theta(i,1)*pi/180))*cos(theta(i,2)*pi/180));
end
S=s;
 X0=A*S;
  randn('state',0);
   real_noise=randn(size(X0));
    randn('state',3);
     imag_noise=randn(size(X0));
      noise0=(real_noise+j*imag_noise)/2^0.5;
       noise=10^(-SNR/20)*noise0;
 out=X0+noise;
 return

⌨️ 快捷键说明

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