📄 lfm2_mp_snr_1.m
字号:
tic
% the data of signal
clear;
format short;
c=3*10.^8;
L=8;
N=128*2;
fm1=0.25;%fc1=0.275;
fm2=0.32;%fc2=0.349;
Km1=0.025;
Km2=0.033;
Phia1=0;
Phia2=0;
f0=0.32;
lamta=c/f0;
len=lamta/2;
%len=1/2;
P1=8*pi/180;
P2=13*pi/180;
for nn=1:7;
snr=5*(nn-3);
Amp=sqrt(2*10^(snr/10));
t=1:N;
sig1=Amp.*exp(j*2*pi*(Km1/2*(t.^2)/N+fm1*t+Phia1));
f1=1*Km1*t/N+fm1;
sig2=Amp.*exp(j*2*pi*(Km2/2*(t.^2)/N+fm2*t+Phia2));
f2=1*Km2*t/N+fm2;
s=[sig1;sig2];
for i=1:N;
l=1:L;
x1=exp(j*2*pi*(len*f1(1,i)*(l-1)*sin(P1))/c);
x2=exp(j*2*pi*(len*f2(1,i)*(l-1)*sin(P2))/c);
a1=x1.';
a2=x2.';
a=[a1,a2];
S(:,i)=a*s(:,i);
end
%a=[a1.';a2.'];
for times=1:2
times
noise=randn(L,N)+j*randn(L,N);
z=S+noise;
sig1=z(1,:);
%**************** 信号1频率参数 ********************
[gamma1,r1,atom1]=mp_f_K_Pi(N,sig1);
gamma1;
%**************** 信号2频率参数 ********************
sig2=sig1-r1*atom1;
[gamma2,r2,atom2]=mp_f_K_Pi(N,sig2);
gamma2;
%**************** 信号1DOA ********************
doa_range1=[0 30 1];
doa_doa1=mp_doa(z,len,gamma1,doa_range1);
doa_range2=[doa_doa1-1 doa_doa1+1 0.01];
doa_1(times)=mp_doa(z,len,gamma1,doa_range2);
%**************** 信号2DOA ********************
doa_range1=[0 30 1];
doa_doa2=mp_doa(z,len,gamma2,doa_range1);
doa_range2=[doa_doa2-1 doa_doa2+1 0.01];
doa_2(times)=mp_doa(z,len,gamma2,doa_range2);
temp=0;
if doa_1(times)>doa_2(times)
temp=doa_2(times);
doa_2(times)=doa_1(times);
doa_1(times)=temp;
end
end
doa_mean1(nn)=mean(doa_1);
doa_resm1(nn)=rmse(doa_1,8);
doa_mean2(nn)=mean(doa_2);
doa_resm2(nn)=rmse(doa_2,13);
end
doa_resm1
doa_resm2
nn=-10:5:20;
semilogy(nn,doa_resm1,'r-*',nn,doa_resm2,'b-o');
%plot(nn,doa_resm,'r-*');
xlabel('SNR/dB');
ylabel('RMSE/degree');
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -