Main Content

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

comm.MSKDemodulator

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

説明

comm.MSKDemodulator System object™ は、差分符号化最小偏移変調法を用いて変調された信号を復調します。このオブジェクトは、入力信号が、プリコーディングなしの同期変調信号のベースバンド表現になることを予期します。詳細については、アルゴリズムを参照してください。

最小偏移変調を使用して変調された信号を復調するには、以下の手順に従います。

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

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

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

作成

説明

mskdemod = comm.MSKDemodulator は復調器 System object mskdemod を作成します。このオブジェクトは、入力最小偏移変調 (MSK) 法で変調されたデータを、ビタビ アルゴリズムを使用して復調します。

mskdemod = comm.MSKDemodulator(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、InitialPhaseOffset=pi/2 は、入力変調波形の初期位相を pi/2 ラジアンに指定します。

プロパティ

すべて展開する

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

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

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

ビットとして出力するオプション。数値または logical の 0 (false) または 1 (true) として指定します。

  • このプロパティを false に設定した場合、出力 Y は N/SamplesPerSymbol の長い列ベクトルになります。N は入力信号の長さを表します。これは、入力ベースバンド変調シンボルの数です。ベクトルの要素は -1 または 1 になります。

  • このプロパティを true に設定した場合、出力 Y は N/SamplesPerSymbol に長さが等しいバイナリ列ベクトルになります。ベクトルの要素はビット値の 0 または 1 です。

データ型: logical

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

入力シンボルあたりのサンプル数。正の整数として指定します。

データ型: double

ビタビ アルゴリズムが各トレースバック長を構築するときに使用するトレリス分岐の数。正の整数として指定します。このプロパティの値は出力遅延でもあります。この値は、出力内の復調された最初の有意なシンボルに先立つ 0 シンボルの数を示します。

データ型: double

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

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

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

使用法

説明

Y = mskdemod(X) は、入力信号に MSK 復調を適用し、復調された信号を返します。

入力引数

すべて展開する

MSK 変調された信号。スカラーまたは列ベクトルとして指定します。

データ型: double | single
複素数のサポート: あり

出力引数

すべて展開する

出力信号。スカラーまたは列ベクトルとして返されます。オブジェクトが値を整数として出力するかビットとして出力するかを指定するには、BitOutput プロパティを使用します。出力データ型は、OutputDataType プロパティによって決まります。

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

オブジェクト関数

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

release(obj)

すべて展開する

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

すべて折りたたむ

MSK 変調器と MSK 復調器を作成します。π/4 の位相オフセットを使用します。

 mskmod = comm.MSKModulator(BitInput=true, ...
                    InitialPhaseOffset=pi/4);
    mskdemod = comm.MSKDemodulator(BitOutput=true, ...
                    InitialPhaseOffset=pi/4);

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

    ber = comm.ErrorRate('ReceiveDelay',mskdemod.TracebackDepth);
    for counter = 1:100

S/N 比 0 を使用し、AWGN チャネル経由で 3 ビットのワードを 100 個送信します。

      data = randi([0 1],300,1);
      modSignal = mskmod(data);
      noisySignal = awgn(modSignal,0);
      receivedData = mskdemod(noisySignal);
      errorStats = ber(data, receivedData);
    end
    fprintf('Error rate = %f\nNumber of errors = %d\n', ...
      errorStats(1), errorStats(2))
Error rate = 0.000067
Number of errors = 2

アルゴリズム

差分符号化最小偏移変調変調は、パルス整形を使用して、変調信号の位相遷移を平滑化します。関数 q(t) は、q(t)=tg(t)dt の関係によって周波数パルス g(t) から得られる位相応答です。

指定された周波数パルス整形は、g(t) の次の矩形パルス整形式に対応します。

パルス整形
Rectangularg(t)={12LT,0tLT0otherwise

  • L は、シンボル区間におけるメイン ローブ パルス存続時間です。

  • パルスの持続時間 LT は、シンボル区間におけるパルス長です。

拡張機能

バージョン履歴

R2012a で導入