Turbo Decode流媒体样本
方法的使用LTE Turbo译码器块来解码数据,以及如何比较硬件友好的设计与LTE工具箱™的结果。
生成帧的随机输入样本在MATLAB®。对样本进行编码,并向数据中添加噪声。
使用LTE工具箱功能解码数据,
lteTurboDecode
.将框架输入数据转换为样本流,并将流导入Simulink®。万博1manbetx
要使用硬件友好的体系结构解码示例,请执行Simulink模型,该模型包含万博1manbetxLTE Turbo译码器块。
将解码后的比特流导出到MATLAB工作区。
将样本流转换回帧数据,并将这些帧与步骤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 *numTurboIterations
*HalfIterationLatency+ (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位
另请参阅
块
功能
lteTurboDecode
(LTE工具箱)