随机交织器

可怜的低于平均水平平均很好杰出的(4平均票数:5(共5个)

随机交织器:

随机交织器使用随机排列重新排列其输入向量的元素。使用一系列生成的排列器索引重新排列传入数据。置换器本质上是一种生成给定内存地址的伪随机置换的设备。数据按照存储器地址的伪随机顺序排列。

解交织器必须以与交织器相同的顺序准确地知道置换器的诱导。解交织器通过了解置换器的诱导,将交织后的数据安排回原始状态。

随机交织器
随机交织器

交织器深度(D)(不知道这个词是什么意思单击此处)本质上是一次用于排列的存储器地址的数量。如果用于置换的内存地址数量增加,交织器深度也会增加。

在下面给出的Matlab仿真中,交织器深度为15用于说明。这意味着一次取15个字母并进行排列(随机重新排列)。对于下一个由15个字母组成的块,将连续重复此过程。

从仿真中可以看到,增加交织器深度将增加交织数据中的随机度,并将减少去交织操作后的最大突发长度。

Matlab代码:

下面给出了一个模拟上述随机交织器的示例Matlab代码。输入数据是以下符号的重复流–“THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_”。此代码仅模拟交织/解交织部分。信道产生的突发错误用“*‘.

%伪随机交织器/解交织器的演示%作者:Mathuranathanhttps://www.gaussianwaves.com%许可证-Creative Commons-cc-by-nc-sa 3.0clc;清晰;%____________________________________________%输入参数%____________________________________________D=15;%交错深度。D值越大,随机性越大n=5;%要发送的数据块数。data='THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_';%用作数据的常量模式%____________________________________________%使数据长度为D的倍数。这是为了%仅演示。否则,必须将空白填充为零。数据=repmat(数据,1,n);%发送n个指定数据模式的块如果mod(长度(数据),D)~=0数据=[数据数据(1:(D*(fix(length(data)/D+1)))-长度(data,data))];结束%我们正在发送D个类似数据块%intlvrInput=报告(数据(1:n),[1D]);%fprintf('将数据输入到交织器->\n');%disp(char(intlvrInput));%显示(“_____________________________________________________________________________”);%INTERLEAVER公司%逐行写入交织器permuterIndex=randperm(D);内部输出=[];指数=1;i=1时:固定(长度(数据)/D)intrlvrOutput=[intrlvr输出数据(permuterIndex+(i-1)*D)];结束i=1:mod(长度(数据),D)intrlvrOutput=[intrlvr输出数据(permuterIndex(i)+修复(长度(数据)/D)*D)];结束uncorrustedIntrlvrOutput=内部输出;%插入10'*'会损坏交织器输出intrlvrOutput(1,25:34)=零(1,10)+42;%去INTERLEAVERdeintrlvrOutput=[];对于i=1:fix(长度(intrlvrOutput)/D)deintrlvrOutput(permuterIndex+(i-1)*D)=内部输出((i-1”*D+1:i*D);结束i=1:mod(长度(intrlvrOutput),D)deintrlvrOutput((fix(length(intrlvrOutput)/D))*permuterIndex+i)=intrlvr输出((i+1):(i+1,*D);结束deintrlvrOutput=char(deintrlverOutput);disp(“给定数据-->”);disp(数据);显示(“”)disp(“Permuter索引-->”)disp(permuterIndex);显示(“”)disp(“伪随机交织器输出-->”);disp(uncorrutedIntrlvrOutput);显示(“”)disp('Interleaver Output been corrupt by 10 symbols of burst error-marked by''*''->');disp(char(intrlvrOutput));显示(“”)disp(“伪随机解交织器输出-->”);disp(deintrlvrOutput);

模拟结果:

给定数据–>
快速rown_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX
_跳投_越过_ HE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_越过_ THE_LAZY
_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BREWN
_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_Q跳投

Permuter指数–>
15 1 11 9 7 12 5 6 13 4 2 10 3 8 14

伪随机交织器输出–>
NTBKIRQUO_H_ECWR__POO_JVXFSOMET_DYAO_LGET_HZ__HR_COUIWQEB_KN公司_
FOSMVJUE_O_XPRHTO_ZGLA__HDEYTFEOBKWICNU_RQ__TOV_PEUMRJXO_S_EH
GDY_AZTLEO_HO_WR_NCK_IQUOBFHXEOSRMP_U_VJ_T_E_O_TZYHA_GLDEXQN公司
OB_K_FCUWIROE_RV__PSTMJEUOHQ_TGDHY_EZL_AO公司_

被10个突发错误符号损坏后的交织器输出-标记为“*‘->
新冠肺炎**********AO_LGET_HZ__HR_COUIWQEB_KN_FOS公司
MVJUE_O_XPRHTO_ZGLA__HDEYTFEOBKWICNU_RQ__TOV_PEUMRJXO_S_EHGDY
_AZTLEO__HO_WR_NCK_IQOUBFHXEOSRMP_uvj_T_E_O_TZYHA_GLDEXQNOB_K
_FCUWIROE_RV__PSTMJEUOHQ_TGDHY_EZL_AO公司_

伪随机解交织器输出–>
THE_QUICK_BROWN(快速浏览)_***_JU公司*P(P)*_OV公司**THE_LAZ公司*_*OG公司_*HE_快速_路况_福克斯_
跳线_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER-THE_LA
ZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_快速_BR
OWN_FOX_跳线_OVER_THE_LAZY_DOG_THE_Q

从上面的仿真可以看出,即使信道引入了10个连续突发错误符号,交织器/解交织器操作也有效地分配了错误,并将最大突发长度减少到了3个符号。

另请参见:

[1]交织器和去交织器简介
[2]RS码的分组交织器设计

其他资源:

[1]级联和高级代码-交织器的应用-斯坦福大学

推荐图书

我们的综合书店有更多推荐书

发表您的宝贵意见!!!