经典MUSIC算法,在窄带远场假设的情况下信号的DOA数学模型为
则阵列数据的协方差矩阵为
式中,
分别为信号协方差矩阵和噪声协方差矩阵,对于理想空间的白噪声且功率为
。其中
,K为信号源个数,M为阵列个数。
为列满秩(秩为K),
为共轭对称矩阵。故
为M*M维的非奇异Hermitian阵,秩为K。将上述
进行特征分解得
式中,U为特征矢量矩阵,其中由特征值组成的对角阵Σ如下:
上式中的特征值满足如下关系:
进一步可以特征分解为
式中,为大特征值组成的对角阵,
为小特征值组成的对角阵。
是大特征值对应的信号子空间;
是小特征值对应的信号子空间。
,
是非奇异Hermitian阵不同特征值对应的特征矩阵,故两个子空间是正交的。
因此信号子空间中的导向矢量也是与噪声子空间正交。
经典MUSIC算法正是基于上述这个这个性质提出来的,但是考虑到实际接收数据矩阵式有限长的,即数据协方差矩阵的最大似然估计为
对进行特征分解可以计算得到噪声子空间特征矢量矩阵
。由于噪声的存在,
与
并不能完全正交,式
并不成立。因此实际上求DOA是以最小优化搜索实现的,即
所以,MUSIC算法的谱估计公式为
下面利用matlab对MUSIC算法进行仿真验证,针对均匀线阵。
参数设置:阵元数8个,信号源3个,入射角度分别为-20,0,30,快拍数为500,讨论不同信噪比、阵元数以及快拍数变化下的MUSIC算法仿真结果。
SNR表示信噪比,snap表示快拍数,M表示阵元数。可以观察到在-20°,0°,30°出现峰值。
仿真代码:
%% 仿真MUSIC算法测向
% 参数:
% 阵元数:8
% 入射信号角度:[-20 0 30]
% 信噪比:10
% 信源数:3
% 快拍数:500
clc
clear
close all
M = [8,32,128];
c = 3e8;
lamad = 0.1;
d = 0.5*lamad;
fc = c/lamad;
fs = 500;
snap = [500,250,50];
dt = 1/fs;
% t = (1:snap(1)).*dt;
SNR = [1/db2mag(10),1,1/db2mag(-10)];
for i = 1:3
%% 产生三个信号源
t = (1:snap(1)).*dt;
s1 = exp(1j*2*pi*(fc.*t+0.5*30*t.^2));
s2 =exp(1j*2*pi*(fc.*t+0.5*20*t.^2));
s3 = exp(1j*2*pi*(fc.*t+0.5*10*t.^2));
St = [s1;s2;s3];
%% 对应的导向矢量
n = 0:M(i)-1;
theta1 = -20;
theta2 = -0;
theta3 = 30;
a1 = exp(-1j*pi.*n*sin(theta1/180*pi))';
a2 = exp(-1j*pi.*n*sin(theta2/180*pi))';
a3 = exp(-1j*pi.*n*sin(theta3/180*pi))';
A = [a1,a2,a3];
%% DOA估计
Nt = zeros(M(i),length(t));
for k=1:M(i)
noise = SNR(1).*randn(1,length(t));
Nt(k,:) =noise;
end
Xt = A*St+Nt;
R = Xt*Xt'/length(t);
[U,Sigema] = eig(R);
ac = 0;
for theta = -60:1:60
ac = ac+1;
a_theta = exp(-1j*pi.*n.*sin(theta./180*pi))';
Pmusic = 1./(a_theta'*(U(:,1:5)*U(:,1:5)')*a_theta);
amplitude(ac) = abs(Pmusic);
end
f1 = figure(1);
figure(f1)
plot(-60:1:60,pow2db(amplitude/max(amplitude)))
hold on
end
figure(f1)
xlabel('角度(°)');
ylabel('归一化幅度(dB)');
legend('M=8','M=32','M = 128')