Main Content

tpcenc

ターボ積符号 (TPC) 符号化器

説明

code = tpcenc(msg,N,K) は、コードワード長 N とメッセージ長 K により指定される 2 つの線形ブロック符号を使用して、入力メッセージ msg の 2 次元 TPC 符号化を実行します。2 次元 TPC 符号化の詳細については、ターボ積符号の構築を参照してください。

code = tpcenc(msg,N,K,S) は、コードワード長 (NK+S) とメッセージ長 S により指定される 2 次元 TPC 符号化器を使用して、長さ S の短縮形の入力メッセージの 2 次元 TPC 符号化を実行します。

すべて折りたたむ

拡張されたハミング符号と拡張 BCH 符号で 2 次元ターボ積符号化 (TPC) を使用することでランダム ビット ベクトルを符号化します。

TPC 符号化用の (N,K) 符号ペアを指定します。

N = [32;64]; 
K = [21;57]; 

ランダム メッセージ ビットの列ベクトルを生成します。メッセージ ビットの目的の長さは、K の要素の積です。

msg = randi([0 1],prod(K),1);

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

code = tpcenc(msg,N,K);

符号化されたコードワードの長さが N の要素の積であることを確認します。

size(code)
ans = 1×2

        2048           1

prod(N)
ans = 2048

2 次元ターボ積符号化 (TPC) を使用してメッセージの短縮化を適用し、ランダム ビット ベクトルを符号化します。

TPC 符号化用の (N,K) 符号ペアと S を指定します。

N = [32;64];
K = [21;57];
S = [19;24];

ランダム メッセージ ビットの列ベクトルを生成します。短縮メッセージ ビットの目的の長さは、S の要素の積です。

msg = randi([0 1],prod(S),1);

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

code = tpcenc(msg,N,K,S);

符号化されたコードワードの長さが (N-K+S) の要素の積であることを確認します。

size(code)
ans = 1×2

   930     1

prod(N-K+S)
ans = 930

入力引数

すべて折りたたむ

符号化する入力メッセージ ビット。列ベクトルとして指定します。

  • フルレングスの入力メッセージでは、列ベクトルの長さは、K の要素の積でなければなりません。

  • 短縮形の入力メッセージでは、列ベクトルの長さは、S の要素の積でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

コードワード長。2 要素の整数ベクトル [NR; NC] として指定します。NR は、積符号行列の行数を表します。NC は、積符号行列の列数を表します。NR および NC の詳細については、ターボ積符号の構築を参照してください。有効な (N(i),K(i)) 符号ペアの一覧については、コンポーネント符号を参照してください。

データ型: double

メッセージ長。2 要素の整数ベクトル [KR; KC] として指定します。フルレングスのメッセージの場合、符号化するメッセージ ビットを含む入力列ベクトルは、KR 行 KC 列の行列に調整されます。KR は、メッセージ行列の行数を表します。KC は、メッセージ行列の列数を表します。KR および KC の詳細については、ターボ積符号の構築を参照してください。有効な (N(i),K(i)) 符号ペアの一覧については、コンポーネント符号を参照してください。

データ型: double

短縮メッセージ長。2 要素の整数ベクトル [SR; SC] として指定します。短縮メッセージの場合、符号化するメッセージ ビットを含む入力列ベクトルは、SR 行 SC 列の行列に調整されます。SR は、行列の行数を表します。SC は、行列の列数を表します。SR および SC の詳細については、ターボ積符号の構築を参照してください。

このパラメーターを指定する場合は、(N(i)–K(i)+S(i), S(i)) 符号に短縮されたフルレングスの TPC 符号の N ベクトルと K ベクトルを指定します。

データ型: double

出力引数

すべて折りたたむ

TPC 符号化されたメッセージ。入力メッセージ ビットと同じデータ型の列ベクトルとして返されます。

  • フルレングスの入力メッセージでは、返される列ベクトルの長さは、N の要素の積です。

  • 短縮形の入力メッセージでは、返される列ベクトルの長さは、(NK+S) の要素の積です。

詳細

すべて折りたたむ

コンポーネント符号

次の表に、行 (NR,KR) パラメーターおよび列 (NC,KC) パラメーターの、サポートされているコンポーネント符号のペアを示します。

  • NR と KR は、それぞれ積符号行列とメッセージ行列の行数を表します。

  • NC と KC は、それぞれ積符号行列とメッセージ行列の列数を表します。

各符号タイプ内で、任意の 2 つのコンポーネント符号のペアで 2 次元 TPC 符号を作成できます。この表には、各符号ペアの誤り訂正能力も含まれています。

コード タイプコンポーネント符号ペア (NR,KR) および (NC,KC)誤り訂正能力 (T)
ハミング符号(255,247)1
(127,120)1
(63,57)1
(31,26)1
(15,11)1
(7,4)1
拡張ハミング符号 (256,247)1
(128,120)1
(64,57)1
(32,26)1
(16,11)1
(8,4)1
BCH 符号(255,239)2
(127,113)2
(63,51)2
(31,21)2
(15,7)2
拡張 BCH 符号(256,239)2
(128,113)2
(64,51)2
(32,21)2
(16,7)2
パリティ チェック コード(256,255)-
(128,127)-
(64,63)-
(32,31)-
(16,15)-
(8,7)-
(4,3)-

ターボ積符号の構築

ターボ積符号 (TPC) は、前方誤り訂正 (FEC) コードとして使用される連結コードの形式です。組織線形ブロック符号などの 2 つ以上のコンポーネント ブロック コードは、TPC を構築するために使用されます。この符号化器は、2 つの線形ブロック符号を使用して、[1]で説明されている 2 次元積符号の符号化を実装します。

TPC 符号化器は、フルレングスのメッセージまたは短縮メッセージを受け入れます。

 フルレングスのメッセージの積符号の構築

 短縮メッセージの積符号の構築

参照

[1] Pyndiah, R. M. "Near-Optimum Decoding of Product Codes: Block Turbo Codes." IEEE Transactions on Communications. Volume 46, Number 8, August 1998, pp. 1003–1010.

拡張機能

バージョン履歴

R2018a で導入

参考

関数

オブジェクト

ブロック