线性调频波形测距测速信号处理——全代码+注释

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

相关推荐
Apipi*10 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
weixin_690654742 天前
龙迅#LT9611EX 现MIPI转HDMI1.4功能主推型号,分辨率高达4K30HZ,IC内置I2C无需外部12C控制。
嵌入式硬件·音视频·信号处理
weixin_690654742 天前
龙迅#LT7911EXS 高性价比IC,功能适用于HDMI/DP/TPYE-C转单PORT MIPICSI/DSI ,分辨率高达4K60HZ。
嵌入式硬件·音视频·信号处理
aichitang20245 天前
应用数学与音频信号处理
音视频·信号处理
沫璃染墨6 天前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
沫璃染墨7 天前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
国科安芯9 天前
星载通信载荷信号处理中抗辐射微控制器的选型与适应性分析
人工智能·嵌入式硬件·mcu·信号处理·risc-v·抗辐射·空间信息
这张生成的图像能检测吗9 天前
(综述)边缘计算 × IoT:从机器信号处理到低时延故障诊断
边缘计算·信号处理·故障诊断
weixin_419658319 天前
CAPL的数据类型(一)
车载系统·自动驾驶·汽车·信号处理
学习FPGA的电气小兴兴13 天前
基于FPGA的CORDIC旋转模式实现sin和cos运算_采用EGo1板卡上板验证【FPGA数字信号处理第5讲】
fpga开发·信号处理·数字信号处理·verilog·cordic·ego1·fpga设计入门与提高