⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtex5.m

📁 阵列信号处理:DML和ULA的Monte-Carlo仿真
💻 M
字号:
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
% 程序功能:本例为DML和ULA的Monte-Carlo仿真                          %
% 程序员:王浩 harvey                                                %
% 日期:20071106                                                     %
% 备注:  当信源相干时,MUSIC不能处理,因此本例利用了其他DOA算法     %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%function dbtex5

%*******************************************%
%         参数定义
%*******************************************%
lambda =0.03; %波长
D =0.45*lambda; %阵元间距
T =35; %快拍数;
K =12; %数字阵通道数
theta=d2r([-5 0]); %目标角度,目标数由角度的个数给出
phi =zeros(size(theta')); %目标角度
SNRtrial = [-10 -5 0]'; %每个阵元的信噪比dB
alpha =d2r([20 210])'; %目标信号的开始相位
dalpha =d2r([0 -10])'; %快拍间的相移,表示目标在以常速运动
dist=Inf*ones(size(theta')); %源的距离,Inf指无穷大
tgtModel = 'const'; %仿真的目标类型
%noiseModel ='rndnw'; %仿真的噪声类型
noiseModel ='rndn'; %仿真的噪声类型

 doaStart=d2r([-4 1]);
 Ntrial=10;
 
%*******************************************%
%         运行命令
%*******************************************%
ant =defant('isotropULA',[K,D]); %定义天线,各向同性的均匀线阵
Ndoa=size(doaStart,2);
NSNRtrial=size(SNRtrial,1);
doaMean=zeros(NSNRtrial,Ndoa);
doaStdDev=zeros(NSNRtrial,Ndoa);
doaStdDevCRB=zeros(NSNRtrial,Ndoa);
noTgt=size(theta,2);

for nSNR =1:NSNRtrial
    fprintf('nSNR=%d\n',nSNR);
    edoaAll=[];
    SNR=ones(size(theta',1),1)*SNRtrial(nSNR,1);
    RssHat=zeros(noTgt,noTgt);
    for nTrial=1:Ntrial
        fprintf(' nSNR= %d,nTrial= %d,Total= %d\n',nSNR,nTrial,(nSNR-1)*Ntrial+nTrial);
        
 %产生仿真信号收到的天线信号,具体各参数含义请参考doc compsim4函数说明       
[sig,tgtSig] =compsim4(ant,lambda,T,tgtModel,[theta',phi,SNR,alpha,dalpha,dist,eye(size(theta',1))],noiseModel,eye(K));

%估计DOA:s
edoa=sdoapar1('dml',sig,doaStart);
pdoapar(edoa)
edoaAll=[edoaAll;edoa];
 %edoaAll=[edoaAll;getm(edoa.doa,1,':',':')'];


%以下估计目标信号的相关矩阵
RssHat=RssHat+(1/T)*tgtSig*tgtSig';

end% for nTrial
doaMean(nSNR,:) =mean(edoaAll);
doaStdDev(nSNR,:)=std(edoaAll);
doaStdDevCRB(nSNR,:)=crbdet(ant,theta,RssHat,T,lambda)
end%for nSNR

fprintf('\nMean of DOA:s[degrees]\n')
fprintf('DOA1 DOA2\n')
disp(r2d(doaMean))
fprintf('Standard deviation of DOA:s[degrees]\n')
fprintf('DOA1 DOA2\n')
disp(r2d(doaStdDev))
fprintf('Standard deviation Cramer Rao Bound of DOA:s[degrees]\n')
fprintf('DOA1 DOA2\n')
disp(r2d(doaStdDevCRB))

figure
plot(SNRtrial,r2d(doaStdDev(:,1)),SNRtrial,r2d(doaStdDev(:,2)),SNRtrial,r2d(doaStdDevCRB(:,1))) 
title('Standard deviation of DOA');
legend('Target1','Target2','CRB')
xlabel('SNR ');
ylabel('[degrees]');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -