




clear all
close all
clc
%% 参数设置
fs=600e6;%采样率
fc=10.45e9;% 波形发射载频
t=10e-6;%脉宽
f0=50e6;%波形中频频率
B=10e6;%带宽
u=B/(2*t);%调频斜率
Tv=100e-6;% 脉冲重复周期
Num=64;% 测速脉冲数
lamd=fs/B;% 抽取带宽
Ns=round(fs*t);
NTv=round(fs*Tv);
tt=0:1/fs:t-1/fs;
ff=0:1/t:fs-1/t;
%% 线性调频波形调制
yf=exp(1i*2*pi*((f0-B).*tt+u*tt.^2));
y_lfm=real(yf);
y_lfm_fft=fft(y_lfm);
figure
plot(tt.*1e6,y_lfm./max(y_lfm),'k')
xlabel('时间(us)')
ylabel('归一化幅度')
title('线性调频波形时域')
set(gca,'FontName','宋体','FontSize',12);
figure
plot((ff-fs/2)./1e6,abs(fftshift(y_lfm_fft))./max(abs(y_lfm_fft)),'k')
xlabel('时间(us)')
ylabel('归一化幅度')
title('线性调频波形频域')
set(gca,'FontName','宋体','FontSize',12);
%% 匹配副本处理
bellm=exp(1i*2*pi*f0.*tt);%匹配副本的下变频本振
y_match=yf.*bellm;%发射波形下变频
window_h=hamming(length(y_match));%汉明窗函数
y_match_w=y_match.*window_h';%匹配副本加窗
%% 探测目标设定
c=3e8; % 光传播速度
R=50;% 目标距离
dt=R*1e3*2/c; % 回波时延
Ndt=round(fs*dt);
v=20; % 目标径向速度
df=2*v/(c/fc);% 速度对应的多普勒频移
tt_v=0:1/fs:(Num*NTv-1)*1/fs;
fd=exp(2*j*pi*df.*tt_v);% 多普勒频率调制函数
%% 接收处理仿真
for k=1:Num;
yr(k,:)=[zeros(1,Ndt),y_lfm.*fd((k-1)*NTv+1:(k-1)*NTv+Ns)];% 回波延时
yr_n(k,:)=awgn(yr(k,:),20,'measured');% 加性噪声
tt_r=0:1/fs:(length(yr_n(k,:))-1)*1/fs;
bell_i=cos(2*pi*f0.*tt_r);% 回波下变频本振I路信号
bell_q=sin(2*pi*f0.*tt_r);% 回波下变频本振Q路信号
yr_n_i(k,:)=yr_n(k,:).*bell_i;% 正交调制
yr_n_q(k,:)=yr_n(k,:).*bell_q;% 正交调制
% yr_n_l_i(k,:)=filter(b_d,a_d,yr_n_i(k,:));% 低通滤波
% yr_n_l_q(k,:)=filter(b_d,a_d,yr_n_q(k,:));% 低通滤波
yr_n_l(k,:)=yr_n_i(k,:)+1i*yr_n_q(k,:);
yr_n_l_fft(k,:)=fft(yr_n_l(k,:));
y_match_w_fft=fft(y_match_w,length(yr_n_l_fft(k,:)));
%脉冲压缩
res_fft(k,:)=yr_n_l_fft(k,:).*conj(y_match_w_fft);
res(k,:)=ifft(res_fft(k,:));
res_c(k,:)=res(k,1:lamd:end);%等带宽抽取
end
%% 测距
res_c_1=res_c(1,:);
tt_s=0:1/fs*lamd:(length(res_c_1)-1)*1/fs*lamd;
dd_s=tt_s*c/2;
figure
plot(dd_s./1e3,-20*abs(log10(abs(res_c_1)./max(abs(res_c_1)))),'k');
ylim([-100 0])
xlabel('距离(km)')
ylabel('幅度(dB)')
title('脉冲压缩测距')
set(gca,'FontName','宋体','FontSize',12);
%% 测速
for k=1:length(res_c(1,:));
res_c_fft(:,k)=fft(res_c(:,k));
end
\~,ind_s_temp\]=max(abs(res_c(1,:))); res_v=abs(res_c_fft(:,ind_s_temp)); vv_s=0:1/(Num\*Tv)\*(c/fc)/2:(Num-1)\*1/(Num\*Tv)\*(c/fc)/2; figure plot(vv_s,res_v./max(res_v),'k'); xlabel('速度(m/s)') ylabel('归一化幅度') title('相参测速') set(gca,'FontName','宋体','FontSize',12); %% 相参处理后距离-速度三维图 res_c_fft=fft(res_c); %相参积累 figure surf(dd_s,vv_s,abs(res_c_fft)./max(max(abs(res_c_fft)))) xlabel('距离(m)') ylabel('速度(m/s)') zlabel('归一化幅度') set(gca,'FontName','宋体','FontSize',12); shading interp