前言

交织器的设计对于Turbo码的性能至关重要。一个好的交织器可以有效地打散序列中的错误,使得在解码过程中,通过迭代算法,可以更有效地消除错误,提高解码的准确率。在实践中,交织器的设计需要考虑到编解码的复杂度和性能要求,以达到最佳的编码效果。Turbo码因其出色的近似香农极限性能和高效的迭代解码算法,广泛应用于深空通信、移动通信以及数据传输等多个领域。

个人理解

在信道编码中,一般来说更容易纠正突发错误而不是连续错误,但是在现实生活中大多数错误都是一段的连续错误,这时候信道编码就显得无能为力,所以我们需要找到一种方法使得连续错误转成突然错误,这就是交织器的功能。

步骤

交织器的种类有很多,他们有自身适应的环境,在本章中将介绍一种简单的交织器,如图所示:
img2
我们将数据从左往右写入之后从上到下读出,这种简答的方法能有效的将连续错误转成突然错误,并且计算量很小。

编码后的顺序数学公式如下:
其中K为信息迾,S为输入索引,f1,f2为特定信息长度(K)下的特点数字 (本章中K为40,f1为3,f2为10)
$h(s) = (f_1s + f_2s^2) mod K$

代码实现

函数的输出为交织器编码后的码流

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function data=cross_data(input)
global len
f1=3;
f2=10;
data=zeros(1,len);
indexs=zeros(1,len);
for count=0:39

index=mod( (f1*count+f2*count*count),len-3);
indexs(1,count+1)=index+1;
end

for count=1:len-3
data(1,count)=input(1,indexs(1,count) );
end
end

结语

本章节中的交织器极为简单,现代的交织器采用的方案是映射表实现映射的随机交织器。这种类型的交织器性能极为优秀。

整点二次元

img2