- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
运用NI USRP打造出经济实惠的8x8 MIMO测试台
此技术文章说明了LabVIEW 与USRP 平台的使用方式,进而打造出相位同调(Phase Coherent) 的MIMO 测试台,可以从2x2 扩充为8x8 天线设定,并且用来测试多种MIMO 与多用户的通信研究项目。
1. 8x8 MIMO 简介
现在Single-Link 单连结MIMO (多重输入与多重输出) 通信的概念可说是非常普遍[1],新的无线标准也陆续采用此技术。 比如说LTE Advanced 标准,其中结合了高达4x4 MIMO 上行与8x8 MIMO 下行[2]。 随着各式标准持续提高数据传输率、用户人数与稳定的链接数量,工程师也必须开发新并仿真的算法,并且在实际情况下加以检验。 而且各机构也开始大量投资MIMO 应用,包含多使用者的MIMO (MU-MIMO)、合作式MIMO 与协作多点(CoMP) 等项目。 研究基金的竞争状况越来越激烈,同时因为原型制作决定了新算法的实用性,重要性更甚于仿真通道,因此让整个情况更具挑战性。 如要发表全新的研究结果,必须建置原型,而且研究结果还要具有充分的重复使用率。 可扩充的现成软件定义无线电(Software Defined Radio,SDR) 解决方案可在研究员制作算法原型时提供关键优势,因其兼具了开发客制化无线电的低成本弹性,以及高成本传统仪器的可重复使用效能。
图1. NI USRP-2920 设备
通用软件无线电外围设备(USRP,见图1) 可说是最方便好用也最经济实惠的现成软件定义无线电系统,非常适合更高阶次的MIMO 应用。 此技术文章说明了LabVIEW (图2) 与USRP 平台的使用方式,进而打造出相位同调(Phase Coherent) 的MIMO 测试台,可以从2x2 扩充为8x8 天线设定,并且用来测试多种MIMO 与多用户的通信研究项目。
图2. 8x8 MIMO LabVIEW 人机界面
2. USRP 硬件概述
USRP 平台是一款RF 软件设定的无线电收发器,可用于无线通信研究。 将USRP 连接至主计算机后,即可做为软件定义的无线电,提供主机架构的数字信号处理功能。 每个USRP 设备都会提供独立的传送与接收通道,可针对特定的硬件配置提供全双工作业效能。
USRP 设备会通过GB ETHERNET 端口连接至主计算机,此端口需要Standard 1 Gigabit Ethernet (GbE) 连接功能。 同时以6 伏特DC 运作,最高耗电量为18 瓦特。 请参阅USRP 系统方块图(图3),传送与接收链分别独立运作,但会共享一个通用的内接10-MHz TCXO 参考频率,局部震荡器(LO) 便是来自此频率。
图3. NI USRP-2920 系统方块图
Rx 信号路径
就接收端而言(图3 下方),所接收的模拟RF 信号会通过RX 1 或RX 2 接头进入,这会由可设定的切换开关来决定,并且经过可调整的(0-30dB) 增益阶段到达混合器,进而将LO RF 频率直接转换为基带IQ 组件。100MS/s、14 位的双信道ADC 会过滤基带I/Q 模拟信号并取得其样本。 经过数字化的I/Q 数据会经过平行的内建信号处理(OSP) 程序,此程序会套用DC 偏移修正作业、采用CORDIC 执行数字降转换以修正次要的频率偏移并达到所需的RF 中央频率,过滤并抽取100M S/sec 的输入信号至用户所指定的IQ 速率。 经过降转换的样本接着会通过标准的GbE 连接功能传送至主计算机,如果是16 位模式的话基带IQ 速率最高可达25 MS/s,如果是8 位模式的话则是50 MS/s。
Tx 信号路径
就传送端而言(图3 上方),主计算机会合成基带IQ 信号,接着通过GbE 连接功能把合成过的I/Q 信号样本传送至USRP,如果是16 位模式的话最高可达25 MS/s,如果是8 位模式的话则是50 MS/s。USRP 硬件OSP 会采用数字升转换程序来插入合成信号并且升转换至400MS/s,根据所需的RF 中央频率套用CORDIC 以便修正次要的频率偏移,接着通过16 位的双信道DAC 将信号转换为模拟信号。 再来会通过直接转换架构来过滤并调变此模拟信号以达到指定的RF 频率,进一步混合LO 与模拟基带IQ 信号。 可调整的(0-30dB) 增益阶段会放大信号,以便通过外接的TX 1 端口来传送信号。
时序与频率
有了MIMO 扩充埠即可同步化2 个USRP 的时序与频率,此外也可做为以太网络开关,一组USRP 就能够共享单一GbE 连接。USRP 前端设备具有REF IN (10-MHz 参考频率) 与PPS (每秒脉冲) SMA 连接,可提供外部频率参考与时序的同步化功能,以便补足内接的TCXO 以提高频率准确度,也可针对大量设备提供同步化功能。
NI-USRP 驱动程序
至于软件方面,LabVIEW 开发系统提供方便的强大接口,可搭配USRP 硬件,以便快速制作通信算法原型。NI-USRP 软件驱动程序提供直觉性的函式、VI (LabVIEW 虚拟仪器,可直接对应至硬件配置以便设定时序与同步状态)、开启/关闭阶段,还能执行读写作业。 通过简易的Rx 作业即可从LabVIEW 程序方块图呼叫驱动函式(图4)。 第一个Tx 或Rx 应用一定会包含下列6 个参数:
Device Names:受控USRP 的专属IP 地址。 新的USRP 硬件默认的IP 地址是192.168.10.2
IQ Rate:基带IQ 波形的取样率决定了撷取或合成作业的实时带宽
Carrier Frequency:重点频谱的中点。 转换至基带IQ 后载波频率就会成为中心或DC 组件
Gain:套用至模拟RF 信号的可调整增益(通常为0 ~ 30dB)
Active Antenna:切换设定,可决定以RX 或TX SMA 埠来进行撷取或传输作业
Number of Samples:每次驱动程序呼叫元从设备撷取或传送到Fetch Rx 或Write Tx VI 的取样数量
图4. 使用NI-USRP 驱动程序的LabVIEW 程序方块图
3. 可扩充的8x8 MIMO 硬件系统架构
多个USRP 设备可整合为单一个相位同调天线数组,以便传送/接收信号。 本文所探讨的MIMO 测试台可从2x2 扩充为8x8 天线设定(最多有8 个传输器和8 个接收器)。 建置测试台时必须考虑到的硬件组件与优缺点,包含了频率与时序同步,以及数据总线带宽。
频率与时序同步化
就标准的MIMO 通信测试台而言,所有的Rx 或Tx 通道必须做为单一接收器或传输器运作,同时搭配频率与时序同步化功能以及一个相位同调的局部震荡器(LO)。8x8 MIMO 测试台的8 个USRP 设备都会采用相同的10MHz 参考频率与PPS 时序基础,借此达到同步化效能。 根据8x8 MIMO 系统方块图(图5),4 个USRP 设备会直接连接至每个参考信号,接着另外4 个USRP 设备会通过MIMO Data 与Synchronization 接线共享此信号。 这样一来即可同步化所有8 个USRP 设备的频率与时序,同时单一10-MHz 参考频率还会衍生出相位同调的LO。 用来产生频率的硬件则是OCXO (Oven Controlled Oscillator 恒温震荡器),此硬件采用Trimble 公司的Thunderbolt® GPS 授时频率,可提供10 MHz 的参考频率输出与数字PPS 输出[4]。OCXO 的频率来源非常准确,不必安装GPS 天线即可运作。 安装GPS 天线则可以改善GPS 授时的同步化效能,提供一致的时序概念。
图5. 8x8 MIMO 系统方块图
此外10 MHz 与PPS 参考信号的功率准位也是相当重要的考虑,因为频率信号会分配至所有的无线电。 在此应用中,通用的同轴BNC「T」连接会划分信号两次,以便同步化前4 个USRP 设备。Tunderbolt 可提供大约7dBm 的10MHz 参考,以及2.4 V 的数字PPS 信号。 二度划分信号(也就是以伞状分散至4 个设备) 就会变成1dBm 与0.6V 参考,接近推荐的USRP Ref In 与PPS 输入准位(0dBm 与3.3V LVTTL 相容)。 如果必须进一步划分参考信号以确保适当的同步化效能,NI 建议将10MHz 与PPS 信号放大至建议的功率准位。
8x8 MIMO 零件列表(表1) 包含了用来建置8x8 MIMO 测试台的组件。 所有组件都是标准的现成零件。
数量 | 零件 | 数量 | 零件 | |
16 | SMA 连接的磁性天线 | 8 | 3 向的公-母-公BNC「T」 | |
16 | NI USRP-2920 套件 | 16 | 公BNC 至公SMA 的接线 | |
8 | USRP MIMO 同步化与数据接线 | 1 | 10 端口的Gigabit 以太网络切换器 | |
2 | Trimble Thunderbolt (Ref + PPS) | 1 | 桌面计算机(Dell 计算机搭载Intel Xenon 处理器) | |
9 | Cat 5 以太网络接线 | 1 | PCIe Gigabit 以太网络卡(Intel 芯片组) | |
4 | 0.3 公尺的BNC 转BNC 接线 | 1 | 显示器、键盘、鼠标 | |
4 | 3 向的母BNC「T」 |
表1. 8x8 MIMO 零件列表
数据总线带宽
GbE 连接功能可在USRP 设备与主计算机之间提供专属连结,让USRP 以高达25MS/s 的全双工模式运作。 就MIMO 测试台而言,16 个USRP 能有效共享同一个以太网络链接,并且在所有通道间有效分配带宽。 首先,计算单一USRP 全速运作的数据传输率为何(等式1),我们发现在不考虑任何通信处理时间的前提下,会用到80% 的1Gb 以太网络带宽。
等式1:1 GbE 的单一信道IQ 速率最大理想值
文字框: 图5。8 通道同步化Rx 方块图(Part I)。测试台内的整个Tx 与Rx 系统会共享单一1 GbE 连接,并且回传至主计算机(已连接未受管理的标准1 GbE 切换器)。IQ 速率最大值会除以共享相同以太网络链接的USRP 设备数量,此外还有额外的处理时间可用来同时管理多个设备。至于8x8 MIMO,IQ 速率的最大理想值为25MS/s IQ 速率除以8 (等式2),因此每个传送器与接收器的3MHz 基带频宽皆可分配到3MS/s 左右。只要在同一个主计算机内加入专属的1 GbE 控制器,即可提高最大理想值;不过内存与处理器瓶颈仍可能影响效能。
等式2:共享l GbE 连接的8 个天线IQ 速率最大理想值
就目前的测试台状态而言,每个不同的天线(共8 个) 都有1MS/s 的IQ 速率。
4. MIMO 系统软件架构
就LabVIEW 来说,MIMO 系统软件架构可分为2 个部分:
1.NI-USRP 硬件驱动程序
2.主机架构的通信程序代码
NI-USRP 硬件驱动程序可让所有的USRP 设备执行传送或接收作业,而且只要通过一组驱动程序呼叫组件即可加以设定并控制。硬件驱动程序与主机之间的接口采用主机架构的通信程序代码,属于基带IQ 数据的二维数组,每一列(row) 都代表了单一天线的复杂时域IQ 数据。 接着可藉由LabVIEW 环境内多个运算模型来执行主机架构的信号处理功能,其中包含图形化LabVIEW 架构的算法、LabVIEW MathScript RT 内的.m 档案脚本,或是可通过LabVIEW Call Library Node 存取的C 函式。
MIMO 搭配NI-USRP 驱动程序
所有8 个传送器都会在单一传送阶段内进行设定,而所有8 个接收器都会在单一接收阶段内进行设定(图6)。
图6. 8 信道同步化的Rx LabVIEW 程序方块图(Part I)
以MIMO 系统的Rx 端为例,设定与同步化流程包含6 个步骤:
1.在逗点分隔表中指定每个USRP 的IP 地址,以便开启Rx Session。
2.设定Start Trigger Time (单位为整数秒或分数秒),代表所有USRP 设备开始撷取数据的时间。
3.设定所有8 个设备共享的参数。
4.指定哪些设备会使用外接参考或MIMO 接线。
5.将时基设为0 (仅限于PPS 频率信号下个升缘具有外部PPS 连接的USRP 设备)。 注意: 信道表说明了需要此设定的设备。
6.使用单一驱动呼叫元来撷取数据,并以复杂样本的二维数组送回,其中每一列都包含了单一天线的复杂IQ 波形。
一旦启动会话之后,系统就会开始从所有的USRP 设备撷取时序同步化的连续样本,并且做为二维数组通过NI-USRP Fetch 指令回传至LabVIEW,数组中的每一列都是一个独立通道。 接着样本输入数量会指定每次Fetch 操作需要撷取的样本数量。 在此情况下(图6),我们会记录每一列,再将每个信道的I/Q 信号配置到各自的图形中。
8x8 MIMO 主机架构的通信作业
图6. 8 信道同步化的Rx LabVIEW 程序方块图(Part II)
位于美国奥斯汀的德州大学设有无线网络与通信团体(Wireless Networking and Communications Group,WNCG),Robert Heath 教授与研究生Jackson Massey 采用此硬件与驱动软件框架,打造出使用QPSK 符号的LabVIEW 架构MIMO-ODFM 链接 (图2)。 这种可扩充的程序代码可让MIMO 设定从2x2 扩充至8x8,只要开启或关闭USRP 设备就行了。 随机数据位会对应至QPSK 符号,接着这些符号会通过62.5-kHz 带宽对应至128 OFDM 子载波(其中有些通道无效,有些则是用于培训)。 循环式的前置区段(Cyclic Prefix) 会插入内含20 个OFDM 符号的组合,并且建立Preamble。 最终的IQ 波形会分为平行串流,接着以系数16 进行升取样。最后会以1 MS/s 的速度产生IQ 样本的二维数组,而且每个USRP 设备(共8 个) 都会采用NI-USRP Write 函式来传送特殊符号。
至于接收端,来自NI USRP 驱动器的数据撷取率为1MS/s,接着进行分析以侦测OFDM 框架位置。 抽出框架后,LabVIEW 架构的软件就会估计频率偏移并加以修正。 接着信号会区分为与FFT 尺寸相同的区块,同时加上循环式前置区段,FFT 再套用至每个区块。 无效音调(Null Tone) 会遭到移除,通信培训信息可用来估计并修正多路径干扰现象, 而引导音调(Pilot Tone) 则是用来估计并修正每个子载波的增益与相位移转。 最终的QPSK 星座图则会针对每个通道(共8 个) 进行配置。
LabVIEW 可混合不同的运算模型,以便快速制作OFDM 系统原型。OFDM 连结有许多面向都已在客制化的.m 档案脚本中实作。 模拟环境内的.m 档案脚本可通过MathScript RT Node (图7) 直接整合至LabVIEW 以便立即执行,只需要小幅度的修改即可。
图7. 使用 LabVIEW MathScript RT Node 整合.m 档案脚本
5. 评估系统
使用USRP 来设计专属的MIMO 测试台时,请务必考虑到实时执行、相位校正vs. 相位同调、运用以太网络卡达到最高的数据传输率等事项。
实时执行与延迟时间
系统与NI-USRP 驱动程序可纳入共8 个传送器与8 个接收器,以超过2MS/s 的速度串流复杂的基带IQ 信号,并且实时处理信号。 但因为处理时间的关系,传输率会降低为每200 毫秒(ms) 1 个OFDM 框架,才能确保在Windows 系统内实时执行。OFDM 范例程序代码的约略数据传输率计算方式如下:
等式3: 携带数据的OFDM 子信道
等式4:OFDM 测试台数据传输率
最终的数据传输率为122.8Kb/s (62.5Khz 带宽的通道)。 此设定可达到1.9648 位/秒/Hz 的数据传输率,这是相当可观的数字。
请注意,此配置尚未经过效能优化处理,而是直接采用之前仅用于仿真的算法。 如果再进一步优化可能会大幅提高效能。
相位校正vs. 相位同调
所有USRP 皆共享通用的10-MHz 参考后,相位同调局部震荡器(LO) 即可通过分数N 频率的方式来处理合成作业。 在合成过程中,参考频率会被划分,此外升缘与降缘的相位可能会锁定,针对每个通道产生固定的任意相位偏移。 就MIMO 通信而言,负责执行多路径评估与修正的算法也会一并修正这些固定的任意相位偏移现象。
不过波束赋形应用则需要LO 的相位校正,所以会通过基带I/Q 来控制并撷取此相位。此外也有更有效的方式,那就是使用已知的参考信号来侦测USRP 的相位偏移,并且针对方向寻找与波束赋形等研究将修正项目套用至接收到的信号。
达到完整的1 Gigabit 以太网络数据传输率
如要达到完整的1 Gigibit 以太网络数据传输率,就会需要最佳设定的网络卡,以及顺畅整合网络卡/内存/处理器的计算机。 一般来说最理想的组合就是桌面计算机搭配Intel 的以太网络控制器芯片组,同时还具备较新的驱动功能,例如要关闭「Energy Efficient Ethernet」,计算机的「Power Options」则得设为「High Performance」。
6. 结论
随着MIMO 通信研究日渐普遍,NI USRP 硬件与LabVIEW 软件则提供了理想的平台,可快速制作新的算法原型并加以检验。 这样的组合可提供优异的弹性与效能,有助于建置简便的2x2 MIMO 系统,而且还可扩充为进阶的8x8 MIMO OFDM 测试台。 有了现成的NI USRP SDR 硬件,研究人员即可迅速建立测试台,评估算法,分享可复制的研究结果。 如果将LabVIEW 用于开发作业,就可以整合现有的IP (例如.m 档案脚本),同时根据个人需求轻松运用各种SDR 硬件平台,无论是主机架构的USRP 原型制作流程,还是PXI 架构的仪器质量MIMO 都没问题。 如要开始准备这类应用,请先前往 ni.com/usrp/zht/ 取得更多USRP 软件定义无线电的相关信息。
7. 参考数据
[1] A. Paulraj, A.J., "An overview of MIMO communications - a key to gigabit wireless", Proceedings of the IEEEE, vol. 92, no. 2, pp. 198-218, Feb 2004.
[2] 3GPP TR 36.913 V9.0.0 (2009-12), "Requirements for Further Advancements of E-UTRA (LTE-Advanced)."
[3] J. W. Massey, J. Starr, Seogoo Lee, Dongwook Lee, A. Gerstlauer, and R. W. Heath Jr. Implementation of a real-time wireless interference alignment network. To appear in the Proc. of the Asilomar Conference on Signals, Systems and Computers, 2012. (6x6 MIMO Code available on the USRP Code Sharing Community)