最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bchenc

説明

code = bchenc(msg,N,K) は、狭義の生成多項式を使用する (N,K) BCH 符号化器を使用して入力メッセージを符号化します。Bose–Chaudhuri–Hocquenghem (BCH) 符号化については、[1]を参照してください。

code = bchenc(msg,N,K,paritypos) は、符号化された入力メッセージの末尾または先頭にパリティ シンボルを追加して出力を作成します。

すべて折りたたむ

GF(2) のガロア配列の BCH パラメーターを設定します。

M = 4;
n = 2^M-1;   % Codeword length
k = 5;       % Message length
nwords = 10; % Number of words to encode

メッセージを作成します。

msgTx = gf(randi([0 1],nwords,k));

誤り訂正能力を求めます。

t = bchnumerr(n,k)
t = 3

メッセージを符号化します。

enc = bchenc(msgTx,n,k);

最大 t ビットまで各符号語を破損させます。

noisycode = enc + randerr(nwords,n,1:t);

ノイズを含む符号を復号化します。

msgRx = bchdec(noisycode,n,k);

メッセージが適切に復号化されたことを検証します。

isequal(msgTx,msgRx)
ans = logical
   1

可能な誤りの数を増やし、ノイズを含む別の符号語を生成します。

t2 = t + 1;
noisycode2 = enc + randerr(nwords,n,1:t2);

新規に受信した符号語を復号化します。

[msgRx2,numerr] = bchdec(noisycode2,n,k);

訂正された誤り数 numerr を調べ、メッセージが適切に復号化されたかどうかを判定します。-1 のエントリは復号化失敗に相当します。これは、指定した [n,k] ペアで訂正できるよりも多くの誤りが符号語にあった場合に発生します。

numerr
numerr = 10×1

     1
     2
    -1
     2
     3
     1
    -1
     4
     2
     3

送信された 10 個の符号語のうちの 2 個を適切に受信しませんでした。

入力引数

すべて折りたたむ

符号化するメッセージ。GF(2) 上のシンボルのガロア配列として指定します。msg の各 K 要素行は、メッセージ ワードです。左端のシンボルが最上位シンボルです。

詳細については、ガロア体配列の作成を参照してください。

例: msgTx = gf(randi([0 1],10,5))、ここで msgTx は 10 行 5 列の gf array です。

符号語長。形式 N = 2M–1 の整数として指定します。ここで M は 3 ~ 16 の整数です。詳細については、ヒントを参照してください。

例: M=4 の場合は 15

メッセージ長。整数として指定します。N および K は、狭義の BCH 符号を生成しなければなりません。

例: 5 は 5 つの要素をもつガロア配列を指定します。

パリティ位置。'end' または 'beginning' として指定します。パリティ シンボルは、出力ガロア配列の各ワードの末尾または先頭にあります。

出力引数

すべて折りたたむ

符号化されたメッセージ。ガロア配列として返されます。パリティ シンボルは、出力ガロア配列の各ワードの末尾または先頭にあります。パリティ シンボルの位置を指定するには、paritypos 引数を使用します。

ヒント

  • 有効な (N,K) ペアと誤り訂正能力の対応する値の一覧を生成するには、bchnumerr(N) を実行します。

  • 有効な値は N = 2M–1 です。ここで M は 3 ~ 16 の整数です。N の最大許容値は 65,535 です。

参照

[1] Clark, George C., Jr., and J. Bibb Cain. Error-Correction Coding for Digital Communications, New York: Plenum Press, 1981.

R2006a より前に導入