主要内容

使用LTE工具箱和单个USRP E3xx的图像传输和接收

这个示例演示了如何使用USRP™嵌入式系列无线电支持包与MATLAB®和LTE工具箱™生成多天线LTE传输,以便在单个SDR金宝app平台上同时发送和接收。图像文件被编码并打包到无线电帧中以供传输,随后在接收时进行解码。下图显示了使用的设置:

指的是指导主机-无线电硬件设置有关配置主机以使用USRP嵌入式系列无线电的支持包的详细信息的文档。金宝app

介绍

您可以使用LTE工具箱生成标准符合标准的基带IQ下行链路和上行链路参考测量通道(RMC)波形和下行测试模型(E-TM)波形。可以使用SDR硬件(如USRP嵌入式系列无线电)调制这些基带波形。

此示例将图像文件导入图像文件并将其包装到使用LTE工具箱生成的基带RMC波形的多个无线电帧中。该示例通过使用该示例通过使用持续的RF LTE波形重复波形发射机与USRP无线电硬件的功能,由此基带RMC波形被转移到硬件存储器上的无线电,并连续地通过空气传输没有间隙。由于E3xx设备具有双通道传输和接收能力,本例使用LTE发射分集生成并传输多天线LTE波形。脚本然后使用相同的E3xx硬件平台捕获生成的波形。

示例设置

在运行此示例之前,请执行以下步骤:

  1. 配置您的主机与USRP嵌入式系列无线电的支持包一起工作。金宝app看到指导主机-无线电硬件设置求助。

  2. 在运行示例之前,请确保安装了LTE工具箱。如果您没有安装LTE工具箱,该示例将返回一个错误。

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

整个示例中显示的所有范围和图形都已配置好。

用于图像绘图的安装句柄如果〜存在(“imFig”“var”) || ~ handle(imFig) imFig = figure;imFig。NumberTitle =“关闭”;imfig.name =.“形象策划”;imfig.visible =“关闭”;其他的clf(imfig);%清晰的图imfig.visible =“关闭”;结束%通道估计图的设置句柄如果〜存在(“hh”“var”) || ~ handle(hhest) hhest = figure(“可见的”“关闭”);hh。NumberTitle =“关闭”;hh。Name =信道估计的;其他的clf (hh);%清晰的图hh。可见=“关闭”;结束%设置频谱查看器SpectrumScope = DSP.SpectRumanalyzer(......“SpectrumType”的功率密度......“SpectralAverages”10......“YLimits”(-130 -40),......“头衔”“接收基带LTE信号频谱”......“YLabel”的功率谱密度);%设置星座图查看器以均衡PDSCH符号constellation = comm.constellationDiagram(“头衔”'均衡的PDSCH符号'......'showreferenceConstellation'、假);

示例默认为2通道发送和接收。

一个comm.SDRTxE3xx系统对象用于向SDR硬件传输基带数据。

%初始化SDR设备txsim =结构;%为变送器创建空结构txsim。SDRDeviceName =“E3xx”;设置SDR设备无线电= sdrdev(txsim.sdrdevicename);%创建SDR设备对象

运行示例

您可以通过执行来运行这个示例usrpe3xxLTEMIMOTransmitReceiveML.m.下面几节将解释这个示例的设计和体系结构,以及在执行代码时您可能看到的内容。

变送器设计:系统架构

LTE发射机的总体结构可以描述为:

  1. 导入图像文件并将其转换为二进制流。

  2. 使用LTE工具箱生成基带LTE信号,将二进制数据流打包到下行链路共享信道DL-SCH的传输块中。

  3. 使用SDR硬件准备用于传输的基带信号。

  4. 将基带数据发送到SDR硬件以进行上采样和在所需的中心频率下连续传输。

设置SDR发射机txsim结构控制SDR发射器的属性System对象。

txsim。RC =“R.7”;%基本RMC配置,10 MHz带宽txsim。NCellID = 88;%细胞身份txsim。NFrame = 700;初始帧数txsim。TotFrames = 1;%生成的帧数txsim.desiredcenterfrequency = 2.45e9;中心频率(Hz)txsim。NTxAnts = 2;%发送天线数

为了直观地看到在单通道上使用多通道传输和接收的好处,您可以降低发射机增益参数以降低接收波形的质量,如下所示:

TX增益参数:%修改此参数以降低传输质量,影响传输质量%的信号。建议的值:%*默认增益设置为-10(-10dB)% *设置为-20降低增益(-20dB)注:这些是建议值——取决于你的天线%配置,您可能必须调整这些值。txsim。获得= -10;

准备图像文件

该示例从图像文件中读取数据,为传输将其缩放,并将其转换为二进制数据流。

传输图像的大小直接影响传输图像数据所需的LTE无线帧数。的比例系数规模= 0.5需要5个LTE无线帧传输。增加比例因子会导致更多的帧传输;相反,减少比例因子将减少帧的数量。

%输入图像文件并转换为二进制流fileTx =“peppers.png”;%图像文件名fData = imread (fileTx);从文件中读取图像数据Scale = 0.5;图像比例系数origSize =大小(fData);%原始输入图像大小scaledSize = max(地板(规模。* origSize (1:2)), 1);%计算新的图像大小heightIx = min(圆(((1:scaledSize(1)) -0.5)。/规模+ 0.5),origSize (1));widthIx = min(圆(((1:scaledSize(2)) -0.5)。/规模+ 0.5),origSize (2));fData = fData (heightIx、widthIx:);%调整图像大小imsize =大小(fData);存储新的图像大小binData = dec2bin (fData (:), 8);%转换为8位无符号二进制trdata =重塑((bindata-' 0 ')。',1,[])。';创建二进制流

示例中显示要传输的镜像文件。当成功接收并解码图像文件时,示例将显示接收到的图像。

%绘图传输图像图(imFig);imFig.可见=“上”; 子地块(211);imshow(fData);头衔('传输图像');次要情节(212);标题('接收到的图像将显示在此处…');套(GCA,“可见的”“关闭”);%隐藏轴甘氨胆酸组(findall (,“类型”“文本”),“可见的”“上”);%Unvide Title.暂停(1);暂停以绘制Tx图像

产生基带LTE信号

示例使用TS36.101附录A.3中定义的默认配置参数[1来生成RMClteRMCDLTool(LTE工具箱).配置结构中的参数rmc然后可以根据需要定制。这个例子产生一个基带波形,eNodeBOutput,一个完全填充的资源网格,txGrid,以及RMC使用的完整配置lteRMCDLTool(LTE工具箱).该示例使用从输入图像文件创建的二进制数据流trData作为传输编码的输入,并将其打包到物理下行共享通道(PDSCH)中的多个传输块中。为传输生成的帧数取决于导入图像文件时设置的图像缩放。LTE基带信号的生成如下代码所示:

%创建RMCrmc = lteRMCDL (txsim.RC);%根据帧的大小计算需要的LTE帧数%图像数据trBlkSize = rmc.PDSCH.TrBlkSizes;txsim。TotFrames =装天花板(元素个数(trData) /笔(trBlkSize (:)));%自定义RMC参数rmc。NCellID = txsim.NCellID;rmc。NFrame = txsim.NFrame;rmc。TotSubframes = txsim.TotFrames * 10;% 10子帧每帧rmc。CellRefP = txsim.NTxAnts;%配置单元格引用端口数量rmc.pdsch.rvseq = 0;%用虚拟数据填充子帧5rmc.ocngpdschenable =“上”;rmc.OCNGPDCCHEnable=“上”;%如果通过两个信道进行传输,则启用发射分集如果rmc.CellRefP==2 rmc.PDSCH.TxScheme=“TxDiversity”;rmc.pdsch.nlayers = 2;rmc.ocngpdsch.txscheme =“TxDiversity”;结束流('\n '生成LTE传输波形:\n')fprintf('将图像数据打包到%d帧中' \n\n', txsim.TotFrames);%将图像数据打包成一个单一的LTE帧[eNodeBoutput,TxGrid,RMC] = Ltermcdltool(RMC,TRDATA);
生成LTE传输波形:将图像数据打包成5帧(秒)。

准备传输

发射机使用传输保存功能从基于zynq的Radio平台上的DDR存储器以环路方式连续传输基带LTE波形。在命令窗口中显示发送器所应用的信道映射。

sdrtransmitter = sdrtx(txsim.sdrdevicename);sdrtransmitter.basebandsamplerve = rmc.samplingrate;% 15.36 Msps for default RMC (R.7)%,带宽为10 MHzsdrTransmitter。CenterFrequency = txsim.DesiredCenterFrequency;sdrTransmitter。ShowAdvancedProperties = true;sdrTransmitter。BypassUserLogic = true;sdrTransmitter。获得= txsim.Gain;%应用TX通道映射如果txsim。NTxAnts == 2'正在将频道映射设置为'[12]''。\n\n');sdrtransmitter.cannelmapping = [1,2];其他的流('设置通道映射为'1'。\n\n'); sdr.ChannelMapping=1;结束%缩放信号以获得更好的功率输出。powerscalefactor = 0.8;如果txsim。NTxAnts == 2 eNodeBOutput = [eNodeBOutput(:,1).*(1/max(abs(eNodeBOutput(:,1)))*powerScaleFactor)......eNodeBOutput(:, 2)。* (1 / max (abs (eNodeBOutput (:, 2))) * powerScaleFactor)];其他的eNodeBOutput = eNodeBOutput。* (1 / max (abs (eNodeBOutput)) * powerScaleFactor);结束%将发送信号转换为int16——%这是SDR硬件的本机格式。eNodeBOutput=int16(eNodeBOutput*2^15);
设置通道映射为'[1 2]'。

重复传输使用SDR硬件

传输保存功能将基带LTE传输传输到SDR平台,并将信号样本存储在硬件存储器中。该示例在空中连续地传输波形,没有间隙,直到发射器System对象被释放。命令窗口显示消息,确认传输已成功启动。

sdrTransmitter.transmitRepeat (eNodeBOutput);
##连接硬件这个过程可能需要几秒钟。##波形传输已成功启动,无限期地重复。##调用释放方法来停止传输。

接收器设计:系统架构

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

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

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

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

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

  5. 对接收信号执行信道估计。

  6. 解码PDSCH和DL-SCH以从每个无线电帧的传输块获取发送的数据。

  7. 重新组合接收到传输块数据以形成接收的图像。

此示例绘制捕获波形的功率谱密度,并显示估计信道、均衡PDSCH符号和接收图像的可视化。

设置SDR接收器

rxsim结构控制SDR接收器系统对象的属性。接收器的采样率为15.36MHz,这是捕获50个资源块(RBs)LTE带宽的标准采样率。50个RBs相当于10 MHz的信号带宽。

%用户定义的参数---配置与发射机相同rxsim=struct;rxsim.RadioFrontEndSampleRate=sdrTransmitter.BasebandSampleRate;%配置相同的采样率%作为发射机rxsim.RadioCenterFrequency=txsim.DesiredCenterFrequency;rxsim.NRxAnts=txsim.NTxAnts;rxsim.FramesPerCapture=txsim.TotFrames+1;%要捕获的LTE帧数。%捕获1比传输到的LTE帧更多%允许计时偏移环绕…rxsim.numCaptures= 1;%捕获数量%派生参数samplesPerFrame=10e-3*rxsim.RadioFrontEndSampleRate;% LTE帧周期为10毫秒captureTime = rxsim。FramesPerCapture * 10 e - 3;% LTE帧周期为10毫秒

一个comm.SDRRxE3xx系统对象用于从SDR硬件接收基带数据。

rxsim.SDRDeviceName=txsim.SDRDeviceName;sdreceiver=sdrrx(rxsim.SDRDeviceName);sdreceiver.basebandsamplate=rxsim.radiofrontendsampleate;sdreceiver.CenterFrequency=rxsim.RadioCenterFrequency;sdreceiver.OutputDataType=“双”;sdrReceiver。ShowAdvancedProperties = true;sdreReceiver。BypassUserLogic = true;%配置RX通道映射如果rxsim.NRxAnts==2 sdreceiver.ChannelMapping=[1,2];其他的sdreceiver.cannelmapping = 1;结束

LTE接收机设置

该示例假设发送的PDSCH参数已知,从而简化了LTE信号的接收。还假设了FDD双工模式和普通循环前缀长度,以及4个cell-specific reference port (CellRefP)用于MIB解码。实际的CellRefP个数由MIB提供。文中给出了如何从LTE波形中执行盲LTE单元搜索和恢复基本系统信息的信息Cell Search, MIB and SIB1 Recovery(LTE工具箱)实例

enb。PDSCH = rmc.PDSCH;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硬件采样率配置为捕获50个LTE RBs。

信道估计被配置为使用小区特定参考信号来执行。9乘9平均窗口用于最小化噪声的影响。

%信道估计配置结构cec.pilotaverage =“UserDefined”;导频符号平均值的类型cec.freqwindow = 9;RES中的%频率窗口大小cec.timewindow = 9;%时间窗口大小,以REs表示cec。InterpType =“立方”;二维插值型cec。InterpWindow =“中心”;%插值窗口类型cec。InterpWinSize = 3;%插值窗口大小

信号捕获与处理

该示例使用while循环捕获和解码LTE帧突发。由于LTE波形是在空中循环传输的,所以接收端捕捉到的第一帧不能保证是第一帧传输。这意味着帧可能会被打乱顺序解码。为了使接收到的帧能够按照正确的顺序重新组合,必须确定它们的帧号。主信息块(MIB)包含当前系统帧号的信息,因此必须对其进行解码。在确定帧数后,对PDSCH和DL-SCH进行解码,并显示均衡的PDSCH符号。在子帧5中没有数据传输;因此,在解码时忽略子帧的捕获数据。捕获的波形的功率谱密度(PSD)被绘制出来显示接收到的LTE传输。

LTE帧解码成功后,在命令窗口逐帧显示检测到的帧号,并对每一帧显示均衡的PDSCH符号星座。每一帧还显示了小区参考点0和接收天线之间的信道幅度和频率响应的估计。

enbDefault = enb;rxsim.numCaptures%设置默认LTE参数enb = enbDefault;%特别提款权捕获流(开始一个新的RF捕获。\n\n'% rx波形持有|rxsim。FramesPerCapture|连续帧数连续基带LTE采样值%。RX波形=捕获(SDR接收器、捕获时间、,“秒”);如果rxsim。NRxAnts == 2ShowLegend = true;%打开频谱分析仪的图例spectrumScope。ChannelNames = {“特别提款权通道1”'SDR频道2'};结束显示捕获的脉冲功率谱密度spectrumScope。SampleRate = rxsim.RadioFrontEndSampleRate;spectrumScope (rxWaveform);%对已知小区ID执行频率偏移校正频率OFFSET = LTEFREQUENCEOFFSET(eNB,RxWAVEFORM);rxwaveform = ltefRequencyCorrect(eNB,RxWaveForm,频率Officoffset);流('\n修正了%i Hz的频率偏移。'\n 'frequencyOffset)%执行盲小区搜索以获取单元格标识和定时偏移%使用“PostFFT”SSS检测方法来提高速度cellSearch。SSSDetection =“后FFT”;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;流('已更正%i个样本的定时偏移。\n'frameOffset)% 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 = length(rxwaveform)/ sampleperperframe;rxdataframe = zeros(sum(enb.pdsch.trblksizess(:)),numfullframes);recframes = zeros(numfullframes,1);rxsymbols = [];txsymbols = [];%每帧对MIB、PDSCH和DL-SCH进行解码帧= 0:(numFullFrames-1) fprintf('\nPerforming DL-SCH Decode for frame %i of %i in burst:\n'......框架+ 1,numfullframes)%从接收的资源网格的每一帧中提取子帧#0%和信道估计。enb.nsubframe = 0;rxsf = rxgrid(:,frame * lframe +(1:lsf),:);hestsf = hest(:,frame * lframe +(1:lsf),::);% PBCH解调。提取资源元素(REs)%对应于接收到的电网和信道的PBCH%估计解调网格。enb.cellrefp = 4;pbchindices = ltepbchindices(eNB);[pbchrx,pbchhest] = lteextractresources(pbchindices,rxsf,hestsf);[〜,〜,nfmod4,mib,cellrefp] = ltepbchdecode(eNB,pbchrx,pbchhhest,巢);%如果PBCH解码成功CellRefP~=0,则更新信息如果~CellRefP fprintf('没有检测到帧PBCH。\n');继续;结束enb。CellRefP = CellRefP;从ltePBCHDecode %%解码MIB以获取当前帧号eNB = LTEMIB(MIB,eNB);%合并函数的nfmod4值输出% ltePBCHDecode,表示从MIB中建立的NFrame值%是除4外的系统框架号。enb.NFrame=enb.NFrame+nfmod4;fprintf(`成功的MIB解码。\n `)fprintf('帧号:%d.\n', enb.NFrame);%eNodeB传输带宽可能大于%捕获带宽,因此限制处理带宽enb。NDLRB = min (enbDefault.NDLRB enb.NDLRB);%商店收到的帧号重新帧(帧+ 1)= eNB.nframe;%处理帧内的子帧(忽略子帧5)科幻小说= 0:9如果sf~=5%忽略子帧5%提取子帧enb.NSubframe=sf;rxsf=rxGrid(:,frame*LFrame+sf*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(eNB,pcfichrx,pcfichhest,巢穴);% CFI解码eNB.CFI = LTECFIDECODE(CFIBITS);%获取PDSCH索引[pdschIndices,pdschIndicesInfo] = ltePDSCHIndices(enb, enb. info);PDSCH enb.PDSCH.PRBSet);[pdschRx, pdschHest] = lteExtractResources(pdschIndices, rxsf, hestsf);执行解预编码,层映射,解调和%对接收的数据进行解码,使用的估计%的通道[rxEncodedBits, rxEncodedSymb] = ltePDSCHDecode(enb,enb. txt);PDSCH pdschRx,......pdschHest nestsf);将已解码的符号附加到流rxSymbols = [rxSymbols;rxEncodedSymb {}):;% #好< AGROW >%运输块大小outLen = enb.PDSCH.TrBlkSizes (enb.NSubframe + 1);%解码下行链路共享信道(DL-SCH)[decbits{sf+1}, blkcrc(sf+1)] = lteDLSCHDecode(enb,enb. cn);PDSCH,......outLen rxEncodedBits);% #好< SAGROW >%重新介绍EVM计算的传输PDSCH符号%编码传输DLSCHtxRecode = lteDLSCH (enb enb.PDSCH、pdschIndicesInfo.G decbits{科幻+ 1});%调制传输PDSCHtxRemod = ltePDSCH(enb, enb. txt)PDSCH txRecode);%解码传输PDSCH[~,refSymbols]=ltePDSCHDecode(enb,enb.PDSCH,txRemod);%向流中添加编码符号txSymbols=[txSymbols;参考符号{:}];% #好< AGROW >释放(星座);%释放以前的星座图星座(rxencodedsymb {:});绘制电流星座图暂停(0);%允许星座重新粉刷结束结束重新组合已解码的位流('检索解码的传输块数据。\n');rxdata = [];i = 1:长度(decbits)如果i~=6%忽略子帧5rxdata = [rxdata;decbits{我}{}):;% #好< AGROW >结束结束存储接收帧的数据rxDataFrame(:,框架+ 1)= rxdata;%绘制CellRefP 0与接收天线之间的信道估计focalFrameIdx =帧* LFrame + (1: LFrame);图(hh);hh。可见=“上”;focalFrameIdx冲浪(abs(命令(:,1,1)));阴影;包含(“OFDM符号指数”);ylabel(“子载波索引”);zlabel (“级”);头衔(“信道幅度频率响应的估计”);结束rxsim.numCaptures= rxsim.numCaptures-1;结束一旦接收,释放SDR发射器和接收器System对象%完成释放(SDR发射机);释放(SDR接收机);
开始一个新的射频捕获。##连接硬件这个过程可能需要几秒钟。修正了-1.002408e+00 Hz的频率偏移。检测到细胞标识为88。修正了108471个样品的时间偏差。对突发帧1 (5 in burst)执行DL-SCH Decode: MIB Decode成功。帧数:703。检索解码的传输块数据。对突发帧2 (5 in burst)执行DL-SCH Decode: MIB Decode成功。 Frame number: 704. Retrieving decoded transport block data. Performing DL-SCH Decode for frame 3 of 5 in burst: Successful MIB Decode. Frame number: 700. Retrieving decoded transport block data. Performing DL-SCH Decode for frame 4 of 5 in burst: Successful MIB Decode. Frame number: 701. Retrieving decoded transport block data. Performing DL-SCH Decode for frame 5 of 5 in burst: Successful MIB Decode. Frame number: 702. Retrieving decoded transport block data.

结果确认和显示

通过计算发送数据和接收数据之间的误码率(BER)来确定接收数据的质量。然后将接收到的数据转换成图像并显示出来。

确定第一个发送帧的索引(最低接收帧数)[~,frameIdx]=min(recFrames);fprintf('\ n重组接收的数据块:\n');decodedRxDataStream = 0(长度(rxDataFrame (:)), 1);frameLen =大小(rxDataFrame, 1);将接收到的数据块(按照正确的顺序)重新组合成连续的数据流n=1:numFullFrames currFrame = mod(frameIdx-1,numFullFrames)+1;获取当前帧索引DecodedRxDataStream((N-1)* Framelen + 1:n * framelen)= rxdataframe(:,currframe);FrameIDX = FrameDX + 1;增量帧索引结束%进行EVM计算如果~isempty(rxSymbols) evmCalculator = comm.EVM();evmCalculator。MaximumEVMOutputPort = true;[evm.RMS,维生素。Peak = evmCalculator(txSymbols, rxSymbols);流(' EVM峰值= %0.3f%%\n', evm.Peak);流(“EVM RMS=%0.3f%%\n”,evm.rms);其他的流(“没有解码传输块。”);结束%进行误码率计算bitErrorRate = comm.ErrorRate;err = bitErrorRate(decodedRxDataStream(1:length(trData)), trData);流('误码率(BER) = %0.5f.\n',犯错(1));流('位错误数= %d.\n'犯错(2));流('传输位数= %d.\n',长度(trdata));从接收的数据重新创建映像流('\ n从接收的数据构造图像'\n ');str =重塑(sprintf (' % d ',decodedRxDataStream(1:length(trData)),8,[]);decdata=uint8(bin2dec(str));receivedImage=重塑(decdata,imsize);绘制接收图像如果存在(“imFig”“var”)&& ishandle(imfig)%如果TX数字是打开的图(imFig);次要情节(212);其他的图;次要情节(212);结束imshow (receivedImage);标题(sprintf ('接收到的图像:%dx%d天线配置',txsim.ntxants,rxsim.nrxants));
重组接收数据块:EVM峰值= 5.031% EVM RMS = 0.591%误码率(BER) = 0.00000。误码数= 0。传输位数= 1179648。从接收的数据构造图像。

要尝试的事情

默认情况下,该示例使用两个天线来传输和接收LTE波形。您可以修改发射机和接收机以使用单个天线并降低发射机增益,以便在信号接收和处理后观察EVM和BER的差异。您还应该能够看到显示的接收波形中的任何错误形象

故障诊断的例子

针对USRP嵌入式系列无线电的SDR硬件和通信工具箱支持包的故障排除的一般提示可以在金宝app常见问题和修复

选定的参考书目

  1. 3GPP TS 36.191。“用户设备(UE)无线电传输和接收。”第三代合作伙伴计划;技术规范集团无线电接入网络;演化的通用地面无线电接入(E-UTRA)。