主要内容

Turbo Decode流媒体样本

方法的使用LTE Turbo译码器块来解码数据,以及如何比较硬件友好的设计与LTE工具箱™的结果。

  1. 生成帧的随机输入样本在MATLAB®。对样本进行编码,并向数据中添加噪声。

  2. 使用LTE工具箱功能解码数据,lteTurboDecode

  3. 将框架输入数据转换为样本流,并将流导入Simulink®。万博1manbetx

  4. 要使用硬件友好的体系结构解码示例,请执行Simulink模型,该模型包含万博1manbetxLTE Turbo译码器块。

  5. 将解码后的比特流导出到MATLAB工作区。

  6. 将样本流转换回帧数据,并将这些帧与步骤2中解码的帧进行比较。

生成输入数据帧。Turbo对数据进行编码,调制消息,并向结果星座添加噪声。解调噪声星座并生成软位值。使用生成参考解码数据lteTurboDecode.对于硬件友好型模型,将软位转换为定点数据类型。

rng (0);Numframes = 2;txBits = cell(1,numframes);softBits = cell(1,numframes);rxBits = cell(1,numframes);Inframes = cell(1,numframes);ii = 1:numframes txBits{ii} = randi([0 1],6144,1);codedData = lteTurboEncode(txBits{ii});txSymbols = ltesymbolmodululate (codedData,“正交相移编码”);噪声= 0.5*complex(randn(size(txSymbols)),randn(size(txSymbols))));rxSymbols = txSymbols +噪声;softBits{ii} = lteSymbolDemodulate(rxSymbols,“正交相移编码”“软”);rxBits{ii} = lteTurboDecode(softBits{ii});inframes{ii} = fi(softBits{ii},1,5,2);结束

序列化Simulink模型的输入数据。万博1manbetx在帧与帧之间留出足够的时间,以便在下一帧开始之前对每一帧进行完全解码。的LTE Turbo译码器方块占用2 *numTurboIterationsHalfIterationLatency+ (inframesize/samplesizeIn)循环以完成帧的解码。有关HalfIterationLatency计算参见Turbo Decoder块参考页。

LTE Turbo译码器块期望输入样本与奇偶校验位交错。

Hardware-friendly输入:S_1 p1_1 p2_1 s2 p1_2 p2_2…Sn P1_n P2_n

LTE工具箱输入:s_2…S_n P1_1 P1_2…P1_n P2_1 P2_2…P2_n

控件的交错选项重新排序示例whdlFramesToSamples函数。

Inframesize = size(inframes{1},1);%包括4个尾钻头样本Encoderrate = 3;% rate 1/3 Turbo代码samplesizeIn = encoderrate;% 3样品在同一时间Idlecyclesbetweensamples = 0;outframesize = size(txBits{1},1);numTurboIterations = 6;halfIterationLatency = (ceil(outframesize/32)+3)*32;%窗口大小=32algframedelay = 2*numTurboIterations*halfIterationLatency+(inframesize/samplesizeIn);Idlecyclesbetweenframes = algframedelay;interleavessamples = true;[sampleIn, ctrlIn] =...whdlFramesToSamples (inframes...idlecyclesbetweensamples,...idlecyclesbetweenframes,...samplesizeIn,...interleaveSamples);

运行Simuli万博1manbetxnk模型。模拟时间等于输入样本的个数。由于帧之间增加了空闲周期,流输入数据包含足够的周期,以使模型完成两帧的解码。

Sampletime = 1;simTime = size(ctrlIn, 1);modelname =“ltehdlTurboDecoderModel”;open_system (modelname);sim (modelname);

Simu万博1manbetxlink模型导出sampleOut而且ctrlOut回到MATLAB工作区。反序列化输出样本,并与解码后的帧进行比较。

outframes = whdlSamplesToFrames(sampleOut,ctrlOut);流('\nLTE Turbo Decoder\n');ii = 1:numframes numBitsDiff = sum(outframes{ii} ~= rxBits{ii});流([“框架%d:行为和”...'HDL模拟相差%d bits\n'),二、numBitsDiff);结束
最大帧大小计算为6144个样本。帧1:行为模拟和HDL模拟相差0位帧2:行为模拟和HDL模拟相差0位

另请参阅

功能

相关的话题