主要内容

LTE接收机使用模拟设备AD9361/AD9364

这个例子展示了如何使用Xilinx®Zynq-Based Radio Support Package with MAT金宝appLAB®和LTE Toolbox™来解码主信息块(MIB)并从LTE波形中恢复基本的系统信息。同伴可以产生一个适合接收的信号LTE发射机使用模拟设备AD9361/AD9364例如,如果您有第二个SDR平台。

指的是指导主机-无线电硬件设置有关配置主机以使用Xilinx Zynq-Based Radio的支持包的详细信息,请参阅文档。金宝app

介绍

LTE工具箱提供了解码LTE波形的功能和工具。这个例子展示了如何使用Xilinx Zynq-Based Radio等SDR Radio硬件捕获LTE波形,并对其进行解码以恢复基本的系统信息。

在LTE中,主信息块(MIB)是在广播信道(BCH)中携带的。MIB提供基本的单元范围设置,包括系统带宽和帧数。本示例对捕获的一组帧的MIB进行解码,然后对每个子帧解码控制格式指示符(CFI),以便告知用户设备(UE)控制区域的大小。然后解码物理下行链路控制信道(PDCCH)。这些步骤是UE与单元关联所必需的第一步。给出了一个鲁棒的小区搜索和系统信息获取过程的具体实例Cell Search, MIB and SIB1 Recovery(LTE工具箱)

BCH在LTE传输的中间6个资源块(RBs)中传输,因此不管小区带宽如何,只要捕获带宽1.92 MHz就可以解码MIB。解码MIB只需要帧的#0子帧,但本示例将解调整个帧以进行可视化和分析。

设置

这个例子需要LTE工具箱运行。执行本示例前,请确保已完成以下操作:

  1. 将主机配置为使用Xilinx Zynq-Based Radio的支持包。金宝app看到指导主机-无线电硬件设置寻求帮助。如果您想从一台主机运行两个无线电,可能需要一些额外的步骤。看到设置两个无线电连接到一个主机寻求帮助。

  2. 确保你有一个合适的信号接收。此示例设计用于与LTE发射机使用模拟设备AD9361/AD9364的例子。

  3. 您可以将此示例与AD936x或FMCOMMS5无线电硬件一起使用。缺省情况下,本例配置为在AD936x下运行。配置FMCOMMS5的样例时,必须使用comm.SDRRxFMCOMMS5对象,不能使用comm.SDRRxAD936x对象。要更新FMCOMMS5的示例,请遵循内联注释中的说明。

%检查是否安装了LTE工具箱,是否有有效的许可证如果isempty(版本(lte的))%检查LST安装错误(“zynqRadioLTEReceiver: NoLST”“请安装LTE工具箱来运行这个示例。”);elseif~许可证(“测试”“LTE_Toolbox”%检查是否存在有效的许可证错误(“zynqRadioLTEReceiver: NoLST”“运行此示例需要LTE工具箱的有效许可证。”);结束

接收器设计:系统架构

LTE接收机的总体结构描述如下:

  1. 使用SDR硬件捕获适当数量的LTE信号帧

  2. 确定并纠正接收信号的频率偏移

  3. 执行盲单元搜索以确定单元标识

  4. 同步捕获的信号到LTE帧的开始

  5. OFDM对接收的信号进行解调,得到一个LTE资源网格

  6. 对接收的信号进行信道估计

  7. 解码每个捕获帧的MIB,以确定整个单元范围的设置

  8. 解码CFI和PDCCH为捕获的信号中的每一个子帧

  9. 重复以上所有步骤所需的次数

本示例绘制捕获波形的功率谱密度,并对每一帧显示接收的LTE资源网格、估计信道和均衡的PBCH符号的可视化。

接收方设置

方法中定义的参数控制接收方处方结构。接收机的采样率为1.92 MHz,这是捕获6个资源块(RBs) LTE带宽的标准采样率。6 RBs相当于1.4 MHz的信号带宽。您可能希望增加rx.numCaptures参数来捕获更多的帧突发。每次捕获5帧LTE帧。

%用户自定义参数rxsim。RadioFrontEndSampleRate = 1.92 e6;%配置为1.92 MHz捕获带宽rxsim。RadioCenterFrequency = 2.45 e9;rxsim。RadioChannelMapping = 1;rxsim。FramesPerCapture = 5;%要捕获的连续LTE帧数rxsim.numCaptures= 1;%捕获次数%派生参数samplesPerFrame = 10 e - 3 * rxsim.RadioFrontEndSampleRate;% LTE帧周期为10毫秒captureTime = rxsim。FramesPerCapture * 10 e - 3;% LTE帧周期为10毫秒

此示例使用comm.SDRRxAD936x系统对象。

rxsim。SDRDeviceName =“AD936x”%为了更新FMCOMMS5的示例,设置|rxsim. %SDRDeviceName |,% | |“FMCOMMS5”。无线电= sdrdev (rxsim.SDRDeviceName);sdrReceiver = sdrrx (...rxsim。SDRDeviceName,...“IPAddress”“192.168.3.2”...“BasebandSampleRate”, rxsim。RadioFrontEndSampleRate,...“CenterFrequency”, rxsim。RadioCenterFrequency,...“ChannelMapping”, rxsim。RadioChannelMapping,...“OutputDataType”“双”...“GainSource”“AGC快速攻击”...“ShowAdvancedProperties”,真的,...“BypassUserLogic”,真正的);%频谱查看器设置spectrumScope = dsp。简介(...“SampleRate”, rxsim。RadioFrontEndSampleRate,...“SpectrumType”的功率密度...“SpectralAverages”10...“YLimits”(-130 -20),...“标题”“基带LTE信号频谱”...“YLabel”的功率谱密度);

LTE的设置

MIB解码的参数包含在结构中enb.假设FDD双工模式和普通循环前缀长度。对于MIB解码,假设有四个cell-specific reference port (CellRefP)。实际的CellRefP个数由MIB提供。

enb。DuplexMode =“FDD”;enb。CyclicPrefix =“正常”;enb。CellRefP = 4;

信号的采样率控制捕获带宽。捕获的RBs数量使用选择的采样率从查找表中获得,并显示在命令窗口中。

%带宽:{1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 20 MHz}SampleRateLUT = [1.92 3.84 7.68 15.36 30.72]*1e6;Ndlrblut = [6 15 25 50 100];enb。NDLRB = NDLRBLUT (SampleRateLUT = = rxsim.RadioFrontEndSampleRate);如果isempty (enb.NDLRB)错误('不支持采样率。金宝app金宝app支持的速率为%s。”...'1.92 MHz, 3.84 MHz, 7.68 MHz, 15.36 MHz, 30.72 MHz');结束流('\nSDR硬件采样率配置为捕获%d LTE RBs \n', enb.NDLRB);
SDR硬件采样率配置为捕获6个LTE RBs。

使用特定蜂窝参考信号的信道估计配置。一个保守的9 × 9的平均窗口被用来最小化噪声的影响。

cec。FreqWindow = 9;%资源元素频率平均窗口(REs)cec。TimeWindow = 9;在REs中时间平均窗口cec。InterpType =“立方”%三次插值cec。PilotAverage =“UserDefined”导频平均法cec。InterpWindow =“中心”%插值加窗方法cec。InterpWinSize = 3;%同时插入多达3个子帧

信号捕获与处理

一个while循环被用来捕获和解码LTE帧的突发。对于捕获的每一帧,将对MIB进行解码,如果成功,则对每一个子帧的CFI和PDCCH进行解码,并显示信道估计和均衡的PDCCH符号。

%设置星座图查看器以均衡PDCCH符号星座= comm.ConstellationDiagram (“标题”“均衡PDCCH符号”);%通道估计图的处理channelEstimatePlot =图(“可见”“关闭”);enbDefault = enb;rxsim.numCaptures%设置LTE默认参数enb = enbDefault;%特别提款权捕获流(开始一个新的RF捕获。% rx波形持有|rxsim。FramesPerCapture|连续帧值连续基带LTE样本的%。rxWaveform = capture(sdrReceiver, captureTime,“秒”);显示捕获的脉冲功率谱密度spectrumScope (rxWaveform);%进行频率偏移校正frequencyOffset = lteFrequencyOffset (enb rxWaveform);rxWaveform = lteFrequencyCorrect (enb rxWaveform frequencyOffset);流('修正了%g Hz的频率偏移'frequencyOffset)%执行盲单元搜索以获取单元标识和时间偏移%使用“PostFFT”SSS检测方法来提高速度cellSearch。SSSDetection =“PostFFT”;cellSearch。MaxCellCount = 1;[NCellID, frameOffset] = lteCellSearch (rxWaveform, enb cellSearch);流(“检测到单元格标识为%i.\n”, NCellID);enb。NCellID = NCellID;从lteCellSearch %%同步捕获的样本到LTE帧的开始,并修剪%不完整帧的任何样本。rxWaveform = rxWaveform (frameOffset + 1:结束);tailSamples =国防部(长度(rxWaveform), samplesPerFrame);rxWaveform = rxWaveform (1: end-tailSamples);enb。NSubframe = 0;% OFDM解调rxGrid = lteOFDMDemodulate (enb rxWaveform);%执行4 CellRefP的信道估计,目前我们没有%知道用于eNodeB的CellRefP。[命令,巢]= lteDLChannelEstimate (cec, enb rxGrid);sfDims = lteResourceGridSize (enb);Lsf = sfDims (2);每子帧% OFDM符号LFrame = 10 * Lsf;%每帧OFDM符号numFullFrames = (rxWaveform) / samplesPerFrame长度;%每帧解码MIB和CFI帧= 0:(numFullFrames-1) fprintf('\n '执行MIB Decode for frame %i of %i in burst…\n'...框架+ 1,numFullFrames)%从接收的资源网格的每一帧中提取子帧#0%和信道估计。enb。NSubframe = 0;rxsf = rxGrid(:,帧* LFrame + (1: Lsf));hestsf =命令(:,帧* LFrame + (1: Lsf):,:);% PBCH解调。提取资源元素(REs)%对应于接收到的电网和信道的PBCH%估计解调网格。假设4个细胞特定参考%信号的PBCH解码,因为最初我们不知道实际值。enb。CellRefP = 4;pbchIndices = ltePBCHIndices (enb);[pbchRx, pbchHest] = lteExtractResources (pbchIndices、rxsf hestsf);mib, ~, ~, nfmod4 CellRefP] = ltePBCHDecode (pbchHest, enb, pbchRx巢);%如果PBCH解码成功CellRefP~=0,则更新信息如果~ CellRefP流('没有检测到帧PBCH。\n');继续结束% PBCH解码成功后,对MIB进行解码,获取系统%信息,包括系统带宽enb = lteMIB (mib, enb);enb。CellRefP = CellRefP;从ltePBCHDecode %%包含函数输出的nfmod4值% ltePBCHDecode,表示从MIB中建立的NFrame值%是除4外的系统框架号。enb。NFrame = enb.NFrame + nfmod4;流(`成功的MIB解码。\n `)流('帧号:%d.\n', enb.NFrame);%可能导致eNodeB传输带宽大于%捕获带宽,因此限制处理带宽enb。NDLRB = min (enbDefault.NDLRB enb.NDLRB);%在帧内处理子帧科幻小说= 0:9%提取子帧enb。NSubframe =科幻小说;rxsf = rxGrid(:,帧* LFrame +科幻* Lsf + (1: Lsf));%使用正确的CellRefP数量进行信道估计[hestsf, nestsf] = lteDLChannelEstimate (cec, enb rxsf);% PCFICH解调。提取PCFICH对应的REs%从接收网格和信道估计用于解调。pcfichIndices = ltePCFICHIndices (enb);[pcfichRx, pcfichHest] = lteExtractResources (pcfichIndices、rxsf hestsf);[cfiBits, recsym] = ltePCFICHDecode (pcfichRx, enb pcfichHest, nestsf);% CFI解码enb。CFI = lteCFIDecode (cfiBits);流('子帧%d,解码后的CFI值:%d.\n'科幻,enb.CFI);% PDCCH解调。提取与PDCCH对应的REs%从接收网格和信道估计用于解调。pdcchIndices = ltePDCCHIndices (enb);[pdcchRx, pdcchHest] = lteExtractResources (pdcchIndices、rxsf hestsf);[pdcchBits, pdcchEq] = ltePDCCHDecode (pdcchRx, enb pdcchHest, nestsf);释放(星座);星座(pdcchEq);暂停(0);允许星座重绘结束%绘制CellRefP 0与接收天线之间的信道估计focalFrameIdx =帧* LFrame + (1: LFrame);集(0,“CurrentFigure”, channelEstimatePlot);channelEstimatePlot。可见=“上”;focalFrameIdx冲浪(abs(命令(:,1,1)));包含(“OFDM符号指数”);ylabel (“副载波指数”);zlabel (“级”);标题(“信道幅度频率响应的估计”);结束rxsim.numCaptures= rxsim.numCaptures-1;结束释放(sdrReceiver);%释放SDR接收器对象释放(spectrumScope);%释放频谱分析仪对象释放(星座);%释放星座图对象
开始一个新的射频捕获。##连接硬件这个过程可能需要几秒钟。修正了3.02934赫兹的频率偏差。检测到细胞标识为17。执行MIB Decode for frame 1 of 4 in burst…成功的MIB解码。帧数:700。子帧0,解码CFI值:3。子帧1,解码后的CFI值:3。 Subframe 2, decoded CFI value: 3. Subframe 3, decoded CFI value: 3. Subframe 4, decoded CFI value: 3. Subframe 5, decoded CFI value: 3. Subframe 6, decoded CFI value: 3. Subframe 7, decoded CFI value: 3. Subframe 8, decoded CFI value: 3. Subframe 9, decoded CFI value: 3. Performing MIB Decode for frame 2 of 4 in burst... Successful MIB Decode. Frame number: 701. Subframe 0, decoded CFI value: 3. Subframe 1, decoded CFI value: 3. Subframe 2, decoded CFI value: 3. Subframe 3, decoded CFI value: 3. Subframe 4, decoded CFI value: 3. Subframe 5, decoded CFI value: 3. Subframe 6, decoded CFI value: 3. Subframe 7, decoded CFI value: 3. Subframe 8, decoded CFI value: 3. Subframe 9, decoded CFI value: 3. Performing MIB Decode for frame 3 of 4 in burst... Successful MIB Decode. Frame number: 702. Subframe 0, decoded CFI value: 3. Subframe 1, decoded CFI value: 3. Subframe 2, decoded CFI value: 3. Subframe 3, decoded CFI value: 3. Subframe 4, decoded CFI value: 3. Subframe 5, decoded CFI value: 3. Subframe 6, decoded CFI value: 3. Subframe 7, decoded CFI value: 3. Subframe 8, decoded CFI value: 3. Subframe 9, decoded CFI value: 3. Performing MIB Decode for frame 4 of 4 in burst... Successful MIB Decode. Frame number: 703. Subframe 0, decoded CFI value: 3. Subframe 1, decoded CFI value: 3. Subframe 2, decoded CFI value: 3. Subframe 3, decoded CFI value: 3. Subframe 4, decoded CFI value: 3. Subframe 5, decoded CFI value: 3. Subframe 6, decoded CFI value: 3. Subframe 7, decoded CFI value: 3. Subframe 8, decoded CFI value: 3. Subframe 9, decoded CFI value: 3.

尝试的东西

同伴的例子LTE发射机使用模拟设备AD9361/AD9364可以用来传输一个符合标准的LTE波形,通过这个例子可以部分解码。在附带的示例中,尝试更改单元标识和初始帧号,并观察本示例中检测到的单元标识和帧号。

本示例仅对基本系统信息进行解码。有关如何健壮地解码更多物理通道的示例,请参阅Cell Search, MIB and SIB1 Recovery(LTE工具箱)

故障诊断的例子

用于排除SDR硬件故障的一般技巧可以在常见问题及修复