ヘルプ センターヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ブロック復号化器
msg = decode(code,n,k)
msg = decode(code,n,k,codingMethod,prim_poly)
msg = decode(code,n,k,codingMethod,genmat)
msg = decode(code,n,k,codingMethod,genmat,trt)
msg = decode(code,n,k,codingMethod,genpoly)
msg = decode(code,n,k,codingMethod,genpoly,trt)
[msg,err,ccode,cerr] = decode(___)
msg = decode(code,n,k) は、符号化されたメッセージ code を復号化します。この関数は、コードワード長 n、メッセージ長 k でハミング符号化法が使用されたと仮定します。
msg
code
n
k
例
msg = decode(code,n,k,codingMethod,prim_poly) は、符号化に使用された原始多項式が prim_poly であると仮定して code を復号化します。この構文は、codingMethod が 'hamming/binary' または 'hamming/decimal' である場合に適用されます。
codingMethod
prim_poly
'hamming/binary'
'hamming/decimal'
msg = decode(code,n,k,codingMethod,genmat) は、符号化に使用された生成行列が genmat であると仮定して code を復号化します。この構文は、codingMethod が 'linear/binary' または 'linear/decimal' である場合に適用されます。
genmat
'linear/binary'
'linear/decimal'
msg = decode(code,n,k,codingMethod,genmat,trt) は、さらに、復号化テーブル trt を指定します。この構文は、codingMethod が 'linear/binary' または 'linear/decimal' である場合に適用されます。
trt
msg = decode(code,n,k,codingMethod,genpoly) は、符号化に使用された生成多項式が genpoly であると仮定して code を復号化します。この構文は、codingMethod が 'cyclic/binary' または 'cyclic/decimal' である場合に適用されます。
genpoly
'cyclic/binary'
'cyclic/decimal'
msg = decode(code,n,k,codingMethod,genpoly,trt) は、さらに、復号化テーブル trt を指定します。この構文は、codingMethod が 'cyclic/binary' または 'cyclic/decimal' である場合に適用されます。
[msg,err,ccode,cerr] = decode(___) は、さらに、前の構文の入力引数の任意の組み合わせを使用して、メッセージ語の誤り err、訂正されたコードワード ccode、およびコードワードの誤り cerr を返します。
err
ccode
cerr
すべて折りたたむ
コードワード長とメッセージ長の値を設定します。
n = 15; % Codeword length k = 11; % Message length
メッセージ長と等しい長さのランダムなバイナリ メッセージを作成します。
data = randi([0 1],k,1);
メッセージを符号化します。
encData = encode(data,n,k,'hamming/binary');
ランダムな場所に誤りを加えて、符号化されたメッセージを破損させます。
errLoc = randerr(1,n); encData = mod(encData + errLoc',2);
破損したシーケンスを復号化します。復号化器がメッセージを正しく復元したことを確認します。
decData = decode(encData,n,k,'hamming/binary'); numerr = biterr(data,decData)
numerr = 0
n = 7; % Codeword length k = 3; % Message length
巡回生成多項式を作成します。次に、パリティ チェック行列を作成し、生成行列に変換します。
pol = cyclpoly(n,k); parmat = cyclgen(n,pol); genmat = gen2par(parmat);
生成行列を使用してメッセージ シーケンスを符号化します。
encData = encode(data,n,k,'linear/binary',genmat);
decData = decode(encData,n,k,'linear/binary',genmat);
Single-error patterns loaded in decoding table. 8 rows remaining. 2-error patterns loaded. 1 rows remaining. 3-error patterns loaded. 0 rows remaining.
numerr = biterr(data,decData)
n = 15; % Codeword length k = 5; % Message length
巡回符号に対する生成多項式を作成します。生成多項式を使用してパリティ チェック行列を作成します。
genpoly = cyclpoly(n,k); parmat = cyclgen(n,genpoly);
パリティ チェック行列を使用してシンドローム復号化テーブルを作成します。
trt = syndtable(parmat);
Single-error patterns loaded in decoding table. 1008 rows remaining. 2-error patterns loaded. 918 rows remaining. 3-error patterns loaded. 648 rows remaining. 4-error patterns loaded. 243 rows remaining. 5-error patterns loaded. 0 rows remaining.
生成多項式を使用してデータを符号化します。
encData = encode(data,n,k,'cyclic/binary',genpoly);
ランダムな場所に 3 つの誤りを加えて、符号化されたメッセージを破損させます。
errLoc = randerr(1,n,3); encData = mod(encData + errLoc',2);
decData = decode(encData,n,k,'cyclic/binary',genpoly,trt); numerr = biterr(data,decData)
入力符号。次のいずれかのオプションとして指定します。
バイナリの列ベクトルまたは行ベクトル
n 列のバイナリ行列
範囲 [0, 2n–1] の整数の列ベクトルまたは行ベクトル
データ型: single | double
single
double
コードワード長。正の整数として指定します。この値は、関数で 2m–1 として計算されます。m は 2 以上の整数です。
2m–1
メッセージ長。正の整数として指定します。この値は、関数で n–m として計算されます。m は 2 以上でなければなりません。
...
誤り符号化法と形式。次のいずれかのオプションとして指定します。
この入力で選択した値によって、使用すべき構文が決まります。この表は、その依存関係をまとめたものです。最初の構文を使用する場合は codingMethod の値を指定しないため、その構文はこの表に示されていません。
データ型: char | string
char
string
gfprimdf
(n-k)
原始多項式。次のオプションのいずれかとして指定します。
バイナリ行ベクトル — このベクトルは、prim_poly の係数を昇べきの順に与えます。
文字ベクトルまたは string スカラー — この値は、prim_poly をテキスト表現で定義します。詳細については、Communications Toolbox での多項式の表現を参照してください。
正の整数 — この値は、prim_poly を範囲 [2m + 1, 2m + 1 – 1] で定義します。
詳細については、既定の原始多項式および原始多項式と元の表現を参照してください。
この引数は、CodingMethod を 'hamming/binary' または 'hamming/decimal' に設定した場合に適用されます。
CodingMethod
データ型: double | char | string
生成行列。k 行 n 列の数値行列として指定します。
この引数は、CodingMethod を 'linear/binary' または 'linear/decimal' に設定した場合に適用されます。
データ型: double
cyclpoly
生成多項式。多項式の文字ベクトルまたはバイナリ生成多項式の係数を昇べきの順に与える行ベクトルとして指定します。[n, k] 巡回符号に対する genpoly の値は、次数が n–k で、xn–1 で割り切れなければなりません。x は識別子です。
この引数は、CodingMethod を 'cyclic/binary' または 'cyclic/decimal' に設定した場合に適用されます。
復号化テーブル。2n-k 行 n 列のバイナリ行列として指定します。関数 syndtable を使用して復号化テーブルを作成します。
n-k
syndtable
この引数は、CodingMethod を 'linear/binary'、'linear/decimal'、'cyclic/binary'、または 'cyclic/decimal' に設定した場合に適用されます。
復号化されたメッセージ。次の表のオプションのいずれかとして返されます。msg の値と次元は、code の値と次元および入力メッセージの形式によって決まります。
2 進数
k 列のバイナリ行列
10 進数
範囲 [0, 2k–1] の整数の列ベクトルまたは行ベクトル
メッセージの誤り訂正情報。整数の列ベクトルとして返されます。ベクトルの長さはメッセージ語の数に等しくなります。このベクトルのエントリは、次の値を取ります。
0 — 対応するメッセージ語に誤りは検出されなかった。
0
1 — 対応するメッセージ語に誤りが検出されて訂正された。
1
–1 — 復号化アルゴリズムが対応するメッセージ語で訂正能力を超える数の誤りを検出した。
–1
訂正された符号。以下のオプションのいずれかとして返されます。
n 列のバイナリの列ベクトルまたは行ベクトル
範囲が [0, 2n–1] である n 個の整数エントリから成る列ベクトルまたは行ベクトル
ccode の形式は、code の形式と一致します。
コードワードの誤り訂正情報。整数の列ベクトルとして返されます。ベクトルの長さはメッセージ語の数に等しくなります。この出力の意味は、code の形式によって異なります。code がバイナリ ベクトルでない場合、cerr は err と等しくなります。code がバイナリ ベクトルの場合、この出力にはコードワードの誤り検出情報が含まれます。この情報は、err と同じ方法で与えられます。
decode は、復号化手法によって異なり、hammgen、syndtable、cyclgen などの低水準関数に依存します。
decode
hammgen
cyclgen
R2006a より前に導入
encode | cyclpoly | syndtable | gen2par
encode
gen2par
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office