• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-06
  • 语言: 其他
  • 标签: DOA估计  

资源简介

采用共轭重排和传播算子对基本MUSIC算法做出改进,使得算法能分辨角度较近的相干信源。

资源截图

代码片段和文件信息

tic
%-------将数据共轭重排,后进行正交运算。
clc;
clear;
close all;
f=4*10^9 ;       %1 .8750e+009;% 信源载波频率
c=3e+8;
w=c/f;% 信源波长
d=w*0.4;% 
md=10;% 阵元数
th=[10 20];% 来波方向角
nd=length (th);
snr=0;%:2:30;% 信噪比
snr1=10^(snr/20);
kp=200;
% b2c=0.1;
rad=pi/180;

%--------------------------------------------------------------------------
for m=1:md
    for n=1:nd
        a (mn)=exp (-j*2*pi*d*(m-1)*sin (th (n)*rad)/w);
    end
end
%--------------------------------------------------------------------------

 for p=1:nd
    for q=1:kp
        p1=rand (11);
        p2=rand (11); % 生成两个随机数 (在0-1之间)
        sr (pq)=sqrt (-2*snr1*snr1*log (p1))*cos (2*pi*p2);    % 实部
        si (pq)=sqrt (-2*snr1*snr1*log (p1))*sin (2*pi*p2);    % 虚部
        s (pq)=sr (pq)+j*si (pq);                         % 模拟生入射信号矩阵S (t)
    end
end
%-------------------------------------------------------------------------
n=wgn (mdkp0‘complex‘);% 生成复信号高斯白噪声,md*kp阶,功率0dBW即功率为1,幅度为1
%--------------------------------------------------------------------------
x=a*s+n;% 生成模拟入射信号矩阵
%--------------------------------------------------------------------------
% X1=x(1:nd1:md);
% X2=x(nd+1:end1:md);
%%%%%%共轭PM
nm=eye(mdmd);
jiaohuan=rot90(nm);
ll=conj(x);
bn=jiaohuan*ll;
z=[xbn];%为md*2kp维的
r=z*z‘/2*kp;% 构成协方差矩阵为md维的

% K=bn(1:nd1:md);
% L=bn(nd+1:end1:md);
% rr=size(X1*X1‘+K*K‘)
% tt=size(X2*X1‘+L*K‘)
% G=[X1*X1‘+K*K‘;X2*X1‘+L*K‘];
% H=[X1*X2‘+K*L‘;X2*X2‘+L*L‘];
% P=inv(G‘*G)*G‘*H;
% Q=[P‘-diag(ones(1md-nd))];
G=r(:1:nd);
H=r(:nd+1:end);
P=inv(G‘*G)*G‘*H;
Q=[P‘-diag(ones(1md-nd))];
% D=(Q*Q‘)^(-0.5);
F=Q‘*((Q*Q‘)^(-0.5));
theta=-90:0.1:90;
for i=1:length (theta)
    AA=exp (-j*2*pi*d*(0:md-1)‘*sin (theta (i)*rad)/w);
    WW=AA‘*F*F‘*AA;
    pu(i)=abs(1/WW);

end
pu =10*log (pu );
theta=linspace (-90901801);
figure(1)
plot(thetapu‘k‘‘linewidth‘2);% thetapuu‘b‘
grid
xlabel (‘角度/\[Degree]‘) 
ylabel (‘空间谱/dB‘);
title (‘PM算法均匀线阵谱‘);

grid on

%-----------------------------------------
%-----------------------------------------
n=0;% 扫描出谱峰值并显示出估计角
for i=2:1799
    while (pu (i)>pu (i-1))&&(pu (i)>pu (i+1))&&(pu (i)>-16)
        n=n+1;
        dd (n)=pu (i);
        angle (n)=(i-901)/10  % 将采样点数转化为度,一度为10个步长
        break
    end
end

%-----在谱峰输入搜索数值----------------------------------------------------
[maxdkd]=max (dd);
for i=1:n
    doa=num2str (angle (i));
    if i        text (angle (i)dd (i)doa);% 在横坐标angle,纵坐标dd显示数值doa
    else
        text (angle (i)dd (i)doa);
    end
end
toc



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2757  2012-06-08 11:03  gong-e-pm\gongepm.asv

     文件       2775  2012-06-08 08:28  gong-e-pm\gongepm.m

     文件       2893  2012-06-01 20:20  gong-e-pm\gongepmshuju.asv

     文件       2893  2012-06-01 20:21  gong-e-pm\gongepmshuju.m

     目录          0  2014-06-29 09:55  gong-e-pm

----------- ---------  ---------- -----  ----

                11318                    5


评论

共有 条评论