前言
本文对雷达波形的内容以思维导图的形式呈现,有关仿真部分进行了讲解实现。
一、雷达波形
思维导图如下图所示,如有需求请到文章末尾端自取。
二、Matlab 仿真
1、SFW 的距离分辨率和距离模糊
距离分辨率 Δ R = c 2 n Δ f \Delta R=\large \frac{c}{2n\Delta f}ΔR=2nΔfc
不模糊距离窗为 R u = c 2 Δ f R_u=\large \frac{c}{2\Delta f}Ru=2Δfc
①、MATLAB 源码
hrr_profile.m
function [hl] = hrr_profile (nscat, scat_range, scat_rcs, n, deltaf, prf, v, rnote,winid) % Range or Time domain Profile % Range_Profile returns the Range or Time domain plot of a simulated % HRR SFWF returning from a predetermined number of targets with a predetermined % RCS for each target. c=3.0e8; % speed of light (m/s) num_pulses = n; SNR_dB = 40; nfft = 256; %carrier_freq = 9.5e9; %Hz (10GHz) freq_step = deltaf; %Hz (10MHz) V = v; % radial velocity (m/s) -- (+)=towards radar (-)=away PRI = 1. / prf; % (s) if (nfft > 2*num_pulses) num_pulses = nfft/2; else end Inphase = zeros((2*num_pulses),1); Quadrature = zeros((2*num_pulses),1); Inphase_tgt = zeros(num_pulses,1); Quadrature_tgt = zeros(num_pulses,1); IQ_freq_domain = zeros((2*num_pulses),1); Weighted_I_freq_domain = zeros((num_pulses),1); Weighted_Q_freq_domain = zeros((num_pulses),1); Weighted_IQ_time_domain = zeros((2*num_pulses),1); Weighted_IQ_freq_domain = zeros((2*num_pulses),1); abs_Weighted_IQ_time_domain = zeros((2*num_pulses),1); dB_abs_Weighted_IQ_time_domain = zeros((2*num_pulses),1); taur = 2. * rnote / c; for jscat = 1:nscat ii = 0; for i = 1:num_pulses ii = ii+1; rec_freq = ((i-1)*freq_step); Inphase_tgt(ii) = Inphase_tgt(ii) + sqrt(scat_rcs(jscat)) * cos(-2*pi*rec_freq*... (2.*scat_range(jscat)/c - 2*(V/c)*((i-1)*PRI + taur/2 + 2*scat_range(jscat)/c))); Quadrature_tgt(ii) = Quadrature_tgt(ii) + sqrt(scat_rcs(jscat))*sin(-2*pi*rec_freq*... (2*scat_range(jscat)/c - 2*(V/c)*((i-1)*PRI + taur/2 + 2*scat_range(jscat)/c))); end end if(winid >= 0) window(1:num_pulses) = hamming(num_pulses); else window(1:num_pulses) = 1; end Inphase = Inphase_tgt; Quadrature = Quadrature_tgt; Weighted_I_freq_domain(1:num_pulses) = Inphase(1:num_pulses).* window'; Weighted_Q_freq_domain(1:num_pulses) = Quadrature(1:num_pulses).* window'; Weighted_IQ_freq_domain(1:num_pulses)= Weighted_I_freq_domain + ... Weighted_Q_freq_domain*j; Weighted_IQ_freq_domain(num_pulses:2*num_pulses)=0.+0.i; Weighted_IQ_time_domain = (ifft(Weighted_IQ_freq_domain)); abs_Weighted_IQ_time_domain = (abs(Weighted_IQ_time_domain)); dB_abs_Weighted_IQ_time_domain = 20.0*log10(abs_Weighted_IQ_time_domain)+SNR_dB; % calculate the unambiguous range window size Ru = c /2/deltaf; hl = dB_abs_Weighted_IQ_time_domain; numb = 2*num_pulses; delx_meter = Ru / numb; xmeter = 0:delx_meter:Ru-delx_meter; plot(xmeter, dB_abs_Weighted_IQ_time_domain,'k') xlabel ('relative distance - meters') ylabel ('Range profile - dB') grid
例如,假设距离像起始点为 R 0 = 912 m R_0=912mR0=912m 处,RCS 为 σ = 10 m 2 \sigma=10m^2σ=10m2,v = 15 m / s v=15m/sv=15m/s 的运动目标的合成距离像
fig3_17.m
clear all close all nscat = 1; scat_range = 912; scat_rcs = 10; n =64; deltaf = 10e6; prf = 10e3; v = 15; rnote = 900, winid = 1; count = 0; for time = 0:.05:3 count = count +1; hl = hrr_profile (nscat, scat_range, scat_rcs, n, deltaf, prf, v, rnote,winid); array(count,:) = transpose(hl); hl(1:end) = 0; scat_range = scat_range - 2 * n * v / prf; end figure (1) numb = 2*256;% this number matches that used in hrr_profile. delx_meter = 15 / numb; xmeter = 0:delx_meter:15-delx_meter; imagesc(xmeter, 0:0.05:4,array) colormap(gray) ylabel ('Time in seconds')
②、仿真结果
一个运动目标的合成距离像(4s 长)