✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
随着科学技术的发展,现在的许多领域中都需要知道有用信号的确切方向.从而对信号的精确测向提出了很高的要求.目前,测向算法已经已经被广泛应用到雷达,通信等许多领域中.本论文中介绍了MUSIC算法原理及其硬件实现. 在以往对空间信号的测向上的研究大多是对空间信号的一维DOA估计.本论文首先分析了MUSIC算法的基本原理.接着本文介绍了基于立体阵的二维DOA估计.接着本文对用MATLAB语言实现的计算机仿真结果进行分析比较,其结果对工程的实现有一定的参考价值.
⛄ 代码
%矩形阵列MUSIC算法空间谱图
clc;clear;close all;
twpi=2*pi;
rad=pi/180;
deg=180/pi;
kelm=8;
n=100;% 快拍数
snr=10;% 信噪比
theta = [10 30 50];
fe = [15 25 35];
dd=0.5;% 阵元间隔
iwave=3;% 目标数
d=0:dd:(kelm-1)*dd;
A0=exp(1i*twpi*d.'*(sin(theta*rad).*cos(fe*rad)))/sqrt(kelm);
Al=exp(1i*twpi*d.'*(sin(theta*rad).*sin(fe*rad)))/sqrt(kelm);
S=randn(iwave,n);
X0=[];
for im=1:kelm
X0=[X0;A0*diag(Al(im,:))*S];
end
X1=awgn(X0,snr,'measured');
Rxx = X1*X1'/n;
[EV,D] = eig(Rxx);%求特征值和特征向量
[EVA,I] = sort(diag(D).');%特征值按升序排列
EV = fliplr(EV(:,I));%左右翻转,特征值按降序排列
Un = EV(:,iwave+1:end);%噪声子空间
for ang1 = 1:90
for ang2 = 1:90
thet(ang1) = ang1-1;
phim1 = thet(ang1)*rad;
f(ang2) = ang2-1;
phim2 = f(ang2)*rad;
ax = exp(1i*twpi*d.'*sin(phim1)*cos(phim2));
ay = exp(1i*twpi*d.'*sin(phim1)*sin(phim2));
SP(ang1,ang2) = 1/(kron(ay,ax)'*Un*Un'*kron(ay,ax));
end
end
SP=abs(SP);
SPmax=max(max(SP));
SP=SP/SPmax;
h = mesh(thet,f,SP);
set(h,'Linewidth',2)
xlabel('elevation(degree)')
ylabel('azimuth(degree)')
axis([0 90 0 90 0 1])
zlabel('magnitude(dB)')
⛄ 运行结果
⛄ 参考文献
[1] 张西托, 饶伟, 胡冬梅,等. 基于非均匀线阵和修正MUSIC算法的DOA估计[J]. 火力与指挥控制, 2009(S1):3.
[2] 朱莉, 张国权, 王光明. 基于均匀圆阵相干信源DOA估计的改进MUSIC算法[J]. 上海航天, 2009(1):4.
[3] 王月瑜. 基于MUSIC算法的二维DOA估计[D]. 哈尔滨工程大学.