📄 music2.m
字号:
function music2()
clear
sita=[-45 -30 31 ];
sym k;
d=0.8;%d已经对半波长归一化
m=length(sita)+4;
snap=100;
snr=5;
k=length(sita);
SNR=ones(k,1);
for h=1:k;
SNR(h)=snr;
end
sita=sita*pi/180;
for q=1:k;
h=1:m;
A(h,q)=exp(-j*pi*(h-1)*d*sin(sita(q))); %A:m*k matrix 方向矩阵
end
n=randn(m,snap)*0.5+j*randn(m,snap)*0.5; %n m*snap 噪声
Q=diag(sqrt(2*((10*ones(k,1)).^(SNR/10)))); %信号幅值;
s=Q*(randn(k,snap)+j*randn(k,snap)); %信号矩阵
x=A*s+n; %阵列输出矩阵m*snap
R=x*x'/snap;
[v1,v2]=eig(R);
%注:v1的每列为对应v2特征值的特征矢量 ,v2的特征值是从左到右依次增加的
u=-pi/2:pi/1000:pi/2;
h=(0:m-1)'; %(m-1)*1列矢量
for z=1:length(u);
a=exp(-j*pi*h*d*sin(u(z)));%m*1列向量
tmp=a'*v1(:,1:m-k);%1*(m-k)行向量;v1(:,1:m-k)是噪声子空间
p(z)=1/(tmp*tmp');
end
p=10*log(p);
plot(u/pi*180,p,'r:'),title('MUSIC算法');
pause
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -