%LFM信号的回波与脉冲压缩
%%线性调频信号
T=10e-6; %脉冲持续时间10us
B=10e6; %线性调频信号的频带宽度10MHz
Br=20e6; %接收机带宽
K=B/T; %调频斜率
f0=20e6; %中频20MHz
Fs=2*(f0+2*B);
Ts=1/Fs; %采样频率和采样间隔
N=T/Ts;
A=10;
Rmin=10e3; %距离域范围下界
Rmax=30e3; %距离域范围上界
c=3e8;
Fn=3; %噪声系数
lambda=0.03; %X波段波长
windname="rectwin";
windname2="hamming";
%目标参数设置
R=[12e3 12.5e3 18e3 25e3 25.1e3]; %目标距离
NR=length(R); %目标个数
SNR_dB=[1 5 10 20 0.1]; %目标信噪比
Vel=[0 0 0 0 0]; %目标速度
%产生回波:
Rwin=Rmax-Rmin;
Twin=2*Rwin/c;
Nwin=ceil(Twin/Ts);
tr=linspace(2*Rmin/c,2*Rmax/c,Nwin);
td=ones(NR,1)*tr-2*R'/c*ones(1,Nwin);
Dopl=2*Vel'*ones(1,Nwin)/lambda;
%噪声设置
Te=290;
k=1.38e-23;
Fnnum=10^(Fn/10);
noise_amp = sqrt(k*Te*Br*Fnnum);
noise_pow = noise_amp^2 + noise_amp^2; %复噪声功率
signal_pow =10.^(SNR_dB/10) * noise_pow;%信号功率
Amp = sqrt(signal_pow);
%LFM信号
St=Amp* (exp(1j*pi*K*td.^2 + 1j*2*pi* (f0+Dopl).*td).*( td>0 &td<T));
%噪声信号
Sn=normrnd(0,noise_amp, 1, Nwin) + 1j*normrnd(0,noise_amp,1, Nwin);
%回波叠加
Stn=St+Sn;
%频域信号
Nchirp=ceil(T/Ts); %发射脉冲采样个数
Nfft=2.^nextpow2(Nwin+Nchirp-1);
Ft=fft(St,Nfft);
Fn=fft(Sn,Nfft);
Ftn=fft(Stn,Nfft);
freq=linspace(-0.5,0.5,Nfft)*Fs;
%脉冲压缩处理
startfreq=f0+B/2-Br/2;
endfreq=f0+B/2+Br/2;
filtWn=fir1(50,[startfreq/(Fs/2),endfreq/(Fs/2)]);
STN=filter(filtWn,1,Stn);
FTN=fft(STN,Nfft);
t0=linspace(0,T,Nchirp);
Kt=sqrt(T*B)/(T*Fs);
S=Kt*exp(1j*pi*2*f0*t0+1j*pi*K*t0.^2);
FS=fft(S,Nfft);
w=window(windname,Nchirp);
Stt=S.*w';
Ftt=fft(Stt,Nfft);
Sot=(ifft(FTN.*conj(Ftt)));
So=Sot(1:Nwin);
w2=window(windname2,Nchirp);
Stt2=S.*w2';
Ftt2=fft(Stt2,Nfft);
Sot2=(ifft(FTN.*conj(Ftt2)));
So2=Sot2(1:Nwin);
t=linspace(-T/2,T/2,N);
St0=A*exp(2*1j*pi*(f0*t+K*t.^2/2));
figure(1)
subplot(211)
plot(t*1e6,real(St0),'b', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('S(t)');
title('时域线性调频信号的实部');
grid on;
axis tight;
subplot(212)
plot(freq*1e-6,fftshift(abs(fft(St0,Nfft))),'b', 'LineWidth', 1.5);
xlabel('频率/MHz');
ylabel('Magnitude');
title('线性调频信号的幅频特性');
grid on;
axis tight;
figure(2)
subplot(311)
plot(tr*1e6,real(St),'b', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('S(t)');
title('时域LFM回波信号的实部');
grid on;
axis tight;
subplot(312)
plot(tr*1e6,real(Sn),'g', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('Sn(t)');
title('噪声信号的实部');
grid on;
axis tight;
subplot(313)
plot(tr*1e6,real(Stn),'r', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('Sr(t)');
title('回波信号的实部');
grid on;
axis tight;
figure(3)
subplot(311)
plot(freq*1e-6,fftshift(abs(Ft)),'b', 'LineWidth', 0.1);
xlabel('频率/MHz');
ylabel('Magnitude');
title('LFM回波信号的幅度谱');
grid on;
axis tight;
subplot(312)
plot(freq*1e-6,fftshift(abs(Fn)),'g', 'LineWidth', 0.1);
xlabel('频率/MHz');
ylabel('Magnitude');
title('噪声信号的幅度谱');
grid on;
axis tight;
subplot(313)
plot(freq*1e-6,fftshift(abs(Ftn)),'b', 'LineWidth', 0.1);
xlabel('频率/MHz');
ylabel('Magnitude');
title('噪声+回波信号的幅度谱');
grid on;
axis tight;
figure(4)
subplot(211)
plot(tr*1e6,real(STN),'b', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('S(t)');
title('经过接收机处理后的回波信号的实部');
grid on;
axis tight;
subplot(212)
plot(freq*1e-6,fftshift(abs(FTN)),'r', 'LineWidth', 0.1);
xlabel('时间/us');
ylabel('S(t)');
title('经过接收机处理后的回波信号的实部');
grid on;
axis tight;
figure(5)
subplot(211)
plot(0.5*c*tr/1e3,abs(So),'b', 'LineWidth', 0.1);
xlabel('Range/Km');
ylabel('Amplitude');
title('距离域包络检波(原始数值)');
grid on;
axis tight;
subplot(212)
plot(0.5*c*tr/1e3,20*log10(abs(So)),'b', 'LineWidth', 0.1);
xlabel('Range/Km');
ylabel('Amplitude');
title('距离域包络检波(dB)');
grid on;
axis tight;
figure(6)
subplot(211)
plot(0.5*c*tr/1e3,abs(So2),'b', 'LineWidth', 0.1);
xlabel('Range/Km');
ylabel('Amplitude');
title('加汉明窗后距离域包络检波(原始数值)');
grid on;
axis tight;
subplot(212)
plot(0.5*c*tr/1e3,20*log10(abs(So2)),'b', 'LineWidth', 0.1);
xlabel('Range/Km');
ylabel('Amplitude');
title('加汉明窗后距离域包络检波(dB)');
grid on;
axis tight;