ヘルプ センターヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ブロック符号化器
code = encode(msg,n,k)
code = encode(msg,n,k,codingMethod,prim_poly)
code = encode(msg,n,k,codingMethod,genmat)
code = encode(msg,n,k,codingMethod,genpoly)
[code,added] = encode(___)
code = encode(msg,n,k) は、ハミング符号化法を使用して、コードワード長 n、メッセージ長 k としてメッセージ msg を符号化します。n の計算値は、整数 m に対して、m ≥ 2 にならなければなりません。n の値は 2m–1、k の値は n–m として計算されます。
code
msg
n
k
例
code = encode(msg,n,k,codingMethod,prim_poly) は、codingMethod をハミング符号化法、prim_poly を原始多項式として msg を符号化します。n の計算値は整数で m≥2 にならなければなりません。
codingMethod
prim_poly
m
code = encode(msg,n,k,codingMethod,genmat) は、codingMethod を線形ブロック符号化法、genmat を生成行列として msg を符号化します。n の計算値は整数で m≥2 にならなければなりません。
genmat
code = encode(msg,n,k,codingMethod,genpoly) は、codingMethod を組織巡回符号、genpoly を生成多項式として msg を符号化します。n の計算値は整数で m≥2 にならなければなりません。
genpoly
[code,added] = encode(___) は、追加の変数 added を返します。added は、符号化前にメッセージ行列の末尾に付加されたゼロの数を示します。前の構文の入力引数を任意に組み合わせて指定できます。
added
すべて折りたたむ
コードワード長とメッセージ長の値を設定します。
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)
入力メッセージ。次のオプションのいずれかとして指定します。
k 列のバイナリの列ベクトルまたは行ベクトル
k 列のバイナリ行列
範囲 [0, 2k–1] の整数の k 列の列ベクトルまたは行ベクトル
例: msg = [0 1 1 0, 0 1 0 1, 1 0 0 1] は k=4 のバイナリ行ベクトルを指定します。
msg = [0 1 1 0, 0 1 0 1, 1 0 0 1]
例: msg = [0 1 1 0; 0 1 0 1; 1 0 0 1] は k=4 のバイナリ行列を指定します。
msg = [0 1 1 0; 0 1 0 1; 1 0 0 1]
例: msg = [6, 10, 9] は k=4 の整数の行ベクトルを指定します。
msg = [6, 10, 9]
データ型: double
double
コードワード長。正の整数として指定します。この値は、関数で 2^m–1 として計算されます。m は 2 以上でなければなりません。
2^m–1
メッセージ長。正の整数として指定します。この値は、関数で n–m として計算されます。m は 2 以上でなければなりません。
'hamming/binary'
'hamming/decimal'
'linear/binary'
...
誤り符号化法と形式。次のいずれかとして指定します。
'linear/decimal'
'cyclic/binary'
'cyclic/decimal'
データ型: char | string
char
string
gfprimdf
(n-k)
原始多項式。次のオプションのいずれかとして指定します。
バイナリ行ベクトル — このベクトルは、prim_poly の係数を昇べきの順に与えます。
文字ベクトルまたは string スカラー — この値は、prim_poly をテキスト表現で定義します。詳細については、多項式の文字ベクトルを参照してください。
正の整数 — この値は、prim_poly を範囲 [2m + 1, 2m + 1 – 1] で定義します。
既定の原始多項式の詳細については、既定の原始多項式を参照してください。原始多項式の表現の詳細については、原始多項式と元の表現を参照してください。
データ型: double | char | string
生成行列。k 行 n 列の数値行列として指定します。
cyclpoly
生成多項式。多項式の文字ベクトルまたはバイナリ生成多項式の係数を昇べきの順に与える行ベクトルとして指定します。[n, k] 巡回符号に対する genpoly の値は、次数が n–k で、xn-1 で割り切れなければなりません。x は識別子です。
出力符号。次の表のオプションのいずれかとして返されます。code の値と次元は、次の表に示すように、msgの値と次元および入力メッセージの形式によって決まります。
バイナリの列ベクトルまたは行ベクトル
2 進数
n 列のバイナリ行列
範囲 [0, 2k–1] の整数の列ベクトルまたは行ベクトル
10 進数
範囲 [0, 2n–1] の整数の列ベクトルまたは行ベクトル
追加の変数。行列を適切なサイズにするために符号化前にメッセージ行列の末尾に付加されたゼロの数として返されます。メッセージ行列のサイズは、n、k、msg、および符号化法によって決まります。
誤り訂正符号化法に応じて、関数 encode はhammgenやcyclgenなどの低水準関数に依存します。
encode
hammgen
cyclgen
R2006a より前に導入
decode | cyclgen | cyclpoly | hammgen
decode
次の 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