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