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

📄 music算法doa估计.m

📁 DOA估计(雷达来波方向估计)是雷达的重要理论
💻 M
字号:
%%%%%%%%%%%%% 8阵元阵列。2个输入信号,S1:DOA为30度,S2:DOA为40度
clear;
SNR = input ('SNR = --->');
dLamtR=1/2;
angle1=30*pi/180; %信号入射角
angle2=40*pi/180;
L=8;                                           %阵元数
Thita=-pi:0.005*pi:pi;
Atheta = exp(j * (0 : L-1)' * pi * sin(Thita));


a1=exp(j*pi*(0:L-1)'*sin(angle1));             
a2=exp(j*pi*(0:L-1)'*sin(angle2));    

N=100;
v = randn(1,8) + j * randn(1,8); %生成1行8列的高斯噪声
v=v/std(v);    %将噪声归一化
y=zeros(L,N);  %对y置零

s1=exp(j*(0:N-1)'*pi/4);
s2=exp(j*(0:N-1)'*pi/6);

y1=a1*s1.';
y2=a2*s2.';

for i=1:L
    y(i,:)=y1(i,:)+y2(i,:)+10^(-SNR/20)*v(i);   %得到y(t)
end

R=y*y'/N;                                              %相关阵近似值





[V,D]=eig(R);                                         %求特征值和特征矢量
unarranged_vaLue=diag(D);

for n=1:L                                                %对特征值进行排序
for k=n:L-1
 if unarranged_vaLue(n)<unarranged_vaLue(k+1) %如果第n个特征值小于之后的某个特征值
   	 middLe_vaLue=unarranged_vaLue(k+1);   %将第k+1个特征值赋给中间特征值
    	  middLe_vector=V(:,k+1);               %将第k+1列特征向量赋给中间向量
         unarranged_vaLue(k+1)=unarranged_vaLue(n); %将第n个特征值赋给k+1特征值
          V(:,k+1)=V(:,n);                %将第n列特征向量赋给第k+1列
          unarranged_vaLue(n)=middLe_vaLue;      %将中间特征值赋给第n个特征值
          V(:,n)=middLe_vector;       %将中间特征向量赋给第n列特征向量
      end
  end
end

for n=1:L-2
  noisespace(:,n)=V(:,L+1-n);                            %求噪声子空间
end
E = noisespace * noisespace';
for k=1:length(Thita)
    Music1(k) = 1 / (Atheta(:,k)' *E * Atheta(:,k)); 
end
    
figure;
plot(Thita*180/pi,abs(Music1));
axis([-100,100,0,50]);
title(['Music,SNR=',num2str(SNR)]);
xlabel('空间方位角(单位:度)'),ylabel('幅度');
grid

⌨️ 快捷键说明

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