基于压缩感知的DOA估计程序

程序可运行,有图有真相,MATLAB得事先装好cvx优化包。

clc;

clear;

close;

lambda=1;

d=lambda/2; %阵元间距离,取为入射波长的一半

K=500; %采样快拍数

theta=[-5 10]; %入射角度

SignalNum=length(theta); %入射信号数量

Nnum=5; %%阵列阵元数量

SNR1=-10; %%信噪比

Aratio=sqrt(10^(SNR1/10)); %信号幅度与噪声幅度比值,并假设信号幅度为1

Fs=5*10^3; %信号频率

Fc=[2*10^3,5*10^3,8*10^3]; %入射信号频率

fs=20*10^3;

thetatest=(-90*pi/180:1*pi/180:90*pi/180); %theta角度搜索范围

thetanum=length(thetatest);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%计算信号协方差矩阵%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

T_Vector=(1:K)/fs;

A=zeros(Nnum,SignalNum);

SignalVector=zeros(SignalNum,K);

%NoiseVector=zeros(Nnum,K);

Xt=zeros(Nnum,K);

%%构造A矩阵

for k2=1:SignalNum

for k1=1:Nnum %1:12

At(k1)=exp(j*(k1-1)*2*pi*d*sin(theta(k2)*pi/180)/lambda);

A(k1,k2)=At(k1);

end

end

%%%构造信号矩阵和噪声矩阵

for k1=1:SignalNum

SignalVector(k1,:)=exp(j*2*pi*Fc(k1).*T_Vector); %信号

end

Xtt=A*SignalVector;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐