- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)