Main Content

comm.MSKTimingSynchronizer

4 次非線形性法を使用したシンボル タイミング位相の再生

説明

MSKTimingSynchronizer オブジェクトは、4 次非線形性法を使用して、入力信号のシンボル タイミング位相を再生します。このオブジェクトは、搬送波位相再生とは独立した非データ支援フィードバック法を実行します。この方式では、搬送波周波数オフセットを事前に補正しなければなりません。このオブジェクトは、ベースバンド最小偏移変調 (MSK) 変調を使用するシステムに適しています。

入力信号のシンボル タイミング位相を再生するには、以下の手順に従います。

  1. MSK タイミング同期装置オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.MSKTimingSynchronizer のプロパティに従い、入力信号のシンボル タイミング位相を再生します。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

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

構築

H = comm.MSKTimingSynchronizer はタイミング位相同期装置 System object H を作成します。このオブジェクトは、4 次非線形法を用いて入力信号のシンボル タイミング位相を再生します。

H = comm.MSKTimingSynchronizer(Name,Value) は、指定された各プロパティを指定値に設定して、MSK タイミング同期装置オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

SamplesPerSymbol

各シンボルを表すサンプル数

入力信号内の各シンボルを表すサンプルの数を 1 よりも大きい整数値のスカラーで指定します。既定の設定は 4 です。

ErrorUpdateGain

誤り更新ステップ サイズ

連続タイミング位相推定を更新するステップ サイズを正の実数スカラー値として指定します。既定の設定は 0.05 です。通常は、ゆるやかに変化するタイミング位相に対応する 1/SamplesPerSymbol より小さい値になります。このプロパティは調整可能です。

ResetInputPort

同期リセット入力を有効にする

このプロパティを true に設定して、入力引数値に基づいたタイミング位相再生処理のリセットを可能にします。既定の設定は false です。

このプロパティを true に設定すると、リセット入力値を step メソッドに指定しなければなりません。

リセット入力が非ゼロの値のとき、オブジェクトはタイミング位相再生処理を再起動します。このプロパティを false に設定すると、オブジェクトは再起動しません。

ResetCondition

タイミング位相再生リセットの条件

タイミング位相再生処理を Never または Every frame の 1 つでリセットするために条件を指定します。既定の設定は Never です。

このプロパティを Never に設定すると、位相再生処理が再起動することはありません。オブジェクトは、情報をシンボルからシンボルへと維持しながら、継続的に動作します。

このプロパティを Every frame に設定すると、タイミング位相再生はデータの各フレームの開始時に再起動します。そのため、オブジェクトは毎回 step メソッドを呼び出します。このプロパティは、ResetInputPort プロパティを false に設定した場合に適用されます。

メソッド

step4 次非線形性法を使用したシンボル タイミング位相の再生
すべての System object に共通
release

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

reset

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

すべて折りたたむ

MSK 変調器、可変非整数遅延、GMSK タイミング同期装置 System object を作成します。

mskMod = comm.MSKModulator('BitInput',true,'SamplesPerSymbol',14);
timingOffset = 0.2;
varDelay = dsp.VariableFractionalDelay;
mskTimingSync = comm.MSKTimingSynchronizer('SamplesPerSymbol',14,'ErrorUpdateGain', 0.05);

主処理ループ。

phEst = zeros(50,1);
for i = 1:50
    data = randi([0 1],100,1);    % Generate data
    modData = mskMod(data);       % Modulate data
    
    % Apply timing offset error.
    impairedData = varDelay(modData,timingOffset*14);
    % Perform timing phase recovery.
    [~,phase] = mskTimingSync(impairedData);
    phEst(i) = phase(1)/14;
end

結果をプロットします。

plot(1:50,[0.2*ones(50,1) phEst]);
legend( 'Original','Estimated')
title('Original and Estimated timing phases');

Figure contains an axes object. The axes object with title Original and Estimated timing phases contains 2 objects of type line. These objects represent Original, Estimated.

アルゴリズム

このオブジェクトは、MSK-Type Signal Timing Recovery ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応しますが、以下の場合を除きます。

拡張機能

バージョン履歴

R2012a で導入