基于 FPGA 的单脉冲技术:算法设计(附源码)

一、前言

本例显示了开发单脉冲技术的工作流程的前半部分,其中信号使用数字下变频(DDC)进行下变频。本例中的模型适合在FPGA上实现。本示例重点介绍单脉冲技术的设计,以估计物体的方位角和仰角。

示例的第二部分是基于FPGA的单脉冲技术:代码生成,展示了如何从实现模型生成HDL代码,并验证生成的HDL代码与行为模型相比是否产生了正确的结果。整个算法是使用定点数据类型设计的。该示例展示了如何使用相控阵系统工具箱、DSP HDL 工具箱和定点设计器设计支持 FPGA 的单脉冲技术,以匹配 Simulink中的相应行为模型。为了验证实现模型,该示例将实现模型的仿真输出与行为模型的输出进行比较。

相控阵系统工具箱作为系统对象提供了单脉冲技术的浮点行为模型。DSP HDL工具箱提供下变频滤波所必需的FIR滤波器。

定点设计器提供数据类型和工具,用于开发定点和单精度算法,以优化嵌入式硬件的性能。可以执行位真仿真来观察有限范围和精度的影响,而无需在硬件上实现设计。

单脉冲是一种技术,其中来自天线不同元件的接收回波用于估计信号的到达方向(DOA)。此方向有助于估计对象的位置。该示例使用 DSP HDL 工具箱和定点设计器来设计算法。该技术使用四个光束来测量目标的角位置。所有四个波束同时产生,方位角和仰角的差异是在单个脉冲中实现的,因此得名单脉冲。

二、设计子系统

该算法通过使用支持 HDL 代码生成的 Simulink® 块来实现。该模型假设信号是从 4 元素均匀矩形阵列 (URA) 接收的,因此,该模型有 4 个正弦波作为输入。假设一个 4 元素 URA,则模型由来自 URA 每个元素的 4 个接收通道组成。一旦信号被转换为数字域,DDC模块就会确保降低接收信号的频率,以降低处理的采样率。框图显示了由以下模块组成的子系统。

多通道输入信号

数字下变频

单脉冲和和差分通道

编辑切换为居中

添加图片注释,不超过 140 字(可选)

Simulink 模型有两个分支。顶部分支是单脉冲技术和数字下变频算法的行为浮点模型,底部分支是使用支持 HDL 代码生成的模块的功能等效定点版本。除了绘制两个分支的输出以比较两者外,还计算并绘制了两个输出的总和通道之间的差异或误差。

行为模型的输出具有延迟 (

添加图片注释,不超过 140 字(可选)

) 块。此延迟是必需的,因为实现算法使用 220 个延迟来启用流水线,这会产生需要考虑的延迟。此延迟对于在行为模型和实现模型之间对输出进行时间对齐是必需的。

三、数字下变频 (DDC)

该子系统显示了以80 MHz和近15 MHz载波频率采样的接收信号如何通过DDC下变频为基带,然后传递到单脉冲和差分子系统。DDC 模块是数控振荡器 (NCO) 和一组低通滤波器的组合。NCO 模块提供混合和解调输入信号的信号。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

实现子系统中转向矢量的和差输出处的215 ms延迟补偿了下变频链的延迟。

DDC还包含一组低通滤波器,如图所示。一旦混频,就需要对混频信号进行低通滤波,以消除高频成分。此示例使用级联滤波器链进行低通滤波。NCO为混频器生成高精度正弦波。NCO 块的延迟为 6 个周期。该信号与输入信号混合,并在通过滤波器级时从较高频率转换为相对较低的频率。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在本例中,输入信号的载波频率为15 MHz,采样频率为80 MHz。下变频过程将采样信号降至几kHz。低通FIR滤波器的系数使用.必须选择系数值以满足所需的通带标准。

编辑

添加图片注释,不超过 140 字(可选)

生成后,系数用于配置FIR滤波器模块。

四、单脉冲和和差分通道

单脉冲算法还必须为不同的元素生成转向矢量。已针对方位角 30 度和仰角 20 度的入射角生成转向矢量。转向矢量被传递到数字比较器,以提供所需的和和差通道输出。然后将下变频信号乘以这些矢量的共轭,如图所示。通过处理和和差通道,可以找到接收信号的DOA。图中显示了比较天线阵列不同元件的转向矢量的数字比较器。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在图中,数字比较器获取转向矢量,并分别计算不同转向矢量sVA,sVB,sVC和sVD的总和和差。您还可以使用 System 对象计算转向矢量,也可以使用类似于 Simulink 中基于 FPGA 的波束成形:算法设计中所示的方法生成转向矢量。一旦完成了与阵列中每个元素对应的各种转向矢量的和和差,就会计算相应方位角和仰角的和和差通道。从和差单脉冲子系统中,得到3个信号,即和差、方位差和高程差。整个算术以定点数据类型执行。使用此命令打开单脉冲和差通道子系统。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

五、将实现模型的结果与行为模型进行比较

要将实现模型的结果与行为模型的结果进行比较,请运行创建的模型以显示结果。您可以通过单击“播放”按钮或在 MATLAB® 命令行上调用 sim 命令来运行 Simulink 模型。使用示波器块比较输出帧。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

这些图显示了和和差通道的输出。这些通道可以馈送到估计器,以指示物体的角度/方向。

六、总结

此示例演示了如何设计 FPGA 就绪算法、自动生成 HDL 代码以及在 Simulink 中验证 HDL 代码。该示例说明了DDC和单脉冲馈电系统的Simulink模型设计,并使用相控阵系统工具箱中的等效行为模型作为黄金参考来验证结果。除了行为模型之外,该示例还演示了如何使用支持 HDL 代码生成的 Simulink 模块创建用于实现的子系统。它还将实现模型的输出与相应行为模型的输出进行了比较,以验证两种算法在功能上是否等效。

一旦实现算法在功能上被验证为等效于黄金参考,HDL Coder 可用于 Simulink 到 HDL 代码生成,HDL 验证器™可用于生成协同仿真模型 (HDL Coder™) 测试台。这个由两部分组成的系列的第二部分展示了如何从实现模型生成 HDL 代码,并验证生成的 HDL 代码是否产生与浮点行为模型和定点实现模型相同的结果。

七、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

下载方式一:基于FPGA的单脉冲技术:算法设计资源-CSDN文库

下载方式二:基于 FPGA 的单脉冲技术:算法设计

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何设计一个文件系统?需要考虑哪些因素?

文件系统的实现 在对文件有了基本认识之后,现在是时候把目光转移到文件系统的实现上了。之前用户关心的一直都是文件是怎样命名的、可以进行哪些操作、目录树是什么,如何找到正确的文件路径等问题。而设计人员关心的是文件和目录是怎样存储的、磁盘空间…

信息服务上线渗透检测网络安全检查报告和解决方案4(网站风险等级评定标准、漏洞危害分级标准、漏洞安全建议)

系列文章目录 信息服务上线渗透检测网络安全检查报告和解决方案3(系统漏洞扫描、相对路径覆盖RPO漏洞、nginx漏洞修复)信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)信息服务上线渗透检测网…

消防通道堵塞识别 opencv

消防通道堵塞识别系统通过opencvpython网络模型技术,消防通道堵塞识别对消防通道的状态进行实时监测,检测到消防通道被堵塞时,将自动发出警报提示相关人员及时采取措施。OpenCV的全称是Open Source Computer Vision Library,是一个…

SPI总线

目录 声明 1、 SPI简介 2、 SPI特点 2.1采用主-从模式(Master-Slave) 的控制方式 2.2采用同步方式(Synchronous)传输数据 2.3数据交换(Data Exchanges) 2.4 SPI有四种传输模式 2.5 SPI只有主模式和从模式之分。 3、 工作机制 3.1概述 3.2 Timing 声明 转自&#xf…

【资料分享】Xilinx Zynq-7010/7020工业核心板规格书(双核ARM Cortex-A9 + FPGA,主频766MHz)

1 核心板简介 创龙科技SOM-TLZ7x是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业核心板,处理器集成PS端双核ARM Cortex-A9 PL端Artix-7架构28nm可编程逻辑资源,通过工业级B2B连接器引出千兆网口、USB、CAN、UA…

抖音矩阵系统源代码开发部署--源码搭建

抖音seo矩阵系统文章目录技术囊括(一) 源代码开发配置文档 抖音SEO矩阵系统的主要架构如下源代码开发关键技术 源代码开发交付形式 短视频账号矩阵系统开发者必备能力语言? 概要 一、系统设计 1.需求分析 抖音SEO矩阵系统的主要功能是提…

string类学习

本篇将深入学习string类,通过各个测试函数玩遍cstring类,学到就是赚到!!! 文章目录 1.头文件和源文件1.1源文件1.2头文件 2.构造函数3.赋值重载函数4.元素访问运算符5.迭代器5.1正向迭代器5.2反向迭代器 6.添加字符串…

2023年java还是golang还是c#?

前言 我们可以先来看一下这三门语言各自的优劣 学习曲线:如果你是初学者或对编程相对陌生,Java可能是一个较好的选择。它有广泛的学习资源和社区支持,易于上手。Go也有简单易学的特点,但由于相对较年轻,相关的学习资…

KEIL5-MDK配色方案

改字体 复制如下代码,替换原有文件内容 global.prop文件:D:Keil_v5\UV4\global.prop # properties for all file types indent.automatic1 virtual.space0 view.whitespace0 view.endofline0 code.page0 caretline.visible0 highlight.matchingbraces1 …

Redis是什么?(详细安装步骤)

一、Redis简介🍉 背景 在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少…

C/C++编程安全标准GJB-8114解读——声明定义类

软件检测实验室在建立软件测试体系或申请cnas/cma相关资质时,需要依据相关标准,使用有效的方法开展检验检测活动,GJB-8114是一部嵌入式软件安全测试相关的国家标准,本系列文章我们就针对GJB-8114《C/C语言编程安全子集》的具体内容…

论好名字的重要性: Linux内核page到folio的变迁

一、引子 Once upon a time,Netscape的大拿 Phil Karlton曾经说过:“There are only two hard things in Computer Science: cache invalidation and naming things”,成为程序界流传甚广的名言,可见取名是计算机科学中最难的两件…