📄 plane_azimuth_fre.m
字号:
function Plane_Azimuth_Fre %用MUSIC算法对面阵(平行线阵)方位角与频率进行联合估计
%%%方位角是信号与线阵的夹角
clc;
clear;
close all;
MX=16; %阵元数目
MY=2;
N=4; %信源数目
c=1500; %波速度
f=30000; %工作频率
lamda=c/f; %波长
d=0.5*lamda; %阵元间距
snap=1000; %快拍数目
snr=20;
format short
ratio=0.5;
fs=1000;
ts=1/fs;
t=(0:snap-1)/fs;
theta_in=[40,0.3;60,0.3;96,0.1;100,0.2]; %输入信号
X=Signal(t,MX,MY,N,snap,ratio,theta_in,snr,f);
Rx=X*X'/snap;
[U,R]=eig(Rx);
size(Rx);
for iii=1:MX*MY
b(iii)=abs(R(iii,iii));
end
[c,e]=sort(b);
for iii=1:(MX*MY-N)
U_n(:,iii)=U(:,e(iii));
end
Theta=0:180;
omig=0:0.01:0.5;
for ii=1:length(Theta)
for jj=1:length(omig)
a_theta=[];
for vvv=1:MY
for vv=1:MX
Temp(vv,:)=exp(j*2*pi*ratio*omig(jj)*((vv-1)*cos(Theta(ii)*pi/180)+(vvv-1)*sin(Theta(ii)*pi/180)));
end
a_theta=[a_theta;Temp];
end
P_MUSIC(ii,jj)=10*log10(1/abs(a_theta'*U_n*U_n'*a_theta));
end
end
[X,Y]=meshgrid(omig,Theta);
figure(1);
mesh(X,Y,P_MUSIC);grid on;xlabel('归一化频率');ylabel('方向角');title('平行线阵频率与方位角联合估计—MUSIC算法');
return
% %========================================信号源====均匀平行线阵====================
% %M阵元数 ,N信源数 ,snap快拍数 ,R阵元间距与波长比 ,theta 信源方位角 ,SNR 信噪比
function out=Signal(t,MX,MY,N,snap,R,theta,SNR,f0)
for ii=1:N
S(ii,:)=exp(j*2*pi*(f0*theta(ii,2)*t+0.5*2^(ii-1)*t.^2));
end
for ii=1:N
A1=[];
for jj=1:MY
for jjj=1:MX
Temp(jjj,:)=exp(j*2*pi*R*theta(ii,2)*((jjj-1)*cos(theta(ii,1)/180*pi)+(jj-1)*sin(theta(ii,1)*pi/180)));
end
A1=[A1;Temp];
end
A(:,ii)=A1;
end
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 + -