RS 码是一类纠错能力很强的多进制BCH 码,由于采用了q 进制,所以它是多进制调制时的自然和方便的编码手段。因为RS 码能够纠正t 个q 位二进制码,即 可以纠正≤q 位二进制错误(当然,对于 q 位二进制码中分散的单个错误也能被纠正),所以适合于在衰落信道中使用,以 克服突发性差错。另外RS 码也被应用在计算机存储系统中,以克服这系统中存在的差错串。
RS编码过程:
(1)得到RS码的生成多项式g(x)
(2)用信息码多项式 m(x)除以生成多项式 g(x),所得余式 r(x)为监督码多项式,将 监督码多项式r(x)置于信息码多项式之后,形成RS 码。
GF(2m)域中计算,码字长度:n=2m-1,纠错能力:t=(n-k)/2
matlab相应函数:
1)rsgenpoly:
Generator polynomial of Reed-Solomon code
genpoly = rsgenpoly(n,k,prim_poly)
genpoly = rsgenpoly(n,k,prim_poly) returns the narrow-sense generator polynomial of a Reed-Solomon code with codeword length n and message length k. The codeword length n must have the form 2m-1 for some integer m, and n-k must be an even integer. The output genpoly is a Galois row vector that represents the coefficients of the generator polynomial in order of descending powers. The narrow-sense generator polynomial is (X - A1)(X - A2)...(X - A2t) where A is a root of the default primitive polynomial for the field GF(n+1) and t is the code's error-correction capability, (n-k)/2. prim_poly is an integer whose binary representation indicates the coefficients of the primitive polynomial. To use the default primitive polynomial GF(n+1), set prim_poly to [].If prim