维迪雅Viswanathan, MathWorks
无线工程师可以将软件定义的无线电硬件用作一系列无线工程任务的经济高效的实时平台,包括无线实验室和现场射频信号测试以及定制无线电功能的快速原型。利用MATLAB®和Sim金宝appulink®,用户可以从设计和模拟通信算法到生成针对Xilinx的生产实现®Zynq®所有可编程SoC和模拟设备AD9361 RF敏捷收发器。
在我们的演讲中,我们将演示如何:
Vidya Viswanathan是MathWorks印度公司的一名应用工程师,专门从事数字信号处理应用的设计和实现。她与跨领域的客户密切合作,帮助他们采用MATLAB®和Sim金宝appulink®.她的兴趣领域包括FPGA和ASIC设计,无线通信和图像处理。Vidya拥有m.s. Ramaiah Institute of Technology的电子和通信工程学士学位,以及Indian Institute of Technology Hyderabad的通信和信号处理硕士学位。
9 .卡特彼勒
欢迎来到MathWorks关于使用MATLAB和Simulink开发软件无线电的网络研讨会。金宝app我的名字是Vidya Viswanathan,我是MathWorks印度的一名应用工程师,专攻无线设计和FPGA实现。如果你对所展示的内容有任何疑问,我请求你在WebEx窗口的问答窗口中发布它们。我们会在最后花几分钟时间来解决这些问题,或者我们会跟进你的问题。
如果您在物流方面遇到任何问题,您可以在聊天窗口中联系我们。在网络研讨会期间,屏幕上将弹出几个投票问题。我请求您留意WebEx窗口右侧的投票问题。有了这些,让我们开始这个课程。
那么什么是软件定义的无线电系统呢?如果我必须用简单的术语来说,一个软件定义的无线电是一个物理层功能是软件定义或软件编程的无线电。sdr的可编程性允许在任何时间点升级设计,添加新功能,以及重用算法。
以下是我们如何看待特别提款权制度。有一个模拟前端做直接射频转换与本振和混频器。有数据转换器来获得数据进出数字领域。还有SDR的数字前端,负责高速率数字信号处理算法,如数字上转换下转换,IQ平衡,直流偏移校正。然后用IQ数据修正进行基带处理。
我们认为这样的系统可以用商业的、现成的硬件来构建。这里有一个这样的系统的例子。你有FMC-based可调射频卡连接到FPGA评估板,这是依次连接到桌面计算机运行环境如MATLAB或仿真软件,使用像千兆以太网接口,你可以使用它来调整中心频率和RF射频参数倾斜。金宝app
那么,为什么对软件定义的无线电的实现工作流进行实际检查是重要的呢?因为无线电已经存在好几年了。因此,除了使用无线电的传统应用之外,无线通信的新应用领域也在迅速增长。随着一切都被连接起来,即使是非传统的应用,比如公共安全、监控、医疗监控、农业监控、智能电表,也开始使用尖端的无线技术。此外,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以及Bluetooth Low Energy。您还可以重用此框架来设计自定义波形并为其提供参数。
MATLAB和Simulink中的处理能力还可以让您从波形生成开始完成物理层开发,金宝app包括信道和射频损伤的影响,以及设计一个实际的接收器。对于基于标准和非标准的无线系统,有几组端到端链路级模拟示例,您可以将它们作为算法开发的起点。这些都以MATLAB代码和Simulink模型的形式提供,您可以根据所创建的系统轻松地配置和修改它们。金宝app
通过将物理层设计与RF前端的行为方面集成,您创建的系统或端到端仿真、链路级仿真的保真度可以进一步提高。射频前端模型的引入,使用户能够开发出更实用、更健壮的接收机。通过射频模块集对射频前端进行仿真,可以使用该框架与射频前端结合MATLAB和Simulink进行基带闭环仿真,运行完整芯片。金宝app
还有一组可用的模块和Simulink模型用于商用的、现成的射频前端收发器,如模拟设备AD9361和AD937金宝app1收发器。这些行为模型已经在实验室环境的实际硬件设置中进行了测试,我们已经能够将仿真模型和硬件模型之间的结果关联起来。因此,如果您正在使用包含这些射频收发器的SDR平台,您可以直接将这些模型插入基带算法。
还有一些参考示例,展示了如何将基带处理与收发器模型连接起来。现在让我们看一个例子。我这里有一个基于qpsk的发射机,其中的基带算法是在Simulink中定义的,它连接到我的AD9361的发射机模型。金宝app然后有一个信道表示,它也依次连接到AD9361接收器,解调算法在那里发生。你可以看到星座和错误率估计。
因此,仔细观察AD9361接收器体系结构实际上可以让您了解到,该特定型号实际上具有收发器模型的完整体系结构,包括射频前端、模拟和数字滤波器系列、模数转换器以及AD9361收发器中的AGC。如果您感兴趣,可以在屏幕上看到的链接中下载这些型号的射频收发器。如果您正在进行定制射频前端设计,那么有多个示例向您展示了如何使用射频发射机和接收机模型模拟实际无线电,同样,这些示例包括LTE、WLAN、5G以及基于非标准协议的无线电。
现在让我们进入SDR设计的下一部分,即使用流式射频数据验证算法。在这里,我们看到的是基带处理,测试基础设施仍在MATLAB和Simulink环境中。然而,我实际输入的用于测试基带处理的数据来自真实场景。金宝app
因此,您可以将MATLAB直接连接到多个RF仪器和SDR平台,以便使用真实信号对无线电进行超DL测试。您可以将RF数据流近实时地传输到MATLAB中,我之所以说近实时,是因为您将受到接口传输速率和主机性能的限制。但您可以这有助于你在开始研究设计的硬件和软件方面之前验证你的设计。这是通过系统对象和模块实现的,可以帮助你轻松连接到不同的SDR平台,也可以调整收音机参数。
让我们来看一个例子,说明如何通过SDR平台捕获FM广播信号并将其引入MATLAB。所以第一步是配置或连接无线电硬件。所以你有一个连接硬件的功能。然后可以开始配置某些参数,如中心频率、基带采样率,以及数据类型的样品,你收到,然后使用捕获函数实际记录数据到一个文件或一个变量在MATLAB工作空间。
所以我在这个例子中所做的是我创建了一个文件,在那里我捕获了FM信号。一旦我有了这个文件,我就可以使用基带文件读取器将它导入MATLAB。一旦它被带到MATLAB环境中,你可以用它做任何类型的分析,或者你也可以把它传递给你的接收器。
所以在这里,我创建了一个频谱分析仪,我实际上要看看接收到的捕获调频信号的频率。所以你们可以看到,在这个视图中,有一个光谱视图,还有一个光谱图,你们正在观察这个信号。同样的事情也可以复制到LTE信号中,您可以从真实场景捕获到MATLAB环境中,并执行小区搜索。
同样,与我们之前看到的类似,我首先连接到无线电对象。然后我使用捕获功能获取接收到的波形,并收集几秒钟。然后我实际使用LTE工具箱的功能进行小区搜索,找出信号的小区ID。所以您可以看到检测到的小区ID或记录的小区ID实际上与我预期的或我正在接收的匹配。因此,这有助于您验证您开发的算法是否足够健壮,以及是否需要进一步修改以适应小区引入的实际损伤。
让我们看看有哪些不同的SDR平台能够支持这种无线电流以及在MATLAB环境中捕获射频信号。金宝app您可以在这里看到SDR平台的列表。如果您还对了解这些配置的更多细节感兴趣,我将请求您实际单击链接,其中包含到支持包的链接。金宝app
好了,现在我们看了关于SDR设计的两个不同方面。一个是计算系统建模,另一个是用真实生活信号进行算法和验证。因此,让我们进入SDR开发的下一个方面,这基本上涉及将算法划分为硬件和软件组件,然后开始在实现平台上进行原型设计,实现平台可以是FPGA,也可以是片上系统平台。
这包括RDL代码为针对fpga的设计,以及针对处理器的C代码能够沟通两者之间以及射频前端,做一个完整的实现或原型在任何这些标准发展的港口。所以如果你仔细看看我们目前正在开发的无线参考算法,我们用于开发这些参考算法的框架与硬件实现工程师实际在研究的框架是非常不同的。我的意思是,如果你考虑我们之前建立的无线参考算法,它主要是在一个数据向量或一个数据框架上工作。我们假设我们有一个可用的计算数据块。我们做的大多数运算都是浮点精度的。
然而,如果你看硬件实现方面,重要的是要理解你将如何处理流比特,因为数据样本不断进来,以及你可以如何使用固定点架构。所以这两个方面是不一致的,我们要看的是找出一种方法来平滑从无线参考算法到硬件实现的过渡。这需要几个中间步骤,这是我们接下来会详细讲解的。
所以如果你真的看一看与无线算法设计相关的工作流,你可以——第一步将整个方面分为三个不同的部分。首先是刺激因素。第二个是参考算法。第三部分是你想对结果做的任何验证或分析。因此,我可以编写一个测试脚本,或者我可以使用MATLAB框架中的现有示例来创建不同种类的波形,我将这些波形输入到参考算法中。然后我可以再次使用MATLAB环境来进行可视化,或者我可以用它来得到误差矩阵。
所以现在,重要的方面是,将这个参考算法转化为基于样本或基于流的过程,这将使它更能代表硬件上实际实现的内容。这就是我们结合使用MATLAB和Simulink环境的地方。MATLAB更加基于脚本,非常适合处理大型数据矩阵。Simulink,因为它是在软件的基础上工作的,并且内置了时间的概念,所以它可以用来更好地表示基于样本的过程。金宝app
因此,我们将研究如何将参考算法转换为基于样本的处理,并开始引入流的性质,并相应地修改算法。另一个重要方面,当你处理流数据,是能够找出什么时候你已经开始了选票样本,你什么时候结束数据,所有这些中间,有多少已经有效样本。所以我们可以创建那些控制信号,这也将帮助你与MATLAB黄金参考的比较。
一旦我构建了我的模型,它实际上考虑了图中的一些硬件方面,接下来涉及到的是不动点量化。MATLAB和Simu金宝applink允许您修改信号的数据类型,从浮点,这是默认的数据类型,到固定点表示,这适合您正在查看的硬件架构。选择正确的定点数据类型是很重要的,因为这不仅控制了算法的准确性,而且还控制了它将在FPGA平台上占用的资源数量。在定点设计器的帮助下,您可以将MATLAB和Simulink浮点算法转换为等价的定点表示。金宝app在每个阶段,你可以将它与你开始时的黄金参考相比较看看引入的量化量是多少以及它是否在你寻找的容错范围内。
所以对无线设计,我们试图缓解这个过渡的过程参考算法到hardware-friendly版本的介绍无线HDL工具箱,基本上由硬件ip streaming-based无线设计,它们以一种非常友好的方式工作在FPGA架构上。我们也有一套参考应用程序,你可以用它作为不同标准的起点,5G、LTE、WLAN或任何自定义配置。您可以使用无线HDL工具箱中的模块创建您的参考Simulink模型。金宝app这样做的好处是,一旦您创建了这个系统并将它与最初的参考进行了比较,您就可以使用代码生成技术从这个环境中实际生成可合成的开放RTL代码。
因此,正如我们对FPGA方面的阐述一样,Simulink也可以用来表示软件方面。如果你真的看一下这个模型,我只是把它简化为两个方面,算法一是FPGA上的目标。算法二就是金宝app处理器上的算法。
所以从这个模型中,我可以在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块,还可以纠正频率偏移并帮助确定小区ID。因此,软件组件实际上向FPGA提供了一个输入,频率偏移以及子载波间隔。在硬件方面,即FPGA代码中,实际实现了解调解码以实际找出SSS、PSS以及小区ID。
因此,就像我前面提到的,您可以使用无线HDL工具箱中的参考示例,它由一个Simulink模型组成,该模型实际执行完整的单元格搜索。金宝app该Simu金宝applink模型可以用MATLAB环境中的数据刺激进行测试。因此,您可以使用5G工具箱创建一系列测试波形,将其输入Simulink模型,并将从MATLAB黄金参考和Simulink模型得到的结果进行比较。金宝app这一步很重要的原因是你可以看到延迟的效果以及定点结构带来的量化效果。有一整套的中间信号,你可以点击它们,你可以对它们进行编辑分析或比较。
因此,一旦您用模拟的数据集测试了这个特定的算法,接下来所涉及的步骤就是包括架构方面的模拟,如果可能的话,引入从流中捕获的射频信号。因此,我们在这里看到的是NR单元搜索算法的模型,其中相同的FPGA逻辑由接收器算法组成。我也有处理器模块,内存接口模拟器,以及射频数据转换器。这就是Xilinx RFSoC架构的代表。
因此,如果您实际上仔细查看子系统的FPGA部分,您可以看到单元搜索接收器的Simulink模型,您可以观察到这是一个完全使用定点表示的模型。金宝app这基本上给出了你正在检测的细胞ID。这是模型的处理器部分,它包括一个任务管理器以及将数据发送到主机的能力。现在,我可以模拟整个系统,它基本上是由捕获的射频数据和算法组成的,来看看在什么点发现了PSS或SSS解调完成了。这还包括,除了算法方面,一些由于内存接口被使用而引入的延迟。
所以现在,我已经模拟了整个系统,并对我的硬件环境的完整开发充满信心。因此,这个过程中涉及的下一个方面是在硬件上实现这一点。在我们提供的参考设计的帮助下,您可以针对不同的FPGA和SoC平台请参阅硬件支持包。金宝app
你可以在这里看到屏幕上的两个链接。这包括一组不同硬件的参考设计,这基本上可以帮助您不仅选择从代码产品生成的算法代码,还可以与设计的其余部分集成,并为您正在查看的特定硬件生成位流。在这个例子中,我实际上已经通过连接到这个前端Simulink模型并直接在RFSoC硬件上运行硬件和软件方面对RFSoC进行了编程。下载188bet金宝搏金宝app
我也可以用这个来绘制某些信号,并理解PSS搜索和解调的硬件状态。这是我所探测的硬件的数据。你也可以看到处理器发送解码的cell ID以及PSS和SSS SNR值,我在MATLAB环境中通过使用UDP Receive块来可视化。这将帮助您获得与SDR平台相关的完整原型和开发框架。我以RFSoC为例,但就像我之前提到的,我们在这个工作流中支持一整套硬件。金宝app
因此,在我们研究支持的不同平台之前,我还想让你们注意到另一个客户成功的故事。金宝appRF Pixels使用这个特定的工作流程在Zynq RFSoC硬件上定位其LTE参考算法。同样,在HDL Coder的帮助下,他们能够减少实际提出第一个原型的时间,他们能够更容易和更快地进行设计的迭代,从而将迭代时间从几周减少到几天。这里还有这篇文章的链接。如果你有兴趣了解更多关于他们如何使用这个工作流的细节,你可以看看这个。
这里是我们支持的不同特别提款权平台的快照。金宝app当我说这些是针对目标的支持平台时,我的意思是除了算金宝app法代码之外,对于这些特定的硬件平台,我们还有可用的参考设计。但是,您也可以使用生成的代码。如果您可以创建或集成自定义参考设计,您也可以重用此框架,以定位自定义SDR平台。
为了开始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国家站点没有针对您所在位置的访问进行优化。