维迪雅Viswanathan, MathWorks
无线工程师可以使用软件定义的无线电硬件作为一系列无线工程任务的成本效益高、实时的平台,包括无线实验室和现场现场测试的实时射频信号和定制无线电功能的快速原型。使用MATLAB®和仿真软金宝app件®,用户可以从设计和模拟通信算法到生成针对Xilinx的生产实现®Zynq®-7000所有可编程SOC和ADI模拟设备AD9361 RF敏捷收发器。
在我们的演示期间,我们将展示如何:
Vidya Viswanathan是MathWorks印度公司的一名应用工程师,专门从事数字信号处理应用的设计和实现。她与跨领域的客户密切合作,帮助他们采用MATLAB®和仿真软金宝app件®.她的兴趣领域包括FPGA和ASIC设计,无线通信和图像处理。Vidya拥有m.s. Ramaiah Institute of Technology的电子和通信工程学士学位,以及Indian Institute of Technology Hyderabad的通信和信号处理硕士学位。
记录:2020年9月24日
欢迎来到MathWorks关于使用MATLAB和Simulink开发软件无线电的网络研讨会。金宝app我的名字是Vidya Viswanathan,我是MathWorks印度的一名应用工程师,专攻无线设计和FPGA实现。如果你对所展示的内容有任何疑问,我请求你在WebEx窗口的问答窗口中发布它们。我们会在最后花几分钟时间来解决这些问题,或者我们会跟进你的问题。
如果您遇到任何物流方面的问题,您可以在聊天窗口与我们联系。在网络研讨会期间,你的屏幕上会弹出一些投票问题。我请求你留意WebEx窗口右侧的投票问题。有了这个,让我们开始会话。
那么什么是软件定义的无线电系统?如果我必须简单地将其放在简单的条件下,软件定义的无线电是物理层功能是一个软件定义或软件编程的无线电。SDR的可编程性使得在任何时间点都能升级到设计,添加新功能,以及算法的重用。
所以这里是我们如何查看SDR系统。有一个模拟前端,使用本地振荡器和混频器进行直接RF转换。有数据转换器可以在数字域中获取数据。并且您拥有SDR的数字前端,负责高速率数字信号处理算法,如数字上转换下转换,IQ平衡,DC偏移校正。然后,您将具有智商数据修正的基带处理。
我们认为这样的系统可以由商业,现成的硬件建造。这是一个这样的系统的一个例子。您拥有连接到FPGA评估板的基于FMC的可调RF卡,其又连接到运行Matlab或Simulink等环境的桌面计算机,使用如千兆以太网,您可以用来调整RF参数金宝app中心频率和RF倾斜。
那么为什么实际上看看软件定义的无线电的实现工作流程是重要的,因为无线电现在已经过了几年了?因此,除了使用无线电的传统应用外,还存在迅速增长的无线通信领域。随着一切连接,甚至是非传统应用,就像公共安全,监控,医学监测,农业监测,智能电表,已经开始使用尖端的无线技术。此外,新的无线标准的出现,如5G,LTE和V2X也在实现这一目标。然而,这需要对系统的适应性更高,需要快速设计,模拟和原型无线电。在这方面,软件定义的无线电可以被视为对这些应用程序的完美拟合,是的。
尽管特别提款权的想法听起来很吸引人,但在开发这一系统时也存在一些挑战。考虑到sdr的性质,创建健壮的系统需要许多不同的技能集,从基带dsp、射频和天线分析、硬件和软件架构设计、FPGA或硬件设计,以及嵌入式软件开发等等。它们各自都是一个领域,所需要的技能集和所使用的设计环境是非常不同的。所以要成为所有这些领域的专家实际上是很困难的。因此,需要有一个公共的设计环境,可以处理多个领域,并允许每个领域的专家轻松协作。这就是这节课背后的想法,看看MATLAB和Simulink如何作为共同的开发平台。金宝app
在开始工作流程之前,下面是Orolia这样的组织如何使用MathWorks基于模型的设计工作流为紧急定位信标开发接收器的示例。虽然他们在通信系统设计或该领域有很多经验和专业知识,但他们在FPGA设计方面的经验有限。所以他们明白这实际上会花费大量的设计时间,这也会影响他们想出第一个原型的时间。因此,在Simulink和HDL Cod金宝apper的帮助下,他们能够将FPGA实现时间减少50%,使他们有更多的时间进行快速算法创新和技术进步,同时仍然能够轻松地满足他们紧迫的期限。
因此,让我们更详细地了解所涉及的工作流。因此,您可以将软件无线电开发的阶段大致定义为四个方面。系统建模,它只涉及对整个系统的模拟,以识别潜在的设计问题。算法开发完成后,可以结合MATLAB和Simulink做硬件前端,用真实信号进行测试。金宝app一旦您使用它来获得对已开发算法的信心,设计过程的下一部分将涉及硬件和软件开发,用于原型和使用MATLAB中的验证基础设施或框架进行快速验证。这个过程的最后一部分包括硬件的独立开发和与外设的集成。
让我们更详细地看看第一步,这是整个信号链的建模和仿真,基带,射频前端,以及测试框架。MATLAB和Simu金宝applink为无线设计人员提供了在单一环境中建模多领域系统的能力,因此允许用户分析不同组件之间的相互关系,以及一个组件如何影响另一个系统的性能。在MATLAB和Simulink中,以库函数和块集的形式,您有大量的波形生成能力以及算法开发能力。金宝app
您可以设计和架构RF前端,并包括系统中非线性的影响。您还可以设计数据转换器,如模数转换器或DAC,最后将SIM集成为天线的影响以及传播信道。因此Matlab提供了丰富的库函数和图形用户界面,以生成不同无线标准的标准兼容波形,如5G,LTE,WLAN,Zigbee,NFC以及蓝牙低能量。您还可以重用此框架来设计自定义波形并为它们提供参数化。
Matlab和Simulink中的处理能力还使您能够从波形生成开始的完整物理层开发金宝app,包括信道和RF损伤和实用接收器的损伤和设计的效果。标准的端到端链路电平模拟有几个示例以及您可以用作算法开发的起点的基于非标准的无线系统。这些都以MATLAB代码和SIMULINK模型的形式提供,可以根据您所做的系统轻松配置和修改。金宝app
通过将物理层设计与RF前端的行为方面集成,您创建的系统或端到端仿真、链路级仿真的保真度可以进一步提高。射频前端模型的引入,使用户能够开发出更实用、更健壮的接收机。通过射频模块集对射频前端进行仿真,可以使用该框架与射频前端结合MATLAB和Simulink进行基带闭环仿真,运行完整芯片。金宝app
还有一组可用的模块,可用于商业,现成的rf前端收发器,如模拟设备AD9361和AD9371收发器。金宝app这些行为模型已经针对实验室中的实际硬件设置进行了测试,我们已经能够将仿真模型和硬件模型之间的结果相关联。因此,如果您正在进行涉及这些RF收发器的SDR平台,可以将这些模型直接插入基带算法。
还有许多参考示例,显示如何使用收发器模型连接基带处理。我们现在看看一个例子。我这里有一个基于QPSK的发射机,其中基带算法在Simulink中定义,连接到我的AD9361的发射机型号。金宝app然后存在通道表示,该信道表示也又连接到AD9361接收器,并且对解调的算法发生在那里。而且你看到了星座以及错误率估计。
所以仔细看看AD9361接收机架构实际上给你洞察这个特殊的模型有完整的收发器模型的体系结构,包括射频前端、模拟和数字滤波器的系列,和模拟到数字转换器,AGC AD9361收发机中。如果你感兴趣,你可以在屏幕上看到的链接中下载这些型号的射频收发器。如果您正在进行定制的射频前端设计,这里有多个示例向您展示如何使用射频发射器和接收器模型模拟实际的无线电,同样,这些示例包括LTE、WLAN、5G以及基于非标准协议的无线电。
因此,让我们进入SDR设计的下一部分,即使用流式射频数据验证算法。这里,我们看到的是基带处理和测试基础设施仍然在MATLAB和Simulink环境中。金宝app然而,我实际用于测试基带处理的数据来自真实的生活场景。
因此,您可以将MATLAB与多个射频仪器和SDR平台直接连接,以实现对真实信号的过DL无线电测试。你可以得到一个接近实时的射频数据流到MATLAB中,我说接近实时的原因是因为你会受到接口传输速率和主机性能的限制。但你可以引入连续的数据,然后用它来进行进一步的算法设计或下游分析。因此,这有助于在开始研究设计的硬件和软件方面之前验证设计。这是通过系统对象和块来实现的,可以帮助您轻松地连接到不同的SDR平台,并调整无线电参数。
让我们来看一个例子,说明如何通过SDR平台捕获FM广播信号并将其引入MATLAB。所以第一步是配置或连接无线电硬件。所以你有一个连接硬件的功能。然后可以开始配置某些参数,如中心频率、基带采样率,以及数据类型的样品,你收到,然后使用捕获函数实际记录数据到一个文件或一个变量在MATLAB工作空间。
在这个例子中,我创建了一个文件用来捕获FM信号。一旦我有了这个文件,我可以使用基带文件读取器将它导入MATLAB。一旦它被引入到MATLAB环境中,你可以用它来做任何类型的分析,或者你也可以把它传递给接收器。
所以,在这里,我创建了一个频谱分析仪,我实际上要看的频率接收捕获的FM银行。所以你可以在这幅图中看到光谱图以及你观察到的关于这个信号的光谱图。同样的事情也可以复制到LTE信号,你可以从真实场景中捕捉到MATLAB环境,并执行cell搜索。
和之前看到的一样,我第一次连接到无线电物体。然后我使用Capture函数来获取接收到的波形,我将它收集几秒钟。然后我用LTE工具箱的功能来做细胞搜索并找出信号的细胞ID。你可以看到检测到的细胞ID或记录的细胞ID实际上与我期望的或我看到接收到的相匹配。这可以帮助你验证你开发的算法是否足够健壮以及是否需要进一步的修改来适应细胞带来的实际损伤。
因此,让我们实际上看到这种无线电流实际支持的不同SDR平台以及Matlab环境中的RF信号捕获是什么。金宝app您可以在此处查看SDR平台的列表。如果您也有兴趣在这些配置的细节上了解更多信息,我会请求您实际单击链接,其中包含支持包的链接。金宝app
好了,现在我们看了关于SDR设计的两个不同方面。一个是计算系统建模,另一个是用真实生活信号进行算法和验证。因此,让我们进入SDR开发的下一个方面,这基本上涉及将算法划分为硬件和软件组件,然后开始在实现平台上进行原型设计,实现平台可以是FPGA,也可以是片上系统平台。
这包括RDL代码为针对fpga的设计,以及针对处理器的C代码能够沟通两者之间以及射频前端,做一个完整的实现或原型在任何这些标准发展的港口。所以如果你仔细看看我们目前正在开发的无线参考算法,我们用于开发这些参考算法的框架与硬件实现工程师实际在研究的框架是非常不同的。我的意思是,如果你考虑我们之前建立的无线参考算法,它主要是在一个数据向量或一个数据框架上工作。我们假设我们有一个可用的计算数据块。我们做的大多数运算都是浮点精度的。
然而,如果你看硬件实现方面,重要的是要理解你将如何处理流比特,因为数据样本不断进来,以及你可以如何使用固定点架构。所以这两个方面是不一致的,我们要看的是找出一种方法来平滑从无线参考算法到硬件实现的过渡。这需要几个中间步骤,这是我们接下来会详细讲解的。
所以如果你真的看一看与无线算法设计相关的工作流,你可以——第一步将整个方面分为三个不同的部分。首先是刺激因素。第二个是参考算法。第三部分是你想对结果做的任何验证或分析。因此,我可以编写一个测试脚本,或者我可以使用MATLAB框架中的现有示例来创建不同种类的波形,我将这些波形输入到参考算法中。然后我可以再次使用MATLAB环境来进行可视化,或者我可以用它来得到误差矩阵。
现在,一个重要的方面就是让它更能代表硬件上实际实现的东西就是把这个参考算法转换成一个基于样本或基于流的过程。这是我们使用MATLAB和Simulink环境的结合。金宝appMATLAB更基于脚本,非常适合处理大型数据矩阵。而Sim金宝appulink,由于它是在软件的基础上工作的,并且内置了时间的概念,所以它可以用来更好地表示基于样本的过程。
因此,我们将研究如何将参考算法转换为基于样本的处理,并开始引入流的性质,并相应地修改算法。另一个重要方面,当你处理流数据,是能够找出什么时候你已经开始了选票样本,你什么时候结束数据,所有这些中间,有多少已经有效样本。所以我们可以创建那些控制信号,这也将帮助你与MATLAB黄金参考的比较。
因此,一旦我以这样的方式归档我的模型,它实际上考虑了图片中的一些硬件方面,所涉及的下一步是固定点量化。MATLAB和SIMU金宝appLINK允许您从浮点修改信号的数据类型,即默认数据类型为固定点表示,这适用于您正在查看的硬件架构。重要的是选择正确的固定点数据类型,因为这不仅控制算法的准确性,而且还可以控制它在FPGA平台上占用的资源量。在固定点设计器的帮助下,您可以将MATLAB和SIMULINK浮点算法转换为等效的固定点表示。金宝app在每个阶段,您可以将其与您开始的金色参考进行比较,以查看所引入的量化量以及它是否在您正在寻找的错误容忍范围内。
所以对无线设计,我们试图缓解这个过渡的过程参考算法到hardware-friendly版本的介绍无线HDL工具箱,基本上由硬件ip streaming-based无线设计,它们以一种非常友好的方式工作在FPGA架构上。我们也有一套参考应用程序,你可以用它作为不同标准的起点,5G、LTE、WLAN或任何自定义配置。您可以使用无线HDL工具箱中的模块创建您的参考Simulink模型。金宝app这样做的好处是,一旦您创建了这个系统并将它与最初的参考进行了比较,您就可以使用代码生成技术从这个环境中实际生成可合成的开放RTL代码。
因此,就像我们在FPGA方面的详细介绍一样,Simulink也可以用来表示软件方面。金宝app如果你真的看这个模型,我只是把它简化成两个方面,算法一是FPGA上的目标。算法二是处理器上的内容。
所以从这个模型中,我可以在HDL Coder和Embedded Coder的帮助下,生成相应的编程语言,HDL Coder生成HDL Verilog, Embedded Coder生成CC++代码。如果你仔细看一下这个表示,这是我们将高级表示如Simulink的算法转换成代码的形式这是迈向硬件实现的一步。金宝app但是如果你看看最终的硬件平台你将运行它,有另一个重要的方面实际上出现在图片中,除了FPGA和处理器方面,这是两者和外设之间的互连。
所以这些相互联系对算法设计的影响是非常重要的。因此,尽管有一个从算法模型到算法代码的直接过渡,但由于这些互连的一些影响,当直接插入硬件环境时,这些代码可能会也可能不会直接工作。所以我们的想法是从这个算法模型过渡到更接近我的硬件平台的样子,这主要是我们下一个方面要看的。
除了FPGA算法和处理器算法之外,Simulink还允许您模拟FPGA和处理器之间的互连。金宝app如果它与外部内存环境交互,在这种情况下引入的延迟是什么?如果您使用的是基于axis的寄存器,那么与之相关的不同配置是什么?FPGA和处理器交互的I/ o是什么?所有这些方面都可以首先模拟,以及你的算法。这给了你一个更现实的观点,你将期待从你的硬件,这是启用SoC块集。
在此过程中涉及的不同步骤将是模拟硬件架构以及算法,然后将其部署到原型FPGA或SoC平台上。第三步也可以做的是分析硬件的结果并将其带回MATLAB模拟环境中去真正理解操作系统的影响或者是否有真实的输入流细节,输出样本以及核心算法实际利用了多少资源。如果你已经能够模拟整个系统,然后如果你在代码生成的过程中,你可以更放心,你可以期待的硬件,你已经发现了一些潜在的问题和纠正的算法。
因此,下一个方面将是提出一个独立的实现这个审查,你不仅要考虑算法方面,而且还要考虑互连。这是通过参考设计实现的。让我们来看看一个例子,看看这个系统是如何被开发出来的,通过一个简单的模型。
我在这里考虑的示例是一个5G cell搜索参考应用程序。因此,您可以看到一个重要的方面是创建5G参考波形,这可以在5G工具箱的帮助下轻松完成。然后你必须定义或构建你的单元搜索算法,它将运行在你自己的硬件上,可能有某些部分会运行在你的软件上。
在这种情况下,我有一个搜索控制算法,我在我的软件上运行,它帮助我选择最强的SS块,也纠正频率偏移,并帮助确定cell ID。因此,该软件组件实际上提供了作为FPGA的输入,频率偏移以及子载波间距。而解调的解码,实际上是找出SSS, PSS,以及cell ID,实际上是在硬件方面实现的,这是FPGA代码。
因此,就像我前面提到的,您可以使用无线HDL工具箱中的参考示例,它由一个Simulink模型组成,该模型实际执行完整的单元格搜索。金宝app该Simu金宝applink模型可以用MATLAB环境中的数据刺激进行测试。因此,您可以使用5G工具箱创建一系列测试波形,将其输入Simulink模型,并将从MATLAB黄金参考和Simulink模型得到的结果进行比较。金宝app这一步很重要的原因是你可以看到延迟的效果以及定点结构带来的量化效果。有一整套的中间信号,你可以点击它们,你可以对它们进行编辑分析或比较。
因此,一旦您用模拟的数据集测试了这个特定的算法,接下来所涉及的步骤就是包括架构方面的模拟,如果可能的话,引入从流中捕获的射频信号。因此,我们在这里看到的是NR单元搜索算法的模型,其中相同的FPGA逻辑由接收器算法组成。我也有处理器模块,内存接口模拟器,以及射频数据转换器。这就是Xilinx RFSoC架构的代表。
因此,如果您实际上仔细查看子系统的FPGA部分,可以看到单元搜索接收器的Simulink模型,您可以观察到这是一个完全使用固定点表示的模型。金宝app这基本上提供了您正在检测到的细胞ID。因此,这是模型的处理器部分,由任务管理器组成,以及将数据发送到主计算机中的能力。所以现在,我可以模拟这个整个系统,它基本上由捕获的RF数据和算法组成,看看PSS被发现的点或SSS解调完成。而且除了仅仅是算法方面之外,还包括由于也被使用的存储器接口而引入的一些延迟。
现在,我模拟了整个系统并且对硬件环境的完整开发有了信心。这个过程涉及的下一个方面就是在硬件上实现它。在我们在硬件支持包中提供的参考设计的帮助下,您可以针对不同的FPGA和SoC平台。金宝app
你可以在屏幕上看到两个链接。这由一组不同的硬件参考设计,基本上这不仅帮助你然后选择算法代码生成的代码还集成了其他的产品设计,和你产生特定的硬件的位流,你看。下载188bet金宝搏在这个例子中,我实际上已经通过连接到这个前端Simulink模型来编程RFSoC,并直接在RFSoC硬件上运行硬件和软件方面。金宝app
我也可以使用它来实际上绘制某些信号并实际上了解PSS搜索和解调的硬件状态。所以这是来自我正在探测的硬件的数据。并且您还可以看到处理器在解码的单元格ID中发送,以及PSS和SSS SNR值,通过使用UDP接收块,我可以在Matlab环境中恢复。这有助于您了解SDR平台的完整原型制作和开发框架。我作为一个例子rfsoc,但像我之前提到的那样,我们在这个工作流程中提供了一整套硬件。金宝app
因此,在我们研究支持的不同平台之前,我还想让你们注意到另一个客户成功的故事。金宝appRF Pixels使用这个特定的工作流程在Zynq RFSoC硬件上定位其LTE参考算法。同样,在HDL Coder的帮助下,他们能够减少实际提出第一个原型的时间,他们能够更容易和更快地进行设计的迭代,从而将迭代时间从几周减少到几天。这里还有这篇文章的链接。如果你有兴趣了解更多关于他们如何使用这个工作流的细节,你可以看看这个。
所以这里是我们支持目标的不同SDR平台的快照。金宝app当我说这些是用于定位的支持平台时,我的意思是除了算金宝app法代码外,对于这些特定的硬件平台,我们还提供了可用的参考设计。但是,您也可以使用生成的代码。如果您可以使用自定义参考设计创建或集成,您也可以重用此框架以针对定制自定义SDR平台。
为了开始特别提款权的开发,我们再一次把一些参考应用放在一起。根据系统的规模,可以在不同的硬件环境中实现这些功能。因此,你将看到一整套基于5G或LTE或qpsk的系统,它们正在RFSoC或基于zynq的SDR系统上建模和测试。
如果我必须总结,我们已经看到MATLAB和Simulink可以作为无线开发的统一平台,这涉及到算法的设计,包括基带、射频前端、天线和信道效果。金宝app然后,你可以通过连接到真实的仪器或射频测试仪器和SDR平台,通过我们拥有的集成工作流和我们必须连接到这些硬件的支持来验证这个算法。金宝app一旦验证了算法,就可以使用代码生成技术来实际针对已开发到FPGA、处理器或片上系统环境的算法。
因此,如果您有兴趣了解更多关于我为软件定义的无线电开发所介绍的基于模型的设计工作流,您实际上可以访问MathWorks网站中的SDR页面。这有一组白皮书,视频,以及参考例子,你可以用来开始这个工作流,它将涵盖你刚刚在这个网络研讨会中看到的所有方面。如果您正在与RFSoC开发委员会合作,我们有一个专门的页面来实际讨论我们支持RFSoC平台的方式。金宝app因此,我们再次提供了链接,我们可以看到有什么参考例子,这是可用的,以及我们提供什么样的支持,关于RFSoC的目标。金宝app
如果你想在这个特定的工作流程中获得更多的实践经验,我们提供一系列的培训。这些实习培训范围从无线通信算法设计,也可以是HDL代码生成的一部分,或者它可能是在软件开发或Linux操作系统的定制这个完整的软件定义的无线电Zynq平台上,我们只是看着。如果您有兴趣根据您的需求定制这些培训课程,以使其更适合您正在处理的需求,我建议您联系MathWorks中的培训服务团队,并在那里提供链接,以便与他们联系。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。