Main Content

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

comm.GMSKDemodulator

GMSK 法とビタビ アルゴリズムを使用した復調

説明

GMSKDemodulator オブジェクトは、ガウス最小シフト キーイング法を用いて変調された信号を、ビタビ アルゴリズムを使用して復調します。入力は、変調信号のベースバンド表現です。

ガウス最小シフト キーイングを使用して変調された信号を復調するには、以下の手順に従います。

  1. GMSK 復調器オブジェクトを定義および設定します。構築を参照してください。

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

メモ

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

構築

H = comm.GMSKDemodulator は復調器 System object H を作成します。オブジェクトは、ビタビ アルゴリズムを使用して変調された入力ガウス最小シフト キーイング (GMSK) を復調します。

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

プロパティ

BitOutput

ビットとしての出力データ

出力がビットのグループまたは整数値であるかどうかを指定します。既定の設定は false です。

BitOutput プロパティを false に設定すると、step メソッドは、N/SamplesPerSymbol と同じ長さの列ベクトルを出力します。N は入力信号の長さであり、これは入力ベースバンド変調シンボルの数です。出力ベクトルの要素は –1 または 1 です。

BitOutput プロパティを true に設定すると、step メソッドは 0 または 1 のビット値の N/SamplesPerSymbol に等しい長さのバイナリ列ベクトルを出力します。

BandwidthTimeProduct

ガウス パルスの帯域幅とシンボル時間の積

ガウス パルス整形の帯域幅とシンボル時間の積を実数の正のスカラーとして指定します。既定の設定は 0.3 です。

PulseLength

パルス長

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

SymbolPrehistory

シンボル プレヒストリ

step メソッドへの最初の呼び出しの前に変調器によって使用されるデータ シンボルを指定します。既定の設定は 1 です。このプロパティは、-1 または 1 と等しい要素のスカラーまたはベクトルを必要とします。値がベクトルの場合、その長さは PulseLength プロパティに設定した値より 1 小さい値でなくてはなりません。

InitialPhaseOffset

初期位相オフセット

入力変調波形の初期位相オフセットを、実数の数値スカラー値でラジアン単位で指定します。既定の設定は 0 です。

SamplesPerSymbol

入力シンボルあたりのサンプル数

入力シンボルごとの予想サンプル数を正の整数スカラー値で指定します。既定の設定は 8 です。

TracebackDepth

ビタビ アルゴリズムのトレースバック長

ビタビ アルゴリズムが各トレースバック パスの構築に使用するトレリス分岐の数を正の整数スカラー値で指定します。このプロパティの値も出力遅延であり、出力内の 1 番目の意味のある復調シンボルに先行するゼロ シンボルの数です。既定の設定は 16 です。

OutputDataType

出力のデータ型

BitOutput プロパティを false に設定する場合、出力データ型を int8int16int32 または double のいずれかに指定します。

BitOutput プロパティを true に設定する場合、出力データ型を logical または double のいずれかに指定します。既定の設定は double です。

メソッド

resetGMSK 復調器オブジェクトの状態のリセット
stepGMSK 法とビタビ アルゴリズムを使用した復調
すべての System object に共通
release

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

すべて折りたたむ

% Create a GMSK modulator, an AWGN channel, and a GMSK demodulator. Use a phase offset of pi/4.
    hMod = comm.GMSKModulator('BitInput', true, 'InitialPhaseOffset', pi/4);
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                    'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.GMSKDemodulator('BitOutput', true, ...
                    'InitialPhaseOffset', pi/4);
% Create an error rate calculator, account for the delay caused by the Viterbi algorithm
    hError = comm.ErrorRate('ReceiveDelay', hDemod.TracebackDepth);
    for counter = 1:100
      % Transmit 100 3-bit words
      data = randi([0 1],300,1);
      modSignal = step(hMod, data);
      noisySignal = step(hAWGN, modSignal);
      receivedData = step(hDemod, noisySignal);
      errorStats = step(hError, data, receivedData);
    end
    fprintf('Error rate = %f\nNumber of errors = %d\n', ...
      errorStats(1), errorStats(2))
Error rate = 0.000133
Number of errors = 4

この例では、0 と 1 の 2 進シーケンスを GMSK 変調器の出力にマッピングする方法を説明します。この関係は MSK 変調にも適用されます。

バイナリ入力を受け入れる GMSK 変調器を作成します。パルス長とシンボルあたりのサンプル数を 1 に指定します。

gmsk = comm.GMSKModulator('BitInput',true,'PulseLength',1,'SamplesPerSymbol',1);

すべて 0 の入力シーケンスを作成します。シーケンスを変調します。

x = zeros(5,1);
y = gmsk(x)
y = 5×1 complex

   1.0000 + 0.0000i
  -0.0000 - 1.0000i
  -1.0000 + 0.0000i
   0.0000 + 1.0000i
   1.0000 - 0.0000i

各点の位相角を決定します。関数 unwrap を使用してトレンドをより適切に表示します。

theta = unwrap(angle(y))
theta = 5×1

         0
   -1.5708
   -3.1416
   -4.7124
   -6.2832

0 のシーケンスにより、サンプル間で位相が -π/2 シフトします。

変調器をリセットします。すべて 1 の入力シーケンスを変調します。

reset(gmsk)
x = ones(5,1);
y = gmsk(x)
y = 5×1 complex

   1.0000 + 0.0000i
  -0.0000 + 1.0000i
  -1.0000 - 0.0000i
   0.0000 - 1.0000i
   1.0000 + 0.0000i

各点の位相角を決定します。関数 unwrap を使用してトレンドをより適切に表示します。

theta = unwrap(angle(y))
theta = 5×1

         0
    1.5708
    3.1416
    4.7124
    6.2832

1 のシーケンスにより、サンプル間で位相が +π/2 シフトします。

アルゴリズム

このオブジェクトは、GMSK Demodulator Baseband ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応します。GMSK の場合、シンボルごとの位相シフトは π/2 です。これは、0.5 の変調指数です。

拡張機能

R2012a で導入