DDMA信号处理以及数据处理的流程---随机目标生成

news2024/12/24 0:43:43

Hello,大家好,我是Xiaojie,好久不见,欢迎大家能够和Xiaojie一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程,本系列文章将从目标生成、信号仿真、测距、测速、cfar检测、测角、目标聚类、目标跟踪这几个模块逐步介绍,这个系列的文章大约是一个7-8篇左右。

最终效果如下:

整体文件的目录树如下:

本篇文章主要讲的是目标生成的部分。

目标生成部分主要是在targetGenerate目录下实现,按隔随机帧数来生成目标的随机距离、随机速度、随机角度以及随机横向距离。

generateRandFrame.m介绍

generateRandFrame.m文件主要目的是生成随机的帧数,目的是隔多少帧来生成一个新的目标。在下面代码中会在[18,23]中生成一个随机数。

%% 获取随机帧数,表征隔几帧生成一个新目标
function frame = generateRandFrame()
    frameMin = 18; %最小帧号
    frameMax = 23; %最大帧号
    %生成随机帧号,范围为[frameMin,frameMax]
    frame = round(rand(1,1)*(frameMax-frameMin))+frameMin; 
end

generateNewTarget.m介绍

generateNewTarget.m文件主要目的是生成一个新的目标,包括是在目标的径向距离、径向速度、角度、横向距离。目标的横向距离 t a r g e t L o targetLo targetLo范围在 [ − 10 , 10 ] [-10,10] [10,10]中,目标的径向速度 s p e e d I n i t speedInit speedInit范围在 [ − 25 , 25 ] [-25,25] [25,25]中,目标的径向距离是和径向速度是相关的,当径向速度小于0时,目标径向距离为 125 125 125,当径向速度大于0时,目标径向距离为 2 + a b s ( t a r g e t L o ) 2+abs(targetLo) 2+abs(targetLo),目标角度计算为 a n g l e I n i t = a s i n d ( t a r g e t L o / r a n g e I n i t ) angleInit = asind(targetLo/rangeInit) angleInit=asind(targetLo/rangeInit),最终一个新的目标为 t a r g e t = [ r a n g e I n i t , s p e e d I n i t , a n g l e I n i t , t a r g e t L o ] ; target = [rangeInit, speedInit, angleInit, targetLo]; target=[rangeInit,speedInit,angleInit,targetLo];

%% 产生一个新的目标
function target = generateNewTarget()

    loMin = -10; %横距的最小值
    loMax = 10; %横距的最大值
    %随机生成目标的横距,范围为[loMin,loMax]
    targetLo = round(rand(1,1)*(loMax-loMin))-loMax; 
    speedInit = 0; % 目标速度初始化为0
    speedMax = 25; % 目标速度的最大值
    speedMin = -25; % 目标速度的最小值
    % 随机生成目标的速度,范围为[speedMin,speedMax]
    while (speedInit == 0)
        speedInit = round(rand(1,1)*(speedMax-speedMin))-speedMax;
    end
    if speedInit < 0 %目标速度的小于0,目标从远靠近
        rangeInit = 125;
    else
        rangeInit = 2 + abs(targetLo); %目标从近到远
    end
    angleInit = asind(targetLo/rangeInit); %目标角度初始化
    target = [rangeInit, speedInit, angleInit, targetLo]; %目标信息生成
end

targetUpdate.m介绍

随着帧数的变化,目标的径向速度以及角度会发生变化(假设目标的径向速度不变),targetUpdate.m文件主要目的是对生成目标的径向距离以及角度进行更新。

%% 目标信息更新
function target = targetUpdate(parameter,target)

    for targetIdx = 1:1:parameter.targetNums
        
        targetRange = target(targetIdx,1); %目标的距离
        targetSpeed = target(targetIdx,2); %目标的速度
        targetLo = target(targetIdx,4); %目标的横距
        targetRange = targetRange + targetSpeed * parameter.frameTime; %目标距离计算
        targetAngle = asind(targetLo/targetRange); %目标角度计算
        target(targetIdx,1) = targetRange; %距离更新
        target(targetIdx,2) = targetSpeed; %速度更新
        target(targetIdx,3) = targetAngle; %角度更新
    end
    
end

generateMovingTarget.m介绍

generateMovingTarget.m是生成移动的目标,当frameNumLoops为0时,会生成新的目标且目标列表更新并生成下次目标生成的随机帧号;且每帧都会进行目标信息更新

%% 生成动态目标
function [parameter,target] = generateMovingTarget(parameter,target)
    
    parameter.frameNumLoops = parameter.frameNumLoops - 1; %frameNumLoops
    % 如果frameNumLoops为0,则生成新的目标
    if parameter.frameNumLoops == 0
        newTarget = generateNewTarget(); % 生成新目标
        parameter.targetNums = parameter.targetNums + 1; %目标数增加
        target = [target ; newTarget]; %target更新
        parameter.frameNumLoops = generateRandFrame(); %生成随机帧号
    end
    target = targetUpdate(parameter,target); %目标信息更新

end

至此,本片文章就此结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1806629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity Standard shader 修改(增加本地坐标裁剪)

本想随便找一个裁剪的shader&#xff0c;可无奈的是没找到一个shader符合要求&#xff0c;美术制作的场景都是用的都标准的着色器他们不在乎你的功能逻辑需求&#xff0c;他们只关心场景的表现&#xff0c;那又找不到和unity标准着色器表现一样的shader 1.通过贴图的透明通道做…

设计软件有哪些?效果工具篇(3),渲染100邀请码1a12

这次我们再介绍一批渲染效果和后期处理的工具。 1、ColorCorrect ColorCorrect是一种图像处理技术&#xff0c;用于调整图像的色彩和对比度&#xff0c;使其更加自然和平衡。通过ColorCorrect&#xff0c;用户可以调整图像的色调、亮度、饱和度等参数&#xff0c;以达到理想的效…

网络资源模板--基于Android Studio 实现的音乐播放器

一、项目源码获取(非开源) 关注公众号&#xff1a;《编程乐学》 后台回复&#xff1a;24060801 二、项目测试视频 网络资源模板--基于Android Studio 音乐播放器 三、项目简介 四、项目测试环境 五、项目详情设计图 1.登录注册页面介绍 <?xml version"1.0" enco…

【ai】pycharm远程ssh开发

方式1: gateway的方式是远程放一个pycharm 专业版,经常下载失败 方式2: 类似vs,源码本地,同步到远程进行运行。 参考大神的分享: Pycharm远程连接服务器(2023-11-9) Pycharm远程连接服务器(windows下远程修改服务器代码)[通俗易懂] cpolar 建议同时内网穿透 选 远程开…

你还在纠结U盘怎么选吗?小白带你来看

前言 2024年的618活动已经开始了&#xff0c;这个活动买电子产品着实是比其他时间要便宜很多。 前几天小白的一个好朋友问我&#xff1a;U盘该怎么选&#xff1f; 呃&#xff0c;本来是想写“老朋友”的&#xff0c;结果她愣是要我改成“好朋友”。 行吧&#xff0c;那就好朋…

牛客NC18 顺时针旋转矩阵【中等 数学 Java/Go/PHP/C++】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc https://www.lintcode.com/problem/161/ 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#…

Transformer 动画讲解:单头注意力和多头注意力

暑期实习基本结束了&#xff0c;校招即将开启。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。提前准备才是完全之策。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c…

用 Python 撸一个 Web 服务器-第4章:动态渲染数据

上一章中为了尽快让 Todo List 程序跑起来&#xff0c;并没有完全按照 MVC 模式编写程序。这一章就让我们一起实现一个完整的 MVC 模式 Todo List 程序首页。 使用模型操作数据 我们来分析下请求 Todo List 程序首页时&#xff0c;模型层需要做哪些事情。当一个请求到达首页视…

区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现LSTM-ABKDE长…

Web学习_SQL注入_联合查询注入

UNION 操作符用于合并两个或多个 SELECT 语句的结果集&#xff0c; UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句 中的列名&#xff0c;并且UNION 内部的 SELECT 语句必须拥有相同数量的 列。 联合查询注入就是利用union操作符&#xff0c;将攻击者希望查询的语句…

【QT5】<总览五> QT多线程、TCP/UDP

文章目录 前言 一、QThread多线程 二、QT中的TCP编程 1. TCP简介 2. 服务端程序编写 3. 客户端程序编写 4. 服务端与客户端测试 三、QT中的UDP编程 1. UDP简介 2. UDP单播与广播程序 前言 承接【QT5】&#xff1c;总览四&#xff1e; QT常见绘图、图表及动画。若存在…

[Vue-常见错误]浏览器显示Uncaught runtime errors

文章目录 错误描述正确写法具体如下 错误描述 当前端代码发生错误时&#xff0c;浏览器中出现以下错误提示。 正确写法 显然这不是我们所期望的&#xff0c;在vue.config.js中配置如下设置关闭Uncaught runtime errors显示 devServer: {client: {overlay: false}具体如下 …

Java核心: 类加载器

这一节我们来学习Java的类加载器&#xff0c;以及常用的类加载器实现URLClassLoader。 1. Java类加载器 类加载器用于将字节码读取并创建Class对象。我们知道JVM本身是用C写的&#xff0c;一开始执行的时候由C程序来加载并引导字节码的运行&#xff0c;这些由C编写的加载字节…

图神经网络(GNN)的原理及应用

什么是图神经网络 &#xff08;GNN&#xff09;&#xff1f; 图神经网络 &#xff08;GNN&#xff09; 是一种神经网络架构和深度学习方法&#xff0c;可以帮助用户分析图&#xff0c;使他们能够根据图的节点和边描述的数据进行预测。 图形表示数据点&#xff08;也称为节点&…

ENSP校园网设计实验

前言 哈喽&#xff0c;我是ICT大龙。本次更新了使用ENSP仿真软件设计校园网实验。时间比较着急&#xff0c;可能会有错误&#xff0c;欢迎大家指出。 获取本次工程文件方式在文章结束部分。 拓扑设计 拓扑介绍---A校区 如图&#xff0c;XYZ大学校园网设计分为3部分&#xff0…

硬盘坏了数据能恢复吗 硬盘数据恢复一般多少钱

在数字化时代&#xff0c;我们的生活和工作离不开电脑和硬盘。然而&#xff0c;硬盘故障是一个常见的问题&#xff0c;可能会导致我们的数据丢失。当我们的硬盘坏了&#xff0c;还能恢复丢失的数据吗&#xff1f;今天我们就一起来探讨关于硬盘坏了数据能恢复吗&#xff0c;硬盘…

请求 响应

在web的前后端分离开发过程中&#xff0c;前端发送请求给后端&#xff0c;后端接收请求&#xff0c;响应数据给前端 请求 前端发送数据进行请求 简单参数 原始方式 在原始的web程序中&#xff0c;获取请求参数&#xff0c;需要通过HttpServletRequest 对象手动获取。 代码…

如何在本地和远程删除 Git 分支

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;目前是武汉城市开发者社区主理人 擅长.net、C、python开发&#xff0c; 如果遇…

在线按模板批量生成文本工具

具体请前往&#xff1a;在线按模板批量生成文本工具

【手推公式】如何求SDE的解(附录B)

【手推公式】如何求SDE的解&#xff08;附录B&#xff09; 核心思路&#xff1a;不直接求VE和VP的SDE的解xt&#xff0c;而是求xt的期望和方差&#xff0c;从而写出x0到xt的条件分布形式&#xff08;附录B&#xff09; 论文&#xff1a;Score-Based Generative Modeling throug…