メインコンテンツ

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

データ型: double

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

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

データ型: double

出力引数

すべて折りたたむ

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

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

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

詳細

すべて折りたたむ

参照

[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 で導入

参考

関数

オブジェクト

ブロック