• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: matlab  music  平滑  

资源简介

MUSIC算法 [1] 是一种基于矩阵特征空间分解的方法。从几何角度讲,信号处理的观测空间可以分解为信号子空间和噪声子空间,显然这两个空间是正交的。信号子空间由阵列接收到的数据协方差矩阵中与信号对应的特征向量组成,噪声子空间则由协方差矩阵中所有最小特征值(噪声方差)对应的特征向量组成。这是我当时学music算法时自己总结并注释过,很好懂

资源截图

代码片段和文件信息


clear all;
clc;
p=3;  %入射信号数目
M=8;  %阵元个数
L=1;  %将阵列划分为相互重叠的L个子阵  
m=M-L+1;  %每个子阵中的阵元个数
fc=1e9;  %入射信号中频为1G
DOA=[202122]/180*pi; %信号入射DOA
fs=3*fc;  %采样频率
N=512;  %采样个数
snr=10;  %信噪比
T=1/fs;  %采样时间间隔
c=3e8;  %波速
d=c/fc*0.5;  %阵元间距
t=0:T:(N-1)*T;  %采样时间区间
s1=sqrt(2)*cos(2*pi*fc*t);
s3=2*s1;%信号数据
s2=sqrt(2)*cos(2*pi*(fc+2e8)*t);
s4=sqrt(2)*cos(2*pi*(fc+3e7)*t);
%s3=sqrt(2)*cos(2*pi*(fc+5e8)*t);
%s4=5*s1;
s5=sqrt(2)*cos(2*pi*(fc+9e8)*t);;
s6=sqrt(2)*cos(2*pi*(fc+1e7)*t);
ss=[s1;s2;s3;s4;s5;s6];
s=ss(1:p:);
%%%%%%%%计算阵列流形矩阵A
A=zeros(Mp);
for k=1:p
    for kk=1:M
        A(kkk)=exp(-j*2*pi*fc*(kk-1)*d*sin(DOA(k))/c);
    end
end
y=A*s;
y=awgn(ysnr);%阵列接收数据
R=y*y‘/N;
[vdd]=eig(R); %对协方差矩阵进行特征值分解
%%%%%计算噪声子空间
if(dd(11)>dd(22))
    Un=v(:p+1:M);
else
    Un=v(:1:(M-p));
end
do=-90:90;
pu1=zeros(1length(do));
kg=1;
for k=-90:90
    a=zeros(M1);
    for kk=1:M
        a(kk1)=exp(-j*2*pi*fc*(kk-1)*d*sin(k/180*pi)/c);
    end
    pu1(1kg)=abs(1/(a‘*Un*Un‘*a));
    kg=kg+1;
end
hold on;
%测量谱峰值
 DOA_guji1=[];
double(pu1);
double(DOA_guji1);
l=length(pu1);
for i=2:l-1
    if (pu1(i)>pu1(i+1)&&pu1(i)>pu1(i-1)&&pu1(i)>1)
        DOA_guji1=[DOA_guji1i-90-1];
    end
end
DOA_guji1




rf=zeros(mm);
rb=ze

评论

共有 条评论