Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

comm.GeneralQAMTCMDemodulator

任意の QAM コンスタレーションにマップされた符号化データを畳み込み復調

説明

GeneralQAMTCMDemodulator オブジェクトは、任意のコンスタレーションを用いて変調されたトレリス符号変調 (TCM) の信号を、ビタビ アルゴリズムを使用して復号化します。

トレリス符号の一般的な直交振幅変調器を使用して変調された信号を復調するには、次を行います。

  1. 一般的な QAM TCM 変調器オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.GeneralQAMTCMDemodulator のプロパティに従い、信号を復調します。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

構築

H = comm.GeneralQAMTCMDemodulator は、トレリス符号の一般的な直交振幅 (QAM TCM) 復調器 System object H を作成します。このオブジェクトは、任意の QAM コンスタレーションにマップされている符号化データを畳み込みで復調します。

H = comm.GeneralQAMTCMDemodulator(Name,Value) は、指定の各プロパティが指定の値に設定された一般的な QAM TCM 復調器オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

H = comm.GeneralQAMTCMDemodulator(TRELLIS,Name,Value) は、一般的な QAM TCM 復調器オブジェクト H を作成します。このオブジェクトは、TrellisStructure プロパティを TRELLIS に設定し、指定の他のプロパティは指定の値に設定しています。

プロパティ

TrellisStructure

畳み込み符号のトレリス構造体

トレリスを、畳み込み符号のトレリス表現を含む MATLAB 構造体として指定します。構造体が有効なトレリス構造体かどうかを確認するには、関数 istrellis を使用します。既定の設定は、poly2trellis([1 3], [1 0 0; 0 5 2]) で得られる値です。

TerminationMethod

符号化フレームの終了方法

終了方法を、ContinuousTruncated または Terminated のいずれかで指定します。既定の設定は Continuous です。

このプロパティを Continuous に設定すると、オブジェクトは各フレームの最後で内部状態メトリクスを保存します。次のフレームは同じ状態メトリクスを使用します。オブジェクトは、各トレースバック パスを個別に扱います。入力信号が 1 つのシンボルしか含んでいない場合は Continuous モードを使用します。

このプロパティを Truncated に設定すると、オブジェクトは各入力ベクトルを個別に扱います。トレースバック パスは最良のメトリクスで始まり、常にすべて 0 の状態で終了します。

このプロパティを Terminated に設定すると、オブジェクトは各入力ベクトルを個別に扱い、トレースバック パスは常にすべて 0 の状態で開始および終了します。

TracebackDepth

ビタビ復号化器のトレースバック長

各トレースバック パスを構築する、トレリス分岐のスカラーの整数を指定します。既定の設定は 21 です。トレースバック長パラメーターは、復号化の精度と遅延に影響します。復号化遅延は、出力の最初に復号化されるシンボルよりも前のゼロ シンボルの数を示します。

TerminationMethod プロパティを Continuous に設定した場合、復号化遅延は符号化率 K/N の畳み込み符号の TracebackDepth ゼロ シンボルまたは TracebackDepth×K ゼロ ビットで構成されます。

TerminationMethod プロパティを Truncated または Terminated に設定すると、出力遅延は発生せず、トレースバック長は各入力ベクトルでシンボルの数以下でなければなりません。

ResetInputPort

復調器リセット入力を有効にする

このプロパティを true に設定して、step メソッドに対する追加の入力を有効にします。既定の設定は false です。この追加のリセット入力が非ゼロの値のとき、符号化器の内部状態はその初期条件にリセットされます。このプロパティは、TerminationMethod プロパティを Continuous に設定した場合に適用されます。

Constellation

コンスタレーション

倍精度または単精度の複素数ベクトルを指定します。このベクトルは、畳み込み符号化されたデータのマップに使用されたコンスタレーションの各ポイントをリストします。コンスタレーションは、分割設定の順序で指定しなければなりません。分割設定の順序の詳細は、General TCM Encoder ブロックのドキュメンテーションを参照してください。コンスタレーション ベクトルの長さは、一般的な QAM TCM 復調器オブジェクトの畳み込み復号化器に対し想定される入力シンボル数に等しくなければなりません。これは、符号化率 K/N の畳み込み符号では 2N に相当します。既定の設定は、8-PSK コンスタレーションの点を分割設定の順序とすることに対応します。この値は exp(2×π×j×[04261537]8) として表されます。

OutputDataType

出力のデータ型

出力データ型を logical または double のいずれかとして指定します。既定の設定は double です。

メソッド

step任意の QAM コンスタレーションにマップされた符号化データを畳み込み復調
すべての System object に共通
release

System object のプロパティ値の変更の許可

reset

System object の内部状態をリセットします。

すべて折りたたむ

任意の 4 点コンスタレーションの QAM TCM 変調を使ってノイズの多いデータを変復調します。結果の BER を推定します。

[171 133] 生成多項式を使用して、2 つの入力シンボルと 4 つの出力シンボルをもつトレリス構造を定義します。任意の 4 点コンスタレーションを定義します。

qamTrellis = poly2trellis(7,[171 133]);
refConst = exp(pi*1i*[1 2 3 6]/4);

qamTrellis および refConst を使用して、QAM TCM 変調器と復調器 System object™ のペアを作成します。

hMod = comm.GeneralQAMTCMModulator(qamTrellis,'Constellation', refConst);
hDemod = comm.GeneralQAMTCMDemodulator(qamTrellis,'Constellation',refConst);

S/N 比を使用してノイズが設定される AWGN チャネル オブジェクトを作成します。

hAWGN = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)', ...
    'SNR',4);

遅延 (ビット単位) が、TracebackDepth とシンボルあたりのビット数の積に等しい誤り率計算機を作成します。

hError = comm.ErrorRate(...
    'ReceiveDelay', hDemod.TracebackDepth*log2(qamTrellis.numInputSymbols));

ランダムなバイナリ データを生成して QAM TCM 変調を適用します。AWGN チャネルを通して信号を渡し、復調します。誤り統計を収集します。

for counter = 1:10
    % Generate binary data
    data = randi([0 1],500,1);
    % Modulate
    modSignal = step(hMod,data);
    % Pass through an AWGN channel
    noisySignal = step(hAWGN,modSignal);
    % Demodulate
    receivedData = step(hDemod,noisySignal);
    % Calculate the error statistics
    errorStats = step(hError,data,receivedData);
end

BER とビット誤り数を表示します。

fprintf('Error rate = %5.2e\nNumber of errors = %d\n', ...
    errorStats(1), errorStats(2))
Error rate = 1.16e-02
Number of errors = 58

アルゴリズム

このオブジェクトは、General TCM Decoder ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応します。

拡張機能

R2012a で導入