DDMA信号处理以及数据处理的流程---随机目标生成
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; % 目标速度初始化为0speedMax = 25; % 目标速度的最大值speedMin = -25; % 目标速度的最小值% 随机生成目标的速度,范围为[speedMin,speedMax]while (speedInit == 0)speedInit = round(rand(1,1)*(speedMax-speedMin))-speedMax;endif speedInit < 0 %目标速度的小于0,目标从远靠近rangeInit = 125;elserangeInit = 2 + abs(targetLo); %目标从近到远endangleInit = asind(targetLo/rangeInit); %目标角度初始化target = [rangeInit, speedInit, angleInit, targetLo]; %目标信息生成
end
targetUpdate.m介绍
随着帧数的变化,目标的径向速度以及角度会发生变化(假设目标的径向速度不变),targetUpdate.m文件主要目的是对生成目标的径向距离以及角度进行更新。
%% 目标信息更新
function target = targetUpdate(parameter,target)for targetIdx = 1:1:parameter.targetNumstargetRange = 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; %角度更新endend
generateMovingTarget.m介绍
generateMovingTarget.m是生成移动的目标,当frameNumLoops为0时,会生成新的目标且目标列表更新并生成下次目标生成的随机帧号;且每帧都会进行目标信息更新
%% 生成动态目标
function [parameter,target] = generateMovingTarget(parameter,target)parameter.frameNumLoops = parameter.frameNumLoops - 1; %frameNumLoops% 如果frameNumLoops为0,则生成新的目标if parameter.frameNumLoops == 0newTarget = generateNewTarget(); % 生成新目标parameter.targetNums = parameter.targetNums + 1; %目标数增加target = [target ; newTarget]; %target更新parameter.frameNumLoops = generateRandFrame(); %生成随机帧号endtarget = targetUpdate(parameter,target); %目标信息更新end
至此,本片文章就此结束了。
相关文章:

DDMA信号处理以及数据处理的流程---随机目标生成
Hello,大家好,我是Xiaojie,好久不见,欢迎大家能够和Xiaojie一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程,本系列文章将从目标生成、信号仿真、测距、测速、cfar…...
爬虫实现思路
现在的人工智能太强大了,只要有问题,输入后就能给出大致的实现思路;我看了下确实没问题,只需要更改一些细节基本就能拿来就用;下面是我实验经历: 问题: c# 书写爬虫爬取按动物名称,…...

神经网络 torch.nn---Non-Linear Activations (ReLU)
ReLU — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) 非线性变换的目的 非线性变换的目的是为神经网络引入一些非线性特征,使其训练出一些符合各种曲线或各种特征的模型。 换句话来说,如果模型都是直线特征的…...

【微服务】使用kubekey部署k8s多节点及kubesphere
kubesphere官方部署文档 https://github.com/kubesphere/kubesphere/blob/master/README_zh.md kubuctl命令文档 https://kubernetes.io/zh-cn/docs/reference/kubectl/ k8s资源类型 https://kubernetes.io/zh-cn/docs/reference/kubectl/#%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E…...

目标检测数据集 - 垃圾桶满溢检测数据集下载「包含VOC、COCO、YOLO三种格式」
数据集介绍:垃圾桶满溢检测数据集,真实场景高质量图片数据,涉及场景丰富,比如城市道边垃圾桶满溢、小区垃圾桶满溢、社区垃圾桶满溢、农村道边垃圾桶满溢、垃圾集中处理点垃圾桶满溢、公园垃圾桶满溢数据等。数据集标注标签划分为…...
6.9总结(省赛排位赛1)
省赛排位赛1省赛排名赛1 - Virtual Judge (vjudge.net) 思路: 其实就是一个斐波拉契数列,当前项前两项之和,先将范围内的数全部存起来放进一个数组,再进行累加查询 代码: #define _CRT_SECURE_NO_WARNINGS 1 #incl…...
58.CountdownLatch
用来进行线程同步协作,等待所有线程完成倒计时。 构造参数用来初始化等待计数值,await方法用来等待计数归零,countDown方法用来让计数减一。 CountdownLatch普通使用 @Slf4j public class CountdownLatchDemo {public static void main(String[] args) {CountDownLatch c…...

Java数据结构准备工作---常用类
文章目录 前言1.包装类1.1.包装类基本知识1.2.包装类的用途1.3.装箱和拆箱1.3.1.装箱:1.3.2.拆箱 1.4 包装类的缓存问题 2.时间处理类2.1.Date 时间类(java.util.Date)2.2.DateFormat 类和 SimpleDateFormat 类2.3.Calendar 日历类 3.其他常用类3.1.Math类3.2.Rando…...
SD 使用教程
SD 换脸步骤 使用Stable Diffusion (SD) 进行换脸的基本步骤可以从以下几个方面概述,这里以一种常见的方式为例,结合了插件的使用来简化流程: 准备工作 安装必要的软件和插件:首先,确保你已经安装了Stable Diffusion…...
Sylar---协程调度模块
协程调度模块: 首先是协程任务类FiberAndThread,包括协程,函数,指定的线程;提供了五个构造函数,只传协程的智能指针,只传函数对象,传协程智能指针的指针,函数对象指针,还…...
iOS Hook 崩溃
0x00 崩溃重现 被 Hook 的类,是这样的: interface ViewController : UIViewController endimplementation ViewController - (void)loadView {[super loadView];NSLog("%s", __func__); }- (void)test {NSLog("%s", __func__); }-…...

区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测
区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现LSTM-ABKDE长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现LSTM-ABKDE长…...
linux内核下rapidio(TSI721)相关笔记汇总
1 驱动的安装 和 主要功能(doorbell, DMA, rionet)的简单测试 linux5.4 下使用rapidio(tsi721)的笔记记录_kernel-rapidio-CSDN博客 2 机理分析 linux内核下,rapidio网络系统建立的过程(枚举 和 发现)_linux rapidio-CSDN博客 linux内核下,(rapidio)T…...
从GPT-4到GPT-4o:人工智能的进化与革命
从GPT-4到GPT-4o:人工智能的进化与革命 近期,OpenAI推出了最新版本的人工智能模型——GPT-4o,引发了广泛的关注和讨论。在这篇文章中,我们将对GPT-4o进行全面评价,包括与前一版本GPT-4的对比分析,GPT-4o的…...

【Java】/*抽象类和接口*/
目录 一、抽象类和抽象方法 1.1 概念 1.2 特性 1.3 作用 二、接口 2.1 概念及定义 2.2 特性 2.3 实例:笔记本电脑 2.4 一个类可以实现多个接口 2.5 一个接口可以继承多个接口 2.6 Comparable接口 2.7 Comparator接口 2.8 Cloneable接口 2.9 浅拷贝和深…...

TCP/IP协议介绍——三次握手四次挥手
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议…...

[C++]基于C++opencv结合vibe和sort tracker实现高空抛物实时检测
【vibe算法介绍】 ViBe算法是一种高效的像素级视频背景建模和前景检测算法。以下是对该算法的详细介绍: 一、算法原理 ViBe算法的核心思想是通过为每个像素点存储一个样本集,利用该样本集与当前像素值进行比较,从而判断该像素是否属于背景…...

Apache Doris 基础 -- 数据表设计(模式更改)
用户可以通过schema Change操作修改现有表的模式。表的模式主要包括对列的修改和对索引的修改。这里我们主要介绍与列相关的Scheme更改。对于与索引相关的更改,可以查看数据表设计/表索引,查看每个索引的更改方法。 1、术语 基本表(Base Ta…...

【机器学习】【遗传算法】【项目实战】药品分拣的优化策略【附Python源码】
仅供学习、参考使用 一、遗传算法简介 遗传算法(Genetic Algorithm, GA)是机器学习领域中常见的一类算法,其基本思想可以用下述流程图简要表示: (图参考论文:Optimization of Worker Scheduling at Logi…...

电子电气架构 ---车载安全防火墙
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...