当前位置: 首页 > news >正文

基于matlab实现的多普勒脉冲雷达回波仿真

完整程序:

clear all;clc;close all;
fc=3e9;                 %载波频率
PRF=2000;       
Br=5e6;                 %带宽
fs=10*Br;               %采样频率
Tp=5e-6;                %脉宽
Kr=Br/Tp;               %频率变化率
c=3e8;                  %光速
lamda=c/fc;             %波长
Tr=1/PRF;               %脉冲重复周期
N_mc=1.5/60*PRF;        %脉冲个数
t=0:1/fs:15*Tp+Tp;      %采样时间
N_r=length(t);          %采样点数
N_target=5;             %目标个数
Rmax=c/2*15*Tp;                             %目标最大距离
R_t=Rmax*abs(rand(1,N_target));             %目标的距离
RCS_t=10*(exp(i*2*pi*rand(1,N_target)));    %目标RCS,幅度为10,相位在(0,2pi)之间随机分布
Vmax=lamda*PRF/2;                           %目标最大速度
v=Vmax*((1+rand(1,N_target))/2);            %目标速度
%% 生成目标矩阵
sr=zeros(N_mc,N_r);
for i=1:N_mc
    ta=(i-1)*Tr;
    sri=0;
    for k=1:N_target
        tao=2*(R_t(k)-v(k).*(ta+t))/c;
        srj=RCS_t(k).*rectpuls(t-tao-Tp/2,Tp).*exp(-1j*2*pi*fc*tao+1j*pi*Kr.*(t-tao-Tp/2).^2);
        sri=sri+srj;
    end
    sr(i,:)=sri;
end
%% 距离压缩前的回波
tm=(1:N_mc)/PRF;
R=c*t/2;
figure(1);
image(R,tm,255*abs(sr)/max(max(abs(sr))))  
figure(2);
plot(t*c/2,abs(sr(1,:)))         
%% 距离压缩
st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);
stf=conj(fft(st));
for i=1:N_mc
    sr(i,:)=ifft(fft(sr(i,:)).*stf);            
end
figure(3);
image(R,tm,255*abs(sr)/max(max(abs(sr))))                
figure;
plot(t*c/2,abs(sr(1,:)))                       
             
sr=fft(sr,[],1);
V=linspace(0,PRF,50)*lamda/2;
figure;image(R,V,255*abs(sr)/max(max(abs(sr))))  

http://www.lryc.cn/news/169835.html

相关文章:

  • Linux服务器中安装Anaconda+Tensorflow+Keras
  • ubuntu+.net6+docker 应用部署教程
  • Spring常见面试题总结
  • Git全套命令使用
  • 【陕西理工大学-数学软件实训】数学实验报告(8)(数值微积分与方程数值求解)
  • Vue3为什么推荐使用ref而不是reactive
  • JavaScript函数this指向
  • Java的序列化
  • 计算机二级python简单应用题刷题笔记(一)
  • Spring注解家族介绍: @RequestMapping
  • 系统架构设计师(第二版)学习笔记----信息安全系统及信息安全技术
  • 交换机的工作原理(含实例,华为ensp操作)
  • 从字符串中删除指定字符
  • Xcode14.3.1 真机调试iOS17的方法(无iOS17 DeviceSupport)
  • JWT基础
  • 关于远程工作的面试可能存在的陷阱
  • Qt5开发及实例V2.0-第一章Qt概述
  • matlab检索相似图像
  • ArrayBlockingQueue 带有三个参数的构造函数为何需要加锁?
  • 实训笔记——Spark计算框架
  • 自定义类型:结构体
  • postman如何设置才能SwitchHosts切换host无缓存请求到指定ip服务
  • LeetCode LCR 103. 零钱兑换【完全背包,恰好装满背包的最小问题】中等
  • 竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn
  • supervisord 进程管理器 Laravel执行队列
  • Lnmp架构之mysql数据库实战1
  • ChatGLM 大模型炼丹手册-理论篇
  • Spring Boot集成Redis实现数据缓存
  • CentOS 7 安装Libevent
  • 线性代数的本质——几何角度理解