威望0
积分7946
贡献0
在线时间763 小时
UID1
注册时间2021-4-14
最后登录2024-11-21
管理员
- UID
- 1
- 威望
- 0
- 积分
- 7946
- 贡献
- 0
- 注册时间
- 2021-4-14
- 最后登录
- 2024-11-21
- 在线时间
- 763 小时
|
- %%%利用盖式圆半径法进行信源数目的估计
- % close all;
- clear all;clc
- f=[420,420]*10^6;
- fs=2*420*10^6;
- c=3e8;
- numda=c/max(f); %波长
- d=numda/(2);
- N=516;%%快拍数
- M=5;%%阵元数
- P=2; %%信源数
- doa=[15,30]*pi/180;%来波方向
- SNR=10;
- coef=10^(SNR/20);
- % A=rand(N,P);
- n=[1:M]';
- 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=[x_ref5.';x_ref6.';x_ref7.';x_ref8.'];
- % 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);
- [U1,D1]=eig(R1);%%R1特征分解
- DD=diag(D1);
- oo=zeros(length(U1(:,1)),1);
- U=[U1 oo;oo' 1];
- S=U'*R*U;
- Cmm=sum(S(1:M-1,M));
- dd=[sqrt(Cmm.*DD);1];
- 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)
- %%%各阵元输出信号的协方差矩阵的特征值分解
- [V,D]=eig(R);
- d1=diag(D);
- lambtal=d1;
- % [lambtal,p]=sort(d1);%%lambtal按升序排列 k输出的是每个值所在的行后或列
- % lambtal=(fliplr(lambtal'))';
- % V=V(:,p);
- % % z=fliplr(z);
-
-
- %%%产生空间谱函数
- VV=V(:,K+1:M);
- % en=en/norm(en);%%归一化
- angel=[0:0.1:90];
- angel1=[0:0.1:90]*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=[0:0.1:90];
- angel1=[0:0.1:90]*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)')
- %%源数目的估计
复制代码 |
|