Main Content

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

commsrc.combinedjitter

組み合わせジッター発生器オブジェクトの作成

説明

combJitt = commsrc.combinedjitter は、すべてのジッター成分を無効にした、既定の組み合わせジッター発生器のオブジェクト combJitt を構築します。

このオブジェクトを使用して、ランダム成分、周期的成分およびディラック成分が任意に組み合わされたジッター サンプルを生成します。

combJitt = commsrc.combinedjitter(Name,Value) は、指定の Name プロパティが指定の Value に設定された組み合わせジッター発生器オブジェクトを作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

組み合わせジッター発生器オブジェクトには、次のプロパティが含まれます。明示的に注記のあるプロパティ以外はすべて編集可能です。

Property説明
Type

オブジェクトのタイプ、Combined Jitter Generator。このプロパティは書き換え可能ではありません。

SamplingFrequency

入力信号のサンプリング周波数 (Hz 単位)。既定値は 1e4 です。

RandomJitter

ランダム ジッター発生器を有効にする変数。'off' (既定の設定) または 'on' のいずれかに指定します。

RandomStd

ランダム ジッター発生器の標準偏差 (秒単位)。RandomJitter'on' である場合に適用されます。既定値は 1e-4 です。

PeriodicJitter

周期的ジッター発生器を有効にする変数。'off' (既定の設定) または 'on' のいずれかに指定します。

PeriodicNumber

正弦波成分の数。PeriodicNumber は、有限の正のスカラー整数でなければなりません。PeriodicJitter'on' である場合に適用されます。既定値は 1 です。

PeriodicAmplitude

周期ジッターの各正弦波成分の振幅 (秒単位)。PeriodicJitter'on' である場合に適用されます。既定値は 5e-4 です。

PeriodicFrequencyHz

測定した周期ジッターの各正弦波成分の周波数 (Hz 単位)。PeriodicJitter'on' である場合に適用されます。既定値は 200 です。

PeriodicPhase

周期ジッターの各正弦波成分の位相 (ラジアン単位)。PeriodicJitter'on' である場合に適用されます。既定値は 0 です。

DiracJitter

ディラック ジッター発生器を有効にする変数。'off' (既定の設定) または 'on' のいずれかに指定します。

DiracNumber

ディラック成分の数。DiracNumber は、有限の正のスカラー整数でなければなりません。DiracJitter'on' である場合に適用されます。既定値は 2 です。

DiracDelta

各ディラック成分の時間遅延 (秒単位)。DiracJitter'on' である場合に適用されます。既定値は [-5.e-4 5.e-4] です。

DiracProbability

長さ DiracNumber のベクトルとして表される各ディラック成分の確率。確率の合計は 1 でなければなりません。DiracJitter'on' である場合に適用されます。既定値は [0.5 0.5] です。

オブジェクト関数

組み合わせジッター発生器オブジェクトには、この節で説明する 3 つのオブジェクト関数があります。

generate

このオブジェクト関数は、ジッター発生器オブジェクトに基づいてジッター サンプルを生成します。このメソッドの入力引数は 1 つで、これはフレーム内のサンプル数です。出力は、長さ N の 1 列のベクトルです。このオブジェクト関数は次の構文で呼び出すことができます。

x = generate(combJitt,N)
ここで、combJitt は発生器オブジェクト、N は出力サンプル数、x は 1 列の実数ベクトルです。

reset

このオブジェクト関数は、組み合わせジッター発生器の内部状態をリセットします。このオブジェクト関数は次の構文で呼び出すことができます。

reset(combJitt)
ここで、combJitt は発生器オブジェクトです。

disp

組み合わせ発生器オブジェクト combJitt のプロパティを表示します。このオブジェクト関数は次の構文で呼び出すことができます。

disp(combJitt)

ここで、combJitt は発生器オブジェクトです。

すべて折りたたむ

ランダムな成分と周期的な成分で構成されたジッター サンプルを 500 個生成します。

ランダム ジッター成分と周期ジッター成分の組み合わせを適用するように構成した commsrc.combinedjitter オブジェクトを作成します。名前と値のペアを使用して RandomJitter および PeriodicJitter を有効にし、ジッター設定を割り当てます。ランダム ジッターの標準偏差を 2e-4 秒に、周期ジッターの振幅を 5e-4 秒に、周期ジッターの周波数を 2 Hz に設定します。

numSamples = 500;
combJitt = commsrc.combinedjitter(...
    'RandomJitter','on', ...
    'RandomStd',2e-4, ...
    'PeriodicJitter','on', ...
    'PeriodicAmplitude',5e-4, ...
    'PeriodicFrequencyHz',200)
combJitt = 
                   Type: 'Combined Jitter Generator'
      SamplingFrequency: 10000
           RandomJitter: 'on'
              RandomStd: 2.0000e-04
         PeriodicJitter: 'on'
         PeriodicNumber: 1
      PeriodicAmplitude: 5.0000e-04
    PeriodicFrequencyHz: 200
          PeriodicPhase: 0
            DiracJitter: 'off'

ジッター サンプルの組み合わせを作成するには、generate メソッドを使用します。

y = generate(combJitt,numSamples);
x = [0:numSamples-1];

ジッター サンプルをプロットします。組み合わされたジッターのガウス特性と周期的特性がわかります。

plot(x/combJitt.SamplingFrequency,y)
xlabel('Time (seconds)')
ylabel('Jitter (seconds)')

commsrc.combinedjitter オブジェクトを作成します。既定のオブジェクト プロパティ値を表示します。

combJitt = commsrc.combinedjitter;
disp(combJitt)
                 Type: 'Combined Jitter Generator'
    SamplingFrequency: 10000
         RandomJitter: 'off'
       PeriodicJitter: 'off'
          DiracJitter: 'off'

ランダム ジッター、周期ジッター、およびディラック ジッターを有効にして commsrc.combinedjitter オブジェクトを作成します。オブジェクトのプロパティ値を表示します。

combJitt = commsrc.combinedjitter('RandomJitter','on', ...
    'PeriodicJitter','on','DiracJitter','on');
disp(combJitt)
                   Type: 'Combined Jitter Generator'
      SamplingFrequency: 10000
           RandomJitter: 'on'
              RandomStd: 1.0000e-04
         PeriodicJitter: 'on'
         PeriodicNumber: 1
      PeriodicAmplitude: 5.0000e-04
    PeriodicFrequencyHz: 200
          PeriodicPhase: 0
            DiracJitter: 'on'
            DiracNumber: 2
             DiracDelta: [-5.0000e-04 5.0000e-04]
       DiracProbability: [0.5000 0.5000]

パターン発生器オブジェクトを利用してバイナリ非ゼロ復帰 (NRZ) 信号を生成します。信号にジッターを適用した場合と適用しない場合の NRZ 信号を表示します。

システム パラメーターを初期化します。

Fs = 10000;            % Sample rate
Rs = 50;               % Symbol rate (Sps)
sps = Fs/Rs;           % Number of samples per symbol
Trise = 1/(5*Rs);      % Rise time of the NRZ signal
Tfall = 1/(5*Rs);      % Fall time of the NRZ signal
frameLen = 100;        % Number of symbols in a frame
spt = 200;               % Number of samples per trace on eye diagram

ジッター成分を割り当てずにパターン発生器オブジェクトを作成します。

src = commsrc.pattern('SamplingFrequency', Fs, ...
                      'SamplesPerSymbol', sps, ...
                      'RiseTime', Trise, ...
                      'FallTime', Tfall)
src = 
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 200
           SymbolRate: 50
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0.0040
             FallTime: 0.0040
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

src.Jitter
ans = 
                 Type: 'Combined Jitter Generator'
    SamplingFrequency: 10000
         RandomJitter: 'off'
       PeriodicJitter: 'off'
          DiracJitter: 'off'

NRZ 信号を生成し、信号のアイ ダイアグラムを表示します。

message = generate(src,frameLen);
eyediagram(message,spt)

符号間干渉 (ISI) を NRZ 信号に追加します。ISI は 2 つの振幅が等しい関数 Dirac によってモデル化されます。ディラック ジッターをもつ組み合わせジッター オブジェクトを作成して、パターン発生器オブジェクトに割り当てます。

jitterSrc = commsrc.combinedjitter('DiracJitter','on', ...
    'DiracDelta',0.05/Rs*[-1 1]);
src.Jitter = jitterSrc
src = 
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 200
           SymbolRate: 50
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0.0040
             FallTime: 0.0040
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

ジッターが追加された NRZ 信号を生成し、信号のアイ ダイアグラムを表示します。

reset(src);
message = generate(src, frameLen);
eyediagram(message,spt)

R2015a で導入