ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

comm.CPMDemodulator System Object

パッケージ: comm

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

説明

CPMDemodulator オブジェクトは、連続位相変調を使用して変調された信号を復調します。入力は、変調信号のベースバンド表現です。

構築

H = comm.CPMDemodulator は復調器 System object™ H を作成します。このオブジェクトは、ビタビ アルゴリズムを使って入力連続位相変調 (CPM) データを復調します。

H = comm.CPMDemodulator(Name,Value) は、指定の各プロパティが指定の値に設定された CPM demodulator オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の引数を名前と値を対にして任意の順番で指定できます。

H = comm.CPMDemodulator(M,Name,Value) は、ModulationOrder プロパティが M に、他の指定のプロパティが指定の値に設定された CPM 復調器オブジェクト H を作成します。

プロパティ

ModulationOrder

シンボル アルファベットのサイズ

シンボル アルファベットのサイズを指定します。このプロパティの値は、2 の累乗の実数、整数スカラーを必要とします。既定の設定は 4 です。

BitOutput

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

出力がビット グループで構成されているかまたは整数値のグループかを指定します。既定の設定は false です。

このプロパティを false に設定すると、step メソッドは、N/SamplesPerSymbol に等しい長さの、-(ModulationOrder-1) から ModulationOrder–1 までの整数を要素とする列ベクトルを出力します。ここで、N は、ベースバンド変調済みの入力シンボル数を示す入力信号の長さです。

このプロパティを true に設定すると、step メソッドは P (N/SamplesPerSymbol) に等しい長さのバイナリ列ベクトルを出力します。ここで、P = log2(ModulationOrder) です。出力には長さ -P ビット ワードが含まれています。このシナリオでは、オブジェクトははじめに –(ModulationOrder–1) から ModulationOrder–1 までの奇数の整数値 K に復調された各シンボルをマップします。次に、オブジェクトは、K を非負の整数 (K+ModulationOrder–1)/2 にマップします。最後に、オブジェクトは、それぞれの非負の整数を、SymbolMapping プロパティに指定されたマッピングを使用して、長さ -P のバイナリ ワードにマップします。

SymbolMapping

シンボルのエンコード

復調されたシンボルのマッピングを Binary または Gray のどちらかに指定します。既定の設定は Binary です。このプロパティは、オブジェクトがそれぞれの復調された整数シンボル値 (0 から ModulationOrder–1 までの範囲) を P- 長さのビット ワードにマップする方法を決定します。ここで、P = log2(ModulationOrder) です。

このプロパティを Binary に設定すると、オブジェクトは通常のバイナリ コードの順序を使用します。

このプロパティを Gray に設定すると、オブジェクトはグレイ符号の順序を使用します。

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

ModulationIndex

Modulation index

変調指数を指定します。既定の設定は 0.5 です。このプロパティの値には、スカラー値 h、または列ベクトル [h0, h1, …hH-1] を指定できます。

ここで、H-1 は列ベクトルの長さです。

hi が区間によって異なるときは、オブジェクトは多重 h で動作します。オブジェクトが多重 h で動作するときは、hi は有理数でなければなりません。

FrequencyPulse

Frequency pulse shape

変調器が入力変調信号の位相遷移を滑らかにするために使用したパルス整形のタイプを RectangularRaised CosineSpectral Raised CosineGaussian または Tamed FM のいずれかに指定します。既定の設定は Rectangular です。

MainLobeDuration

スペクトル コサイン ロールオフ パルスのメイン ローブ期間

スペクトル コサイン ロールオフ パルスの最大ローブの期間をシンボル区間数で指定します。この値は、変調器が入力変調信号をパルス整形するために使用した値です。既定の設定は 1 です。このプロパティは、実数値の、正の整数スカラーを必要とします。このプロパティは、FrequencyPulse プロパティを Spectral Raised Cosine に設定した場合に適用されます。

RolloffFactor

スペクトル コサイン ロールオフ パルスのロールオフ ファクター

スペクトル コサイン ロールオフ パルスのロールオフ ファクターを指定します。この値は、変調器が入力変調信号をパルス整形するために使用した値です。既定の設定は 0.2 です。このプロパティは、0 から 1 までの実数スカラーを必要とします。このプロパティは、FrequencyPulse プロパティを Spectral Raised Cosine に設定した場合に適用されます。

BandwidthTimeProduct

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

ガウス パルス整形の帯域幅とシンボル時間の積を指定します。この値は、変調器が入力変調信号をパルス整形するために使用した値です。既定の設定は 0.3 です。このプロパティは、実数、正のスカラーを必要とします。このプロパティは、FrequencyPulse プロパティを Gaussian に設定した場合に適用されます。

PulseLength

パルス長

シンボル区間における周波数パルス整形の長さを指定します。このプロパティの値は、実数の正の整数であることが必要です。既定の設定は 1 です。

SymbolPrehistory

Symbol prehistory

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

InitialPhaseOffset

初期位相オフセット

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

SamplesPerSymbol

入力シンボルごとのサンプル数

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

TracebackDepth

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

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

OutputDataType

出力のデータ型

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

メソッド

clone同一プロパティ値をもつ CPM Demodulator オブジェクトを作成する
getNumInputsstep メソッドへの予想される入力数
getNumOutputsstep メソッドからの出力数
isLocked入力属性と調整不可能なプロパティのロック状態
releaseプロパティ値と入力特性の変更を許可する
resetCPM demodulator オブジェクトの状態のリセット
stepCPM 法とビタビ アルゴリズムを使用した復調

グレイ マッピングとビット入力による CPM 変調を使用する信号の変調と復調を行います。

    hMod = comm.CPMModulator(8, 'BitInput', true, ...
                         'SymbolMapping', 'Gray');
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                         'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.CPMDemodulator(8, 'BitOutput', true, ...
                         'SymbolMapping', 'Gray');
% Create an error rate calculator, account for the delay caused by the Viterbi algorithm.
    delay = log2(hDemod.ModulationOrder)*hDemod.TracebackDepth;
    hError = comm.ErrorRate('ReceiveDelay', delay);
    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))

アルゴリズム

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

参考

| | |

この情報は役に立ちましたか?