RS码在MATLAB中的实现
- 格式:doc
- 大小:132.00 KB
- 文档页数:10
RS码在MATLAB中的实现
摘要:论文在简单介绍RS码的基础上,在Matlab环境中编写了rs_rscode或rs_rrscode函数实现了RS(7,3)码的编码解码过程;为RS码以后在DSP和FPGA中的实现打下了基础;最后有RS编解码的联合调试代码;实现其应有功能。
关键词:RS码 MATLAB GF域
编码的实质上是对信源的符号按一定的数学规则进行的一种变换。以便于在信道中高效的传输,解码就是编码的逆过程,一些优秀的编码能纠正传输中出现的错误;其中RS就是一种纠错能力极强的编码规则。
为实现高速数字系统所要求的可靠性,几乎所有的现代通信系统都把纠错编码作为一个组成部分,RS纠错编码(Reed-Solomon codes)是目前最有效,最广泛的差错编码方式之一,首先是由Irving Reed和Gus Solomon于1960年构造出来的一类多进制BCH码,它不但是 可以纠正随机错误,突发错误以及二者的结合,而且可以用来构造其他类码,因此RS码在卫星通信,数字电视传输以及磁记录系统等许多领域得到广泛的应用。
RS是q进制的BCH码。RS码的每个码元取值为q元符号集{0,0 ,1,…,q-2 },实用通常取q为2的幂次(q=2m),使q元符号集的所有非零元素{0,1,…,q-2}是基于某个m次本原多项式的GF(2m)扩域的元素。编码时,每m个信息比特映射为一个q进制码元,q=2m 便于与具有4,8,16,32…点数星座的PSK或QAM调制信号集相匹配。近年来采用最多的是m=8,即q=28 =256进制的RS码,以便将整个8 bit字节为RS码的一个码元。
本原RS码具有如下参数:
码长n=q-1,校验位n-k=2t,最小距离dmin =n-k+1,
生成多项式 g(x)=(x-)(x-2), … ,(x-2t)
= n-kxn-k+n-k-1xn-k-1+…+1x+0
式中,g(x)的各次系数I (i=0…n-k){0, 1,,2,…,q-2}。
对照式dmin ≤(n-k-1)可知,RS码是极大最小距离(MDC)码,从这种码的n、k值立即可断定其纠错能力
t =int [(dmin -1)/2] = int [( n-k)/2]
RS码的重要分布是已知的。在码重多项式第i次项的系数(重要为i的码字个数)是
Ai = in (q-1)min0)1(Dijj ji1 qi-j-Dmin , i≥dmin
RS码由于性能优良而得到了广泛应用。优点之一是其纠错能力已发挥到极限,与MDC码相同。优点之二是RS码存在一种有效的硬判决译码的算法,使得该码能应用于许多需要长码的场合。第三是q进制RS码的二进衍生码具有良好的抗突发差错能力。
GF映射表:
幂次k 的多项式 系数3重 对应的最小多项式 0
1
2
3
4
5
6 1
1
2
+1
2+
2++1
2+1 (001)
(010)
(100)
(011)
(110)
(111)
(101) x+1
x3 +x+1
x3 +x+1
x3 +x2+1
x3 +x+1
x3 +x2+1
x3 +x2+1
RS编码译码流程图:
所有的信号源
RS编码
所有正确的编码信号 随机信号
RS编码
得到的正确编码信号
信道噪声
接收到的信号
RS译码
输出信号
计算误码率
RS码编码,译码在MATLAB中的实现参考程序:
(一)、所有可能的信号:
function x=a_msg(x)
x=[0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
0 1 0
0 1 1
0 1 2
0 1 3
0 1 4
0 1 5
0 1 6
0 1 7
0 2 0
0 2 1
0 2 2
0 2 3
0 2 4
0 2 5
0 2 6
0 2 7
0 3 0
0 3 1
0 3 2
0 3 3
0 3 4
0 3 5
0 3 6
0 3 7
0 4 0
0 4 1
0 4 2
0 4 3
0 4 4 0 4 5
0 4 6
0 4 7
0 5 0
0 5 1
0 5 2
0 5 3
0 5 4
0 5 5
0 5 6
0 5 7
0 6 0
0 6 1
0 6 2
0 6 3
0 6 4
0 6 5
0 6 6
0 6 7
0 7 0
0 7 1
0 7 2
0 7 3
0 7 4
0 7 5
0 7 6
0 7 7
1 0 0
1 0 1
1 0 2
1 0 3
1 0 4
1 0 5
1 0 6
1 0 7
1 1 0
1 1 1 1 1 2
1 1 3
1 1 4
1 1 5
1 1 6
1 1 7
1 2 0
1 2 1
1 2 2
1 2 3
1 2 4
1 2 5
1 2 6
1 2 7
1 3 0
1 3 1
1 3 2
1 3 3
1 3 4
1 3 5
1 3 6
1 3 7
1 4 0
1 4 1
1 4 2
1 4 3
1 4 4
1 4 5
1 4 6
1 4 7
1 5 0
1 5 1
1 5 2
1 5 3
1 5 4
1 5 5
1 5 6 1 5 7
1 6 0
1 6 1
1 6 2
1 6 3
1 6 4
1 6 5
1 6 6
1 6 7
1 7 0
1 7 1
1 7 2
1 7 3
1 7 4
1 7 5
1 7 6
1 7 7
2 0 0
2 0 1
2 0 2
2 0 3
2 0 4
2 0 5
2 0 6
2 0 7
2 1 0
2 1 1
2 1 2
2 1 3
2 1 4
2 1 5
2 1 6
2 1 7
2 2 0
2 2 1
2 2 2
2 2 3
2 2 4
2 2 5
2 2 6
2 2 7
2 3 0
2 3 1
2 3 2 2 3 3
2 3 4
2 3 5
2 3 6
2 3 7
2 4 0
2 4 1
2 4 2
2 4 3
2 4 4
2 4 5
2 4 6
2 4 7
2 5 0
2 5 1
2 5 2
2 5 3
2 5 4
2 5 5
2 5 6
2 5 7
2 6 0
2 6 1
2 6 2
2 6 3
2 6 4
2 6 5
2 6 6
2 6 7
2 7 0
2 7 1
2 7 2
2 7 3
2 7 4
2 7 5
2 7 6
2 7 7
3 0 0
3 0 1
3 0 2
3 0 3
3 0 4
3 0 5
3 0 6 3 0 7
3 1 0
3 1 1
3 1 2
3 1 3
3 1 4
3 1 5
3 1 6
3 1 7
3 2 0
3 2 1
3 2 2
3 2 3
3 2 4
3 2 5
3 2 6
3 2 7
3 3 0
3 3 1
3 3 2
3 3 3
3 3 4
3 3 5