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

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序可运行,有图有真相,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; %NoiseVector=sqrt(0.5)*(randn(Nnum,K)+j*randn(Nnum,K)); for kk=1:Nnum Xt(kk,:)=awgn(Xtt(kk,:),SNR1,'measured'); end Rx=(Xt*Xt')./K; Rs=(SignalVector*SignalVector')./K; sigm_s=Rs(:,1); % %%%%%%%%%%%%%%%%%%%%%%%%%%-----特征值分解----%M%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [V, D] = eig(Rx); % X*V = V*D DD = diag(D); % 对角阵变矢量 % [DD idx] = sort(DD, 'descend'); % 按从大往小排序特征值 Un = V(:, 1:Nnum-SignalNum); % 噪声子空间 Us = V(:, Nnum-SignalNum+1 : end); % 信号子空间 e1=[1,zeros(1,Nnum-1)].'; sigm_n=min(DD); %最小特征值^作为 的估计 I=eye(Nnum); for k1=1:thetanum Atemp0=exp(j*2*pi*d/lambda*sin(thetatest(k1))*[0:Nnum-1]).'; S(k1)=1/(Atemp0'*Un*Un'*Atemp0); end figure(1) plot(thetatest.*180./pi,10*log10(abs(S)/(max(abs(S)))));%输出功率(dB) grid on; grid on; title('Music') xlabel('方位角(度)') ylabel('输出功率(dB)') %%%%%%%%%%%%%%%%%%%%%%%%%%----构造--G--selection矩阵%%%%%%%%%%%%%% M=Nnum; G=zeros(M*M,2*M-1); J0=eye(M); G(:,M)=J0(:); %for k=1:M-1 for i=1: M-1

文档评论(0)

潮起潮落 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档