%%%%%脉冲压缩
clc;
clear all;
close all;
fc=3e9;
c=3e8;
Br=150e6;%带宽
fs=2*Br;
Tp=10e-6;
Kr=Br/Tp;%频率变化率
Rmin=0;
Rmax=3e3;
tmin=2*Rmin/c;
tmax=2*Rmax/c+Tp;
t=tmin:1/fs:tmax;
R(1)=2e3;
R(2)=2e3+50;
Rcs(1)=10*exp(1i*rand(1)*2*pi);%附加随机相位
Rcs(2)=0.4*exp(1i*rand(1)*2*pi);
Nr=length(t);%回波长度
data=zeros(1,Nr);
% 生成发射信号
st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);
temprangline=zeros(1,Nr);
for k=1:2
tao=2*R(k)/c;
sr=Rcs(k)*rectpuls(t-Tp/2-tao,Tp).*exp(-1i*2*pi*fc*tao).*exp(1i*pi*Kr*(t-Tp/2-tao).^2);
temprangline=temprangline+sr;
end
data=temprangline;
figure;
plot(t,real(data))
grid on;
figure;
plot(t*c/2,real(data))
grid on;
stf=conj(fft(st));
srf=fft(data);
uprate=10;%补0时使用
figure
plot(fftshift(abs(stf.*srf)))
sr_F=stf.*srf;
weight_L=round(Br/fs*Nr*1.1);%窗长
weight=hamming(weight_L);
% weight=ones(1,weight_L);
% weight=kaiser(weight_L,3);
Window_F=zeros(1,Nr);
Window_F(1:weight_L)=weight;
Window_F=circshift(Window_F,[0,-fix(weight_L/2)]);
sr_compression=ifft(fftshift(stf.*srf.*Window_F),Nr*uprate);
t=linspace(0,tmax,Nr*uprate);
sr_compression_dB=20*log10(abs(sr_compression)/max(abs(sr_compression)));
figure;
plot(c*t/2,abs(sr_compression))
figure;
plot(c*t/2,sr_compression_dB)
grid on;