decode
ブロック復号化器
構文
msg = decode(code,n,k,'
hamming/
fmt
',prim_poly)
msg = decode(code,n,k,'linear/
fmt
',genmat,trt)
msg = decode(code,n,k,'cyclic/
fmt
',genpoly,trt)
msg = decode(code,n,k)
[msg,err] = decode(...)
[msg,err,ccode] = decode(...)
[msg,err,ccode,cerr] = decode(...)
オプション入力
入力 | 既定値 |
---|---|
fmt | binary |
prim_poly | gfprimdf(m) ここで、次の式が成り立ちます。n = 2^m-1 |
genpoly | cyclpoly (n,k) |
trt | syndtable を使用してメソッドのパリティ チェック行列に関連するシンドローム復号化テーブルを作成 |
説明
すべての構文に対して
関数 decode
は、誤り訂正符号化手法を使って、符号化されたメッセージを復元します。手法と定義パラメーターは、オリジナルの信号を符号化するために使用されたものと一致しなければなりません。
encode
のリファレンス ページで、n
と k
の意味、fmt
に使用できる値、および code
と msg
に使用できる形式について説明しています。このリファレンスの残り部分を読む前に、それらの説明での使用法について知っておいてください。関数 encode
によって作成されて"いない" 入力引数 code
とともに関数 decode
を使用すると、エラーが発生する場合があります。
特定の構文に対して
msg = decode(code,n,k,'
は、ハミング法を使用して hamming/
fmt
',prim_poly)code
を復号化します。この構文に対して、n
は、3 以上の整数 m に対して 2m-1 の形式でなければならず、k
は n
-m と等しくなければなりません。prim_poly
は、多項式の文字ベクトルまたは符号化プロセスで使用される GF(2m) に対する原始多項式のバイナリ係数を昇べきの順に与える行ベクトルです。prim_poly
の既定値は gfprimdf
(m) です。関数が各符号語の誤りを訂正するために使用する復号化テーブルは syndtable
(hammgen
(m)) です。
msg = decode(code,n,k,'
は、linear/
fmt
',genmat,trt)k
行 n
列の生成行列 genmat
によって決定される線形ブロック符号である code
を復号化します。genmat
は必須入力です。decode
は、復号化テーブル trt
を使用してエラーの修正を試みます。ここで、trt
は2^(n-k)
行 n
列の行列です。
msg = decode(code,n,k,'
は巡回符号 cyclic/
fmt
',genpoly,trt)code
を復号化し、復号化テーブル trt
を使用して誤りの修正を試みます。ここで、trt
は 2^(n-k)
行 n
列の行列です。genpoly
は、多項式の文字ベクトルまたはこの符号のバイナリ生成多項式の係数を昇べきの順に与える行ベクトルです。genpoly
の既定値は cyclpoly
(n,k)
です。定義では、[n
,k
] 巡回符号に対する生成多項式は、次数 n-k
をもち、xn-1
-1 で割り切れなければなりません。
msg = decode(code,n,k)
は、msg = decode(code,n,k,'hamming/binary')
と同じ結果になります。
[msg,err] = decode(...)
は、誤差訂正に関する情報を与える列ベクトル err
を出力します。コードが畳み込み符号の場合は、err
は復号化判定プロセスで使われるメトリクス計算を含みます。その他のコード タイプの場合、err
の r 行目の非負の整数は、r 番目の message 語で訂正された誤り数を示します。負の整数は、r 番目の語には、訂正可能な数よりも多くの誤りがあることを示します。
[msg,err,ccode] = decode(...)
は ccode
で訂正したコードを返します。
[msg,err,ccode,cerr] = decode(...)
は、code
の形式によって意味が異なる列ベクトル cerr
を返します。
code
がバイナリ ベクトルの場合は、vec2mat
cerr
の r 行目の非負の整数は、r 番目の "符号語" で訂正された誤り数を示します。負の整数は、r 番目の符号語には、訂正可能な数よりも多くの誤りがあることを示します。code
がバイナリ ベクトルでない場合は、cerr = err
です。
例
バージョン履歴
R2006a より前に導入