压缩感知doa matlab,基于压缩感知的DOA估计程序
基于压缩感知的DOA估计程序程序可运行,有图有真相,MATLAB得事先装好cvx优化包。clc;clear;close;lambda=1;d=lambda/2;%阵元间距离,取为入射波长的一半K=500;%采样快拍数theta=[-5 10];%入射角度SignalNum=length(theta);%入射信号数量Nnum=5;...
基于压缩感知的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;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)