主要内容

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

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

请参阅引导主机无线电硬件设置文档,详细介绍如何配置主机以使用Xilinx Zynq-Based Radio的支持包。金宝app

简介

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

在LTE中,主信息块(MIB)在广播信道(BCH)中传输。MIB提供基本的单元范围设置,包括系统带宽和帧数。本例将MIB解码为捕获帧的突发,然后解码每个子帧的控制格式指示器(CFI),它将控制区域的大小通知用户设备(UE)。然后对物理下行链路控制信道(PDCCH)进行解码。这些步骤是UE与计算单元关联所必需的第一步。给出了一个鲁棒单元搜索和系统信息获取程序的详细示例Cell搜索,MIB和SIB1恢复(LTE工具箱)

BCH传输在LTE传输的中间6个资源块(RBs)中,因此解码MIB只需要1.92 MHz的捕获带宽,而不考虑单元带宽。解码MIB只需要帧的子帧#0,但是本例将解调每一整个帧以进行可视化和分析。

设置

此示例需要“LTE工具箱”才能运行。执行样例前,请确保已执行以下步骤。

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

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

  3. 您可以在AD936x或FMCOMMS5无线电硬件上使用此示例。默认情况下,该示例配置为使用AD936x运行。要为FMCOMMS5配置示例,必须使用com . sdrrxfmcomms5对象而不是com . 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,为LTE带宽为6个资源块时的标准采样率。6rbs相当于1.4 MHz的信号带宽。您可能希望增加rx.numCaptures参数捕获更多的帧爆发。每次捕获5帧LTE帧。

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

属性与无线电硬件通信comm.SDRRxAD936x系统对象。

rxsim。SDRDeviceName =“AD936x”如果要更新FMCOMMS5的示例,请设置|rxsim。SDRDeviceName |,% | |“FMCOMMS5”。radio = 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”,真正的);%频谱查看器设置光谱分析仪(...“SampleRate”, rxsim。RadioFrontEndSampleRate,...“SpectrumType”的功率密度...“SpectralAverages”10...“YLimits”, [-130 -20],...“标题”“基带LTE信号频谱”...“YLabel”“功率谱密度”);

LTE的设置

解码MIB的参数包含在结构中enb.FDD双工模式和一个正常的循环前缀长度被假设。MIB解码假设有四个单元特定的引用端口(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符号设置星座图查看器星座图(“标题”“均衡PDCCH符号”);处理通道估计图channelEstimatePlot = figure(“可见”“关闭”);enbDefault = enb;rxsim.numCaptures设置LTE默认参数enb = enbDefault;% SDR捕获流(\n开始一个新的射频捕获。\n% rx波形包含|rxsim。FramesPerCapture|连续帧值连续基带LTE样本的%。rx波形=捕获(sdrReceiver, captureTime,“秒”);显示捕获脉冲的功率谱密度spectrumScope (rxWaveform);执行频率偏移校正frequencyOffset = lteFrequencyOffset(enb, rx波形);rx波形= lteFrequencyCorrect(enb, rx波形,frequencyOffset);流('修正了%g Hz的频率偏移。\n'frequencyOffset)%执行盲小区搜索以获得小区标识和定时偏移%使用'PostFFT' SSS检测方法来提高速度cellSearch。SSSDetection =“PostFFT”;cellSearch。MaxCellCount = 1;[NCellID,frameOffset] = lteCellSearch(enb, rx波形,cellSearch);流('检测到单元格标识%i.\n', NCellID);enb。NCellID = NCellID;%来自lteCellSearch同步捕获的样本到LTE帧的开始,并修剪%不完整框架的一部分的任何样本。rx波形= rx波形(frameOffset+1:end);tailSamples = mod(length(rx波形),samplesPerFrame);rx波形= rx波形(1:end-tailSamples);enb。NSubframe = 0;% OFDM解调rxGrid = lteOFDMDemodulate(enb, rx波形);%执行通道估计4 CellRefP,目前我们不做知道eNodeB的CellRefP。[hest,nest] = lteDLChannelEstimate(enb,cec,rxGrid);sfDims = lteResourceGridSize(enb);Lsf = sfDims(2);每子帧的OFDM符号的百分比LFrame = 10*Lsf;每帧OFDM符号的百分比numFullFrames = length(rx波形)/samplesPerFrame;对于每一帧解码MIB和CFI帧= 0:(numFullFrames-1) fprintf(\n在burst中执行帧%i的MIB解码…\n'...框架+ 1,numFullFrames)从接收到的资源网格的每一帧中提取子帧#0%和渠道估算。enb。NSubframe = 0;rxsf = rxGrid(:,frame*LFrame+(1:Lsf));hestsf = hest(:,frame*LFrame+(1:Lsf),:,:);% PBCH解调。提取资源元素(REs)%对应于接收网格和通道中的PBCH%估计网格解调。假设4个单元格特定的引用%信号用于PBCH解码,因为最初我们不知道实际值。enb。CellRefP = 4;pbchIndices = ltePBCHIndices(enb);[pbchRx,pbchHest] = lteExtractResources(pbchIndices,rxsf,hestsf);[~,~,nfmod4,mib,CellRefP] = ltePBCHDecode(enb,pbchRx, pbchest,nest);%如果PBCH解码成功CellRefP~=0,则更新信息如果~ CellRefP流('帧未检测到PBCH。\n');继续结束% PBCH解码成功后,解码MIB,获取系统%信息,包括系统带宽enb = ltimib (mib,enb);enb。CellRefP = CellRefP;% From 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);处理帧内的子帧Sf = 0:9提取子帧enb。NSubframe = sf;rxsf = rxGrid(:,frame*LFrame+sf*Lsf+(1:Lsf));使用CellRefP的正确数目执行信道估计[hestsf,nestsf] = lteDLChannelEstimate(enb,cec,rxsf);PCFICH解调。提取PCFICH对应的REs%从接收的网格和信道估计解调。pcfichIndices = ltePCFICHIndices(enb);[pcfichRx, pcfichest] = lteExtractResources(pcfichices,rxsf,hestsf);[cfiBits,recsym] = ltePCFICHDecode(enb,pcfichRx, pcfichest,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(enb,pdcchRx, pdcchest,nestsf);释放(星座);星座(pdcchEq);暂停(0);允许星座重绘结束绘制CellRefP 0和接收天线之间的信道估计focalFrameIdx = frame*LFrame+(1:LFrame);集(0,“CurrentFigure”, channelEstimatePlot);channelEstimatePlot。可见=“上”;focalFrameIdx冲浪(abs(命令(:,1,1)));包含(OFDM符号索引);ylabel (“副载波指数”);zlabel (“级”);标题(信道幅值频率响应估计);结束rxsim.numCaptures= rxsim.numCaptures-1;结束释放(sdrReceiver);释放SDR接收对象释放(spectrumScope);释放频谱分析仪对象释放(星座);释放星座图对象
开始一个新的射频捕获。##建立硬件连接。这个过程可能需要几秒钟。修正了-1.86386 Hz的频率偏移。检测到一个17号的单元码。执行MIB Decode for frame of 4 in burst…成功解码MIB。帧号:701。子帧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: 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 3 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. Performing MIB Decode for frame 4 of 4 in burst... Successful MIB Decode. Frame number: 704. 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搜索,MIB和SIB1恢复(LTE工具箱)

故障处理

有关SDR硬件故障排除的一般提示,请参见常见问题及修复