admin 发表于 2024-1-8 08:15:27

关于MUSIC算法的改进算法,不需要已知信源数,科研取得较...

%%%利用盖式圆半径法进行信源数目的估计
% closeall;
clear all;clc
f=*10^6;
fs=2*420*10^6;
c=3e8;
numda=c/max(f); %波长
d=numda/(2);
N=516;%%快拍数
M=5;%%阵元数
P=2; %%信源数
doa=*pi/180;%来波方向
SNR=10;
coef=10^(SNR/20);
% A=rand(N,P);
n=';
A=exp(-j*2*pi*d*(n-1)*sin(doa)/numda);
X=rand(M,N);
n0=1:N;
X=A*coef*exp(-j*(2*pi*f'*n0/fs+randn(P,N)))+randn(M,N);
% X=A*coef*sin(-j*2*pi*f'*n0/fs+randn(P,M))+randn(N,M);
R=1/N*X*X';
% load E:\xinyuan_guji\终板\x_ref\极低\x_ref5.dat;
% load E:\xinyuan_guji\终板\x_ref\极低\x_ref6.dat;
% load E:\xinyuan_guji\终板\x_ref\极低\x_ref7.dat;
% load E:\xinyuan_guji\终板\x_ref\极低\x_ref8.dat;
%
% X=;
% M=4;
% data=zeros(4,(length(x_ref5))/2);
%for n=1:4
%   for k=1:(length(X(1,:)))/2
%             Idata(k)=X(1,2*k-1);
%             Qdata(k)=data(2*k);
%         data(n,k)=X(n,2*k)*sqrt(-1)+X(n,2*k-1);
%   end
%end
%
% data_length=length(data(1,:));
% R=data*data'/data_length;

%%%协方差矩阵分块
R1=R(1:M-1,1:M-1);
=eig(R1);%%R1特征分解
DD=diag(D1);
oo=zeros(length(U1(:,1)),1);
U=;
S=U'*R*U;
Cmm=sum(S(1:M-1,M));

dd=;
G=diag(dd);
SS=inv(G)*S*G;

r=zeros(M,1);
r1=zeros(M,1);

r(1:M-1,1)=S(1:M-1,M);
r1(1:M-1,1)=SS(1:M-1,M);

%r(M)=sum(S(1:M-1,M));
r=abs(r);
r1=abs(r1);
% D_N=0.2;
D_N=4./log(512);
K=0;
K1=0;
K2=0;
for k=1:M-1
   GDE=r(k)-(D_N/(M-1))*sum(r(1:M-1));
   if GDE<=0
      K=k-1; break;
   end   
end
K


clear k;
for k=1:M-1
   GDE1=r1(k)-(D_N/(M-1))*sum(r1(1:M-1));
   if GDE1<=0
      K1=k-1; break;
   end   
end
K1

L=16;
for nn=1:L
    for k=1:M-1
      GDE=r(k)-(D_N/(M-1))*sum(r(1:M-1));
      if GDE<=0
            K(nn)=k-1;break;         
      end
      
   end
end

K2=mean(K)


%%%各阵元输出信号的协方差矩阵的特征值分解
=eig(R);
d1=diag(D);
lambtal=d1;
%   =sort(d1);%%lambtal按升序排列   k输出的是每个值所在的行后或列
%   lambtal=(fliplr(lambtal'))';
%   V=V(:,p);
% %   z=fliplr(z);
         
      
      %%%产生空间谱函数
    VV=V(:,K+1:M);
%       en=en/norm(en);%%归一化
angel=;
angel1=*pi/180;
alfa=exp(-1i*2*pi/numda*d*(n-1)*sin(angel1));
pum=1./diag((alfa'*VV*VV'*alfa));
figure(1);
plot(angel,10*log10(abs(pum)));
grid on
title('music方法')
xlabel('DOA(deg)')
ylabel('amplitude(dB)')
%%源数目的估计


%%%产生空间谱函数
    V1=V(:,K1+1:M);
%       en=en/norm(en);%%归一化
angel=;
angel1=*pi/180;
alfa=exp(-1i*2*pi/numda*d*(n-1)*sin(angel1));
pum1=1./diag((alfa'*V1*V1'*alfa));
figure(2);
plot(angel,10*log10(abs(pum1)));
grid on
title('music方法')
xlabel('DOA(deg)')
ylabel('amplitude(dB)')
%%源数目的估计
















页: [1]
查看完整版本: 关于MUSIC算法的改进算法,不需要已知信源数,科研取得较...