前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >雷达波形及MATLAB仿真

雷达波形及MATLAB仿真

作者头像
Gnep@97
发布2023-11-14 10:18:06
4030
发布2023-11-14 10:18:06
举报
文章被收录于专栏:Gnep's_Technology_Blog

前言

本文对雷达波形的内容以思维导图的形式呈现,有关仿真部分进行了讲解实现。


一、雷达波形

思维导图如下图所示,如有需求请到文章末尾端自取。

二、Matlab 仿真

1、SFW 的距离分辨率和距离模糊

距离分辨率

\Delta R=\large \frac{c}{2n\Delta f}

不模糊距离窗为

R_u=\large \frac{c}{2\Delta f}
①、MATLAB 源码

hrr_profile.m

代码语言:javascript
复制
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=912m

处,RCS 为

\sigma=10m^2

v=15m/s

的运动目标的合成距离像

fig3_17.m

代码语言:javascript
复制
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 长)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、雷达波形
  • 二、Matlab 仿真
    • 1、SFW 的距离分辨率和距离模糊
      • ①、MATLAB 源码
      • ②、仿真结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档