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

📄 dft_coherence.m

📁 基于DFT的快速DOA估计
💻 M
字号:
function DFT_Coherence()
% WSS iteration ----1-D , 相干  统计特性

clear all;

%全局变量定义
%-------------------------------------------- 
degrad=pi/180;
ii=sqrt(-1);
M=10; %阵元数
K=3;
d=0.5;
th=[-30 10 45];%角度间隔小于10度,不能分辨
TIMES = 50;
% snr = [-5:0.2:5,10:5:20];
snr = [-5:20];
%--------------------------------------------
%信源
%--------------------------------------------
Pd=TIMES*length(snr);
Fd=1;% Fd is the sampling rate of the message signal.
Fs=4*Fd;
R1=0.5;
Delay=5;
%No=1;
M1=4;

tmp = [0:M-1]';
A = exp(ii*2*pi*d*tmp*sin(th*degrad));

%信源
%--------------------------------------------
        x1=randint(Pd,1,M1);
        y1=modmap(x1,Fd,Fs,'qask',M1);
        [rcv_a1,ti]=rcosflt(y1,Fd,Fs,'fir/sqrt/Fs',R1,Delay);
        s1=amodce(rcv_a1,10,'qam');
        s2=(0.6+ii*0.8).*s1;
        s3=(0.8+ii*0.6).*s1;        

for i = 1:length(snr)
    SNR = snr(i);
    sn=[1;1;1]*SNR;
    for j = 1:TIMES

%--------------------------------------------
%生成离散信号
%--------------------------------------------
        tt=(i-1)*TIMES+j;
        S=[s1(tt).';s2(tt).';s3(tt).'];
        nr=randn(M,1);
        ni=randn(M,1);
        Z=nr+ii*ni; %每路噪声方差为2 ?.
        Ps=S*S';%  (N*N)  
        ps=diag(Ps);%平均功率(p*1)
        refp=2*10.^(sn/10);%10*log10(S/N)=SNR
        tmp=sqrt(refp./ps);
        S2=diag(tmp)*S;%构造信号(N*nn),信噪比为sn
%--------------------------------------------
%协方差矩阵
%--------------------------------------------
        X=A*S2+Z;%阵列接收信号  (M*nn)     

        NN = 2^20; %  FFT
        y = fft(X,NN);

        Sample(j,:) = SearchDFT1(y,NN,K,d);
       
    end
    Sample
    
    mean = sum(Sample)/TIMES;
    ESample = zeros(1,K);
    DSample = zeros(1,K);
    for j = 1:TIMES
        u = abs(Sample(j,:)-mean);
        ESample = ESample+u;
        DSample = DSample+(diag(u'*u))';
    end
    EX(i,:) = ESample/TIMES;
    DX(i,:) = sqrt(DSample/TIMES);
end
EX
DX

save DFTCoh_data1 EX DX snr

⌨️ 快捷键说明

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