Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

comm.GMSKDemodulator

GMSK 変調信号の復調

説明

comm.GMSKDemodulator System object™ は、ガウス最小偏移変調 (GMSK) 法を使用して変調された信号を、ビタビ アルゴリズムまたは最大事後確率 (max-log-MAP) アルゴリズムを使用して復調します。入力は、変調信号のベースバンド表現です。

GMSK 変調信号を復調するには、次のようにします。

  1. comm.GMSKDemodulator オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

gmskdemodulator = comm.GMSKDemodulator は、ビタビ アルゴリズムまたは max-log MAP アルゴリズムを使用して入力 GMSK 変調データを復調する、復調器 System object を作成します。詳細については、アルゴリズムを参照してください。

gmskdemodulator = comm.GMSKDemodulator(Name,Value) は、1 つ以上の名前と値のペアを使用してプロパティを設定します。たとえば、comm.GMSKDemodulator(PulseLength=6) はガウス パルス整形の長さを 6 つのシンボル区間として指定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

ビットとしてデータを出力するためのオプション。数値または logical 0 (false) または 1 (true) として指定します。オブジェクトを実行すると、出力は 1 行 (N / SamplesPerSymbol) 列の列ベクトルになります。N は入力信号 X の長さを示し、これは入力ベースバンド変調シンボルの数です。

  • このプロパティを false に設定すると、出力される値は -1 または 1 になります。

  • このプロパティを true に設定すると、出力される値は DecisionMethod プロパティの設定に基づきます。

データ型: logical

復調判定メソッド。'Hard decision' または 'Approximate log-likelihood ratio' として指定します。

  • このプロパティを 'Hard decision' に設定すると、出力 Y は要素の値が 0 または 1 の列ベクトルとして返されます。出力データ型は OutputDataType で指定します。

  • このプロパティを 'Approximate log-likelihood ratio' に設定すると、出力データ型は入力 X と同じになります。近似対数尤度比では、オブジェクトは 0 に対して正の値を生成し、1 に対して負の値を生成します。

詳細については、アルゴリズムを参照してください。

依存関係

このプロパティは BitOutputtrue に設定した場合に適用されます。

ノイズ分散のソース。'Property' または 'Input port' として指定します。

  • このプロパティを 'Property' に設定した場合は、Variance プロパティを使用してノイズ分散を設定します。

  • このプロパティを 'Input port' に設定した場合は、nvar 入力引数を使用してノイズ分散を設定します。

依存関係

このプロパティは DecisionMethod'Approximate log-likelihood ratio' に設定した場合に適用されます。

ノイズ分散。正のスカラー値として指定します。

調整可能: Yes

依存関係

このプロパティは VarianceSource'Property'DecisionMethod'Approximate log-likelihood ratio' に設定した場合に適用されます。

データ型: double

ガウス パルス整形の帯域幅とシンボル時間の積。正のスカラー値として指定します。詳細については、アルゴリズムを参照してください。

データ型: double

パルス長。正の整数として指定します。パルス長の値は、シンボル区間でのガウス パルス整形の長さを表します。

データ型: double

シンボル プレヒストリ。-11、またはこれらの値と等しい要素を持つベクトルとして指定します。シンボル プレヒストリは、オブジェクトの最初の呼び出しの前に、変調器で使用するデータ シンボルを新しいものから順番に指定します。

  • スカラー値は長さ PulseLength – 1 のベクトルに展開されます。

  • ベクトルの場合、長さが PulseLength – 1 でなければなりません。

データ型: double

変調波形の初期位相オフセット (ラジアン単位)。数値スカラーとして指定します。

データ型: double

シンボルあたりのサンプル数。正の整数として指定します。シンボルあたりのサンプル数は、入力サンプルから出力サンプルへのアップサンプリング係数を表します。

データ型: double

ビタビ アルゴリズムまたは max-log-MAP アルゴリズムのトレースバック長。正の整数として指定します。

トレースバック長は、ビタビ アルゴリズムが各トレースバック パスを構築するために使用する、または max-log-MAP アルゴリズムが逆方向パス メトリクスの計算に使用するトレリス分岐の数です。最初に復号化される出力のシンボルよりも前のゼロ シンボルの数が復号化遅延を表します。

データ型: double

出力データ型。'double''int8''int16''int32'、または 'logical' として指定します。

  • BitOutput プロパティを false に設定した場合、出力データ型には 'double''int8''int16'、または 'int32' を設定できます。

  • BitOutput プロパティを true に設定し、DecisionMethod'Hard decision' に設定した場合、出力データ型には 'double''int8'、または 'logical' を設定できます。

  • BitOutput プロパティを true に設定し、DecisionMethod'Approximate log-likelihood ratio' に設定した場合、出力データ型は入力 X と同じになります。

依存関係

このプロパティは、BitOutputfalse に設定した場合、または BitOutputtrue に設定し、DecisionMethod'Hard decision' に設定した場合に適用されます。

使用法

説明

Y = gmskdemodulator(X) は、GMSK 変調された波形に GMSK 復調を適用し、復調された入力信号を返します。

Y = gmskdemodulator(X,nvar) は、Variance プロパティを nvar に設定して、GMSK 復調された入力信号を返します。この構文は、VarianceSource'Input port'、および DecisionMethod'Approximate log-likelihood ratio' に設定した場合に適用されます。

入力引数

すべて展開する

GMSK 変調された入力信号。SamplesPerSymbol の数の整数倍と同じ長さの列ベクトルとして指定します。

データ型: double | single

ノイズ分散。正のスカラー値として指定します。

依存関係

このプロパティは VarianceSource'Input port'DecisionMethod'Approximate log-likelihood ratio' に設定した場合に適用されます。

データ型: double | single

出力引数

すべて展開する

復調した信号。(N / SamplesPerSymbol) に等しい長さの列ベクトルとして返されます。N は入力信号 X の長さを示し、これは入力ベースバンド変調シンボルの数です。

  • BitOutputfalse に設定すると、Y は要素の値が -1 または 1 の列ベクトルとして返されます。

  • BitOutputtrue に設定すると、Y に返される値は DecisionMethod プロパティの設定に基づきます。

    • DecisionMethod'Hard decision' に設定すると、Y は要素の値が 0 または 1 の列ベクトルとして返されます。

    • DecisionMethod'Approximate log-likelihood ratio' に設定すると、Y は、0 を表す正の値と 1 を表す負の値をもつ近似対数尤度比の列ベクトルとして返されます。

出力データ型を指定するには、OutputDataType プロパティを使用します。

データ型: double | logical | int8 | int16 | int32

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

GMSK 変調器と復調器のペアを作成します。AWGN チャネル オブジェクトを作成します。

gmskmodulator = comm.GMSKModulator( ...
    BitInput=true, ...
    InitialPhaseOffset=pi/4);
gmskdemodulator = comm.GMSKDemodulator( ...
    BitOutput=true, ...
    InitialPhaseOffset=pi/4);
channel = comm.AWGNChannel( ...
    NoiseMethod='Signal to noise ratio (SNR)', ...
    SNR=0);

エラー レート計算機を作成し、ビタビ アルゴリズムによって発生する変調器と復調器の間の遅延を考慮します。

errorRate = comm.ErrorRate( ...
    ReceiveDelay=gmskdemodulator.TracebackDepth);

以下の手順を繰り返して 100 フレームのデータを処理します。

  1. 300 要素のランダムなバイナリ データのベクトルを生成します。

  2. データを GMSK 変調します。

  3. 変調データを AWGN チャネルを介して渡します。

  4. データを GMSK 復調します。

  5. データのフレームについて誤り統計を収集します。

for counter = 1:100
   % Transmit 100 3-bit words
   data = randi([0 1],300,1);
   modSignal = gmskmodulator(data);
   noisySignal = channel(modSignal);
   receivedData = gmskdemodulator(noisySignal);
   errorStats = errorRate(data, receivedData);
end

誤りの統計を表示します。

fprintf('Error rate = %f\nNumber of errors = %d\n', ...
         errorStats(1), errorStats(2))
Error rate = 0.000133
Number of errors = 4

アルゴリズム

すべて展開する

参照

[1] Anderson, John B., Tor Aulin, and Carl-Erik Sundberg. Digital Phase Modulation. New York: Plenum Press, 1986.

[2] Benedetto, S., G. Montorsi, D. Divsalar, and F. Pollara. "A Soft-Input Soft-Output Maximum A Posterior (MAP) Module to Decode Parallel and Serial Concatenated Codes." Jet Propulsion Lab TDA Progress Report, 42–127, (November 1996).

[3] Viterbi, A.J. “An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes.” IEEE Journal on Selected Areas in Communications 16, no. 2 (February 1998): 260–64. https://doi.org/10.1109/49.661114.

拡張機能

バージョン履歴

R2012a で導入

すべて展開する