このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
rsdec
リード・ソロモン復号化器
構文
decoded = rsdec(code,n,k)
decoded = rsdec(code,n,k,genpoly)
decoded = rsdec(...,paritypos
)
[decoded,cnumerr] = rsdec(...)
[decoded,cnumerr,ccode] = rsdec(...)
説明
decoded = rsdec(code,n,k)
は、狭義の生成多項式で [n
,k
] リード・ソロモン復号化プロセスを使用して、code
内の受信した信号の復号化を試みます。code
は、それぞれ m ビットをもつシンボルのガロア配列です。code
の各 n
要素行は、破損している組織的コードワードを表します。パリティ シンボルは末尾にあり、左端のシンボルが最上位シンボルです。n
は最大でも 2m-1 です。n
が正確に 2m-1 でない場合、rsdec
は code
を短縮符号の破損したものとみなします。
ガロア配列 decoded
では、各行は code
内の対応する行を復号化する試みを表します。rsdec
が code
内の 1 行に (n-k)/2
個より多い誤りを検出すると "復号化失敗" が発生します。この場合、rsdec
は n-k
個のシンボルを code
の行の末尾から削除するだけで、decoded
の対応する行を作成します。
decoded = rsdec(code,n,k,genpoly)
は、genpoly
の空でない値がコードの生成多項式を指定する以外は、上記の構文と同じです。この場合、genpoly
は生成多項式の係数を降べきの順に並べたガロア行ベクトルです。生成多項式は次数 n-k
をもたなければなりません。既定の狭義の生成多項式を使用する場合、genpoly
を []
に設定します。
decoded = rsdec(...,
は、paritypos
)code
内のパリティ シンボルが符号化処理時にメッセージの末尾に追加されたのかそれとも先頭に追加されたのかを指定します。paritypos
は 'end'
または 'beginning'
のどちらかです。既定の設定は 'end'
です。paritypos
が 'beginning'
である場合、復号化失敗が原因で rsdec
が n-k
個のシンボルを行の末尾ではなく先頭から削除します。
[decoded,cnumerr] = rsdec(...)
は、列ベクトル cnumerr
を返します。各要素は code
の対応する行で訂正された誤りの数です。cnumerr
の値 -1
は、code
内の該当する行における 1 件の復号化失敗を示します。
[decoded,cnumerr,ccode] = rsdec(...)
は、ccode
を返します。これは、訂正されたバージョンの code
です。ガロア配列 ccode
の形式は、code
と同じです。復号化失敗が code
の特定の行で発生すると、ccode
内の対応する行にその行が変更されずに格納されます。
例
制限
n
および k
の差は偶数の整数でなければなりません。n
は、3 から 65535 までの間でなければなりません。
アルゴリズム
rsdec
は、Berlekamp-Massey 復号化アルゴリズムを使用します。このアルゴリズムに関する情報は、下記の参考文献にある文献を参照してください。
参考文献
[1] Wicker, S. B., Error Control Systems for Digital Communication and Storage, Upper Saddle River, NJ, Prentice Hall, 1995.
[2] Berlekamp, E. R., Algebraic Coding Theory, New York, McGraw-Hill, 1968.
バージョン履歴
R2006a より前に導入