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

📄 my_gde.m

📁 编写的信源分离的gde算法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%  估计信号源数目    %%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%% 
clear;clc
l=1.8;%波长
d=0.5*l;%阵元间距
xx=pi/12;yy=pi/6;tt=pi/4;  %三个信号的入射角
% 8 阵元
A=[     1 exp(-j*2*pi*d*sin(xx)/l) exp(-j*2*2*pi*d*sin(xx)/l) exp(-j*2*3*pi*d*sin(xx)/l) exp(-j*2*4*pi*d*sin(xx)/l) exp(-j*2*5*pi*d*sin(xx)/l) exp(-j*2*6*pi*d*sin(xx)/l) exp(-j*2*7*pi*d*sin(xx)/l);...
        1 exp(-j*2*pi*d*sin(yy)/l) exp(-j*2*2*pi*d*sin(yy)/l) exp(-j*2*3*pi*d*sin(yy)/l) exp(-j*2*4*pi*d*sin(yy)/l) exp(-j*2*5*pi*d*sin(yy)/l) exp(-j*2*6*pi*d*sin(yy)/l) exp(-j*2*7*pi*d*sin(yy)/l);...
        1 exp(-j*2*pi*d*sin(tt)/l) exp(-j*2*2*pi*d*sin(tt)/l) exp(-j*2*3*pi*d*sin(tt)/l) exp(-j*2*4*pi*d*sin(tt)/l) exp(-j*2*5*pi*d*sin(tt)/l) exp(-j*2*6*pi*d*sin(tt)/l) exp(-j*2*7*pi*d*sin(tt)/l)]'; %阵列流型

%%%%%%%%%%%% 
num=100;snr=5;N_gde=zeros(1,num);Pr=0;
for i=1:100
    %%%信号源
    N=40;Fd=1e4; Fc=1e5; Fs=1e6; sig=[]; 
    seq=randint(1,N,2);  sig(1,:)=dmod(seq,Fc,Fd,Fs,'fsk',2,3*Fd); 
    seq=randint(1,N,4);  sig(2,:)=dmod(seq,Fc,Fd,Fs,'ask',4); 
    t=[1:4000];
    seq=sin(2*pi*0.005*t);  sig(3,:)=amod(seq,Fc,Fs,'amdsb-tc',2); 
    
    sig=sig(:,1:1000);  % 取采样数据长度
    x=awgn(A*sig,snr); 
    %%%%%%%%%%%%   GDE     %%%%%%%%%%%% 
    [nr,nc]=size(x);
    R=x*x'/nc;
    %%%%%%%%%%%%%%%%%%
    numR=size(R,1);
    R1=R(1:numR-1,1:numR-1);
    [V1 D1]=eig(R1);
    VV=[V1 zeros(numR-1,1); zeros(1,numR)];
    VV(numR,numR)=1;
    %%%%%%%%%%%%%%%%%%
    R2=VV'*R*VV;
    pp=R2(1:numR-1,numR);
    pp=abs(pp);
    pp=sort(pp);
    pp=pp(end:-1:1);
    %%%%%%%%%%%%%%%%%%
    for k=1:numR-1
        GDE(k)=pp(k)-0.2*mean(pp);  %%% D(N)   ????????
    end
    for k=2:numR-1
        if GDE(k)<=0 & GDE(k-1)>0
            N_gde(i)=k-1;
            if N_gde(i)==size(sig,1)
                Pr=Pr+1;
            end
        end
    end
end

GDE


⌨️ 快捷键说明

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