这个示例演示了如何使用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硬件平台捕获生成的波形。
在运行此示例之前,请执行以下步骤:
配置您的主机与USRP嵌入式系列无线电的支持包一起工作。金宝app看到指导主机-无线电硬件设置求助。
在运行示例之前,请确保安装了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发射机的总体结构可以描述为:
导入图像文件并将其转换为二进制流。
使用LTE工具箱生成基带LTE信号,将二进制数据流打包到下行链路共享信道DL-SCH的传输块中。
使用SDR硬件准备用于传输的基带信号。
将基带数据发送到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接收机的总体结构描述如下:
使用SDR硬件捕获传输的LTE信号的适当帧数。
确定并纠正接收信号的频率偏移。
同步捕获的信号到LTE帧的开始。
OFDM对接收的信号进行解调,得到一个LTE资源网格。
对接收信号执行信道估计。
解码PDSCH和DL-SCH以从每个无线电帧的传输块获取发送的数据。
重新组合接收到传输块数据以形成接收的图像。
此示例绘制捕获波形的功率谱密度,并显示估计信道、均衡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常见问题和修复.
3GPP TS 36.191。“用户设备(UE)无线电传输和接收。”第三代合作伙伴计划;技术规范集团无线电接入网络;演化的通用地面无线电接入(E-UTRA)。