0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用MATLAB快速实现软件接收机?

MATLAB 来源:MATLAB 作者:MATLAB 2021-05-23 10:07 次阅读

在新基建 | MATLAB 助力 5G 小基站研发(上篇)中,我们介绍了 MATLAB 在 3GPP 5G 标准学习和校验、无线信号发射和 EVM 测量、波束成形设计等方面助力 5G 小基站研发。在下篇中,我们将继续探讨 MATLAB 其他的硬核功能:

用 MATLAB 快速实现软件接收机

自动代码生成实现快速原型开发

软件质量与安全检查

5G 小基站广阔的发展前景成功地吸引了芯片厂商的关注,纷纷推出各种小基站硬件平台,例如 Intel FlexRAN 平台,NXP Layerscape 集成小基站,高通 vRAN 平台芯片组,Marvell OCTEON 系列处理器,Xilinx Zynq UltraScale+ RFSoC 等。这些硬件平台多种多样,跨越了 ASICFPGAARM、X86 等各种技术。如何将算法部署到不同的芯片硬件平台,以实现多样化的、有竞争力的产品?你可以使用 MATLAB 基于模型设计的工作流程,在高层级模型上进行设计变更、优化、测试、验证,然后自动生成跨平台的 C/C++ 或 HDL 代码和测试平台,从而加速 5G 算法部署到多样化硬件的过程。利用基于模型的设计,能够在模型层面试验不同的架构和算法,反复调整参数,预测硬件性能,并快速在 SDR、FPGA 或 SoC 硬件上自动建立原型。

(一) 用 MATLAB 快速实现软件收发信机1.1 黄金参考模型5G 工具箱提供了很多黄金参考模型,帮助你快速实现5G软件收发信机模型。案例和函数的代码是白盒的,很容易在此基础上进行修改、调试、发现和解决问题、改进性能。例子 NR PUSCH Throughput 展示了如何测量 5G 物理上行共享信道(PUSCH)吞吐量。该示例可选择配置采用 3GPP 定义的集群延迟线(CDL)或抽头延迟线(TDL)信道,也可以选择配置执行理想的或实际的同步和信道估计。为实现理想的同步和信道估计,可从信道模型中重构信道脉冲响应,用于同步接收和信道估计。选择实际同步和信道估计时,则利用 DM-RS 信号同步和解调。为了减少总仿真时间,可以使用 Parallel Computing Toolbox 并行扫描不同的 SNR 条件下的吞吐量。

例子 NR Cell Search and MIB and SIB1 Recovery (https://ww2.mathworks.cn/help/5g/ug/nr-cell-search-and-mib-and-sib1-recovery.html) 演示了如何使用 5G Toolbox 提供的函数来同步、解调和解码真实的 gNodeB 信号。该程序可用于模拟用户终端下行接收,对主信息块(MIB)和第一系统信息块(SIB1)进行解码。算法实现框图如下:

cf7172a2-b96c-11eb-bf61-12bb97331649.png

你可以将图中任何模块替换为自己的算法,此时该示例模型将变成完美的单元模块算法的测试平台,而被替换的模块则变身为性能基线模型。1.2 定点化建模工具通信算法优化收敛后,由于其计算密集的特性,一般都需要转化为定点算法,以节省硬件资源开销,最终降低产品成本,提高产品竞争力。MATLAB 的定点化工具箱 Fixed-Point Designer 提供丰富的数据类型和软件工具,可以事先在模型中测试和调试溢出及精度损失等量化效应,之后再在硬件上实现设计。直观的一项功能如下图,在定点工具的引导下探索不同的定点数据类型及其对系统数值行为所产生的量化影响。你能观察到算法中所有变量的动态范围,并确保转换后的算法在浮点表示和定点表示下具有一致的行为。

cf91f130-b96c-11eb-bf61-12bb97331649.png

图中蓝色部分是某变量在给定的一组测试用例条件下的取值范围(包括整数和小数部分),灰色部分是当前该变量的数据类型能支持的取值范围。如有溢出会红色高亮显示,定点工具会自动记录所有的溢出:

上溢出(overflow):运算结果超出了定点数的整数部分所能表示的范围,会引起数据被截取或翻转 wrap

下溢出(underflow):运算结果小数部分超出了定点数的小数部分能表示的范围,会引起精度损失

识别到溢出后可快速识别、跟踪并调试溢出、精度损失以及范围或精度浪费的问题来源,并将定点设计与理想的浮点行为进行对比。Fixed-Point Designer 还集成了优化工具 fxpopt (https://ww2.mathworks.cn/help/fixedpoint/ref/fxpopt.html),可以自动优化寻找满足给定的数值精度要求和目标硬件约束的数据类型。

% Use the addTolerance method to define tolerances for thedifferences between the original

behavior of the system, and the behavior using the optimized fixed-pointdata types.

tol = 10e-2;

addTolerance(opt, [model ‘/output_signal’], 1, ‘AbsTol’, tol);

result = fxpopt(model, sud, opt);

Starting parallel pool (parpool) using the ‘local’ profile 。。.

Connected to the parallel pool (number of workers: 4)。

+ Preprocessing

+ Modeling the optimizationproblem

- Constructing decisionvariables

+ Running the optimizationsolver

Analyzing and transferring files to the workers 。。.done.

- Evaluating new solution:cost 180, does not meet the tolerances.

- Evaluating new solution:cost 198, does not meet the tolerances.

- Evaluating new solution:cost 216, does not meet the tolerances.

- Evaluating new solution:cost 234, does not meet the tolerances.

- Evaluating new solution:cost 252, does not meet the tolerances.

- Evaluating new solution:cost 270, does not meet the tolerances.

- Evaluating new solution:cost 288, does not meet the tolerances.

- Evaluating new solution:cost 306, meets the tolerances.

- Evaluating new solution:cost 324, meets the tolerances.

- Evaluating new solution:cost 342, meets the tolerances.

- Evaluating new solution:cost 360, meets the tolerances.

◆ ◆ ◆ ◆

(二) 自动代码生成实现快速原型开发完成定点设计后,可以从定点优化模型生成面向 X86 或 ARM 的 C/C++,或用于 FPGA 和 ASIC 设计的 HDL 代码。示例 5G NR MIB Recovery Using Xilinx RFSoC Device 展示了如何将 5G 物理层算法自动生成 C/C++ 和 HDL 代码并部署在 Xilinx Zynq UltraScale + RFSoC ZCU111 评估板中。在 SoC 硬件上实现之前,可以在系统级模型上调整软硬件划分以及验证 ARM 处理器中软件算法和 FPGA 中的硬件算法。下图展示了 FR1 频段的 SSB 检测器结构,以及与搜索控制器之间传递的参数和数据。SSB 检测器分为两个功能部分:SSB 检测器下变频 DDC 和 SSB 检测搜索和解调。DDC 接收 61.44 Msps 的样本,纠正频率偏移和下采样。频率偏移值由搜索控制器提供,并被用于粗和细的频率偏移补偿算法。SSB 检测搜索和解调接受 7.68 Msps 的样本,实现两种工作方式:搜索和解调。

cfdbc6fc-b96c-11eb-bf61-12bb97331649.png

cff9cb16-b96c-11eb-bf61-12bb97331649.png

在上述算法模型的基础上,创建 SoC 顶层模型(见下图),并将硬件目标设置为 Xilinx Zynq Ultrascale+ RFSoC ZCU111 评估套件。该模型包括 FPGA 模型 soc_5GNRMIBRecovery_fpga(左)和处理器模型 soc_5GNRMIBRecovery_proc(右),它们被实例化为模型引用,分别指向 2 个 Simulink 模型。FPGA 模型包含三个子系统:发送重复,向量插值(连接到 DAC)和 5G 小区搜索接收(连接 ADC)。ARM 模型包含周期运行的搜索控制器算法,协调检测器和解码器硬件核心,以及内存读写控制与 FPGA 交换数据。顶层模型还包括 FPGA 和 ARM 之间的内存通道和内存控制器模型。

d01b7f86-b96c-11eb-bf61-12bb97331649.png

有了这样的 SoC 系统模型,便可以使用生成的测试流量或真实 I/O 数据来仿真内存与内部和外部连接,以及调度和 OS 效果;也可以快速探索不同的系统架构,估计硬件和软件分区的接口复杂度,并评估软件性能和硬件利用率。系统设计优化之后,最终利用 MATLAB 自动代码生成功能直接部署 HDL 和 C/C++ 代码到 SoC 芯片中。

(三) 软件质量与安全检查当前全球对通信基础设施的网络安全和软件质量的关注达到了前所未有的高度。除了 3GPP 对架构安全、认证和密钥管理、业务安全等标准的研究和制定外,通信设备厂商在开发产品过程中的软件质量和安全防护也是其中关键因素。据统计,高达 90% 的软件安全问题是由编码错误引起的。嵌入式系统使用手写或自动生成的 C 等编程语言代码。

C 语言允许直接访问内存等低级操作,但相关的安全风险也更高。C 语言中的某些代码构造会引入安全漏洞,恶意攻击者可以利用这些漏洞并执行代码注入、缓存溢出和弧注入等操作。如果攻击者控制了系统,后果可能是灾难性的。许多编码规范标准,如 CERT C/C++,针对不安全编码和可能导致可利用漏洞的未定义行为,提供了规则和建议。MATLAB 持续升级代码分析工具 Polyspace:可自动检查软件代码是否符合网络安全编码标准 CERT C/C++、ISO 17961 和 MISRA C:2012 Amendment 1;采用形式化方法证明在所有可能的控制流和数据流下都没有关键运行错误;以及包括编码规范、安全漏洞、代码指标和数百条其他软件缺陷的检查。

d039577c-b96c-11eb-bf61-12bb97331649.png

利用 Polyspace 检查运行在 ARM 等处理器中的 5G 算法和协议栈程序,可以提高5G小基站产品的软件质量和安全等级,保障5G通信系统的安全运行。

原文标题:新基建 | MATLAB 助力 5G 小基站研发(下篇)

文章出处:【微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2917

    浏览量

    228412
  • soc
    soc
    +关注

    关注

    38

    文章

    3737

    浏览量

    215582
  • 5G
    5G
    +关注

    关注

    1340

    文章

    47793

    浏览量

    553870

原文标题:新基建 | MATLAB 助力 5G 小基站研发(下篇)

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是北斗接收机?你了解北斗接收机吗?

    今天跟大家聊聊北斗接收机,首先北斗接收机是指用于接受北斗导航信号并解算位置、速度、时间等信息的设备。北斗接收机的使用范围非常广泛,可用于车载、船载、机载等多种交通工具,也可用于测绘、农业、气象、地震
    的头像 发表于 01-16 10:51 267次阅读
    什么是北斗<b class='flag-5'>接收机</b>?你了解北斗<b class='flag-5'>接收机</b>吗?

    北斗接收机的功能与应用

    、导航和安全,那么这时候北斗接收机便是一个非常实用的装备。它小巧、便携、高灵敏度和支持多种功能等优点,目前广泛受户外爱好者喜爱和使用。 北斗接收机 首先,它可以实现位置定位功能,通过连接卫星信号,可以
    的头像 发表于 01-16 10:28 239次阅读
    北斗<b class='flag-5'>接收机</b>的功能与应用

    二进制最佳接收原理 二进制最佳接收机实现形式有哪两种?

    二进制最佳接收原理 二进制最佳接收机实现形式有哪两种? 二进制最佳接收原理是计算机通信中的重要概念,它是指在二进制通信中通过一定的方法,使接收机
    的头像 发表于 11-27 16:19 555次阅读

    射频接收机的架构介绍

    射频接收机的架构介绍
    的头像 发表于 10-30 16:23 502次阅读
    射频<b class='flag-5'>接收机</b>的架构介绍

    GNSS接收机是什么?怎么分类的?

    GNSS接收机是什么?怎么分类的? GNSS接收机是一种用于接收全球定位系统(GNSS)信号并提供位置信息的设备。GNSS接收机使用来自全球卫星导航系统(GPS)、俄罗斯的格洛纳斯系统
    的头像 发表于 10-30 11:01 1663次阅读

    基于软件无线电的中频数字接收机技术

    电子发烧友网站提供《基于软件无线电的中频数字接收机技术.pdf》资料免费下载
    发表于 10-27 09:35 0次下载
    基于<b class='flag-5'>软件</b>无线电的中频数字<b class='flag-5'>接收机</b>技术

    基于CBOC信号的导航接收机设计与实现

    电子发烧友网站提供《基于CBOC信号的导航接收机设计与实现.pdf》资料免费下载
    发表于 10-23 10:06 0次下载
    基于CBOC信号的导航<b class='flag-5'>接收机</b>设计与<b class='flag-5'>实现</b>

    一种数字化中频接收机的研究与实现

    电子发烧友网站提供《一种数字化中频接收机的研究与实现.pdf》资料免费下载
    发表于 10-20 14:46 1次下载
    一种数字化中频<b class='flag-5'>接收机</b>的研究与<b class='flag-5'>实现</b>

    基于GPS软件接收机跟踪环路设计

    电子发烧友网站提供《基于GPS软件接收机跟踪环路设计.pdf》资料免费下载
    发表于 10-19 10:17 0次下载
    基于GPS<b class='flag-5'>软件</b><b class='flag-5'>接收机</b>跟踪环路设计

    频谱仪与接收机的区别?

    在EMC测试设备选型时,常遇到这样的问题:EMI接收机与频谱仪到底有何不同,为何EMI测试要选用接收机?本文依据CISPR16-1(GB/T6113)和GJB152,对于接收机的测试原理进行剖析
    的头像 发表于 09-21 10:28 578次阅读

    基于DSP的全球定位系统软件接收机实现方法

    本文研究了一种基于软件无线电思想的全球定位系统(GPS)软件接收机实现,重点在于其实现的整个过程都放在数字信号处理器(DSP)内采用全
    发表于 09-20 06:01

    基于FPGA的GPS接收机设计方案

    利用可编程片上系统(SOPC)技术,设计了一种基于FPGA的GPS接收机。提出了基于多普勒频域移位的捕获策略,并分析了捕获时间。基于延迟锁定环与Costas 环跟踪方法,给出接收机的SOPC实现
    发表于 09-19 06:34

    回收R&S ESu8/ESu26测量接收机ESCI3. ESCI7.ESPI3.ESPI7#电子制作

    接收机测量
    深圳市安通泰达科技有限公司
    发布于 :2023年08月02日 16:15:06

    雷达接收机噪声系数定义 接收机噪声系数是多少

    接收机是雷达系统中必不可少的的一部分,而接收机性能也关系到雷达的正作。接收机根据其系统架构可以分成:超外差接收机、宽带中频接收机、零中频
    的头像 发表于 07-21 09:38 1577次阅读
    雷达<b class='flag-5'>接收机</b>噪声系数定义 <b class='flag-5'>接收机</b>噪声系数是多少

    何用MATLAB进行电路仿真?

    本文演示如何用MATLAB进行电路仿真,测量RLC电路的电压。我用的是R2014a,不同版本软件界面稍有差别。
    的头像 发表于 05-26 09:47 2985次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>MATLAB</b>进行电路仿真?