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

📄 music.m

📁 此算法是DOA估计中多重信号分类算法(MUSIC)算法
💻 M
字号:
tic                                 %程序计时开始
clear;
clc;

n=0:1/255/1000:1/1000;              %时间长度1ms,采样频率256KHz

w1=4000*pi;
s1=sin(w1*n);
subplot(3,1,1);
plot(s1);		                     %输入正弦信号1,频率f1=1KHz

w2=8000*pi;
s2=sin(w2*n);
subplot(3,1,2);
plot(s2);		                     %输入正弦信号2,频率f2=2KHz

S=[s1;s2];                           %输入信号矩阵

cita1=pi/3;                          %信号1方位角30度
cita2=pi/2;                        %信号2方位角135度

M=[0:7];			                     %阵元数M=6
ratio=1/2;                            %波长间距比

a1=exp(j*2*pi*ratio*M*cos(cita1));
a2=exp(j*2*pi*ratio*M*cos(cita2));
 A=[a1.' a2.'];		                 %方位角矩阵

N=randn(length(M),length(n));    	 %白噪声矩阵

X=A*S+0.5*N;			                 %阵元输出信号

Rx=X*X'/length(s1);		             %求自相关矩阵
    
[V,D]=eig(Rx);			             %自相关矩阵的特征分解,,得到特征值矩阵和与特征值一一对应的特征向量矩阵

for i=1:length(M);                    %对特征值排序
    P(i)=D(i,i);
end;

[Q,index]=sort(P);                    %将与特征值对应的特征向量也按照特征值的顺序排列

for i=1:length(M)-4;                  %取排了序的特征向量的前4个来构造噪声子空间En
    En(:,i)=V(:,index(i));
end;

a=[0:180];                           
m=M';
a_cita=exp(j*2*pi*m*ratio*cos(pi*a/180));

temp=En'*a_cita;

for b=1:180;
    fanshu=norm(temp(:,b));
    out(b)=1/fanshu^2;		        %进行谱峰搜索
end;

subplot(3,1,3);
plot(out);

toc                                 %%程序计时结束

⌨️ 快捷键说明

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