%阵元数:10 %精度:1° %每个角度组采样次数:100 %一个自写的双目标估计代码(非均匀噪声) clc; clear; close all; addpath("../代码/"); for snr=[-20,-15,-10,-5,0,5,10,15,20] for K=[50,80,100,200,500] N = 10; %阵元个数 %K = 1000; %快拍数(对于每个角度,信号在时间轴上的采样点个数) dd = 0.5; %阵元间距 d = 0:dd:(N-1)*dd; %生成等间距序列 c = 1500; %声速 f = 1500; %频率 lamda = c/f; %波长 tscale = 0.05; dt = tscale/K;%时间步长 t = 0:dt:(K-1)*dt; B1 = 1; B2 = 1; S1 = B1*exp(1j*2*pi*f*t); S2 = B2*exp(1j*2*pi*f*t); S = [S1;S2]; %snr = 10; signal_x = []; cor_x = []; data_y = []; for theta = -90:1:89 A1 = exp(-1i*2*pi*d'.*sin(theta*pi/180)/lamda); A2 = exp(-1i*2*pi*d'.*sin((theta+1)*pi/180)/lamda); A=[A1,A2] X = A*S; %输出信号矢量 for i = 1:100 X_noise=[] for j=1:N temp=Noise(X(j,:),'red',snr) X_noise=[X_noise;temp] end signal_x=[signal_x;reshape(X_noise,1,N*K)]; F=[]; y=[]; Rx=X_noise*X_noise'/K; %生成协方差矩阵。K是快照数 F=reshape(Rx,1,N*N); cor_x=[cor_x;F]; y = [y,theta]; y = [y,theta+1]; data_y=[data_y;y]; end end data_y = data_y+90; save(['train_' num2str(snr) '_18000sample_' num2str(K) '.mat'],'signal_x','cor_x','data_y'); end end