Main Content

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

commsrc.pattern

パターン発生器オブジェクトの構築

説明

h = commsrc.pattern はパターン発生器オブジェクト h を構築します。

パターン発生器オブジェクトは、変調されたデータ パターンを生成します。このオブジェクトを使用して、変調された信号にジッターを投入できます。

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

プロパティ

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

Property説明
Typeパターン発生器オブジェクトのタイプ ('Pattern Generator')。このプロパティは書き換え可能ではありません。
SamplingFrequency

入力信号のサンプリング周波数 (Hz 単位)。

SymbolRate入力信号のシンボル レート。このプロパティは、SamplingFequency プロパティと SamplesPerSymbol プロパティに依存します。このプロパティは書き換え可能ではありません。
SamplesPerSymbol

シンボルを表すサンプル数。SamplesPerSymbol は整数でなければなりません。このプロパティは SymbolRate に影響します。

PulseType

オブジェクトが生成するパルスのタイプ。使用可能なパルス タイプは、ゼロ復帰 ('RZ') と非ゼロ復帰 ('NRZ') です。'NRZ' パルスの初期条件は 0 です。

OutputLevels

シンボルのインデックスに対応する振幅レベル。'NRZ' パルスでは、1 行 2 列のベクトルとして指定します。1 行 2 列のベクトルの最初の要素は 0 番目のシンボル (データ ビット値 0) に対応します。2 番目の要素は 1 番目のシンボル (データ ビット値 1) に対応します。'RZ' パルスではスカラーとして指定し、値はデータ ビット値 1 に対応します。

DutyCycle

オブジェクトが生成するパルスのデューティ比。パルス パラメーターに基づき計算されたデューティ比を表示します。このプロパティは書き換え可能ではありません。

RiseTime

パルスの 10% ~ 90% の立ち上がり時間を秒単位で指定します。

PulseDuration

IEEE STD 181 標準で定義された秒単位のパルス存続時間 「非ゼロ復帰 (RZ) 信号の変換: STD–181 の理想的なパルス」の図 (オブジェクト関数) を参照してください。PulseType'RZ' である場合に適用されます。

FallTime

パルスの立ち下り時間 (秒単位)。10 ~ 90 の割合として指定します。

DataPattern

オブジェクトが使用するビット シーケンス。'PRBS5''PRBS6'、...、'PRBS15''PRBS23''PRBS31'、および 'User Defined' として指定します。

UserDataPattern

ユーザー定義のビット列は、1 と 0 のベクトルで構成されます。DataPattern'User Defined' である場合に適用されます。

Jitter

ジッターの特性。commsrc.combinedjitter オブジェクトとして指定します。このプロパティを使用して、Random、Periodic、Dual Dirac ジッターを設定します。

オブジェクト関数

パターン発生器オブジェクトには、この節で説明するように 5 つのオブジェクト関数があります。

generate

このオブジェクト関数は、変調されたシンボルおよび内挿されたシンボルに値するフレームを出力します。このメソッドにはフレーム内のシンボル数である入力引数が 1 つあります。出力は列ベクトルです。オブジェクト関数は次の構文で呼び出すことができます。

x = generate(h, N)
ここで h はオブジェクトのハンドル、N は出力シンボルの数、x は長さが Nh.SamplesPerSymbol の積の列ベクトルです。

reset

このオブジェクト関数は、パターン発生器を既定の状態にリセットします。オブジェクトの状態に関連していないプロパティの値はリセットされません。このオブジェクト関数には入力引数はありません。

idealtostd181

このオブジェクト関数は、理想的なパルス仕様を IEEE STD-181 仕様に変換します。理想的な 0% ~ 100% の範囲の立ち上がり時間 (tr) および立ち下がり時間 (tf) は、50% のパルス幅存続時間 (pw) で 10% ~ 90% の範囲に変換されます。次の構文を使用してオブジェクト関数 idealtostd181 を呼び出します。

h = idealtostd181(tr,tf,pw)

オブジェクト関数が適切なプロパティを設定します。IEEE STD-181 のゼロ復帰 (RZ) 信号パラメーターが次の図に示されています。

std181toideal

オブジェクト関数 std181toideal は、パターン発生器に保存された IEEE STD-181 パルス仕様を理想的なパルス仕様に変換します。この関数は、立ち上がり時間および立ち下がり時間を 10% ~ 90% の範囲から 0% ~ 100% の範囲に変換し、50% のパルス存続時間をパルス幅に変換します。次の構文を使用してオブジェクト関数 std181toideal を呼び出します。

[tr tf pw] = std181toideal(h)
ここで、h はパターン発生器オブジェクト ハンドル、tr は理想的な 0% ~ 100% の立ち上がり時間、tf は理想的な 0% ~ 100% の立ち下がり時間、pw は理想的なパルス幅です。理想的なパルスの非ゼロ復帰 (NRZ) 信号パラメーターが次の図に示されています。

IEEE STD-181 仕様のプロパティ値を使用してください。

computedcd

オブジェクト関数 computedcd は、パターン発生器オブジェクト h で定義されたパルスのデューティ比歪み DCD を計算します。

DCD は、パルス オフの持続時間に対するパルス オンの持続時間の比を表します。NRZ パルスの場合、オンの持続時間はパルスがシンボル境界レベルより上にある時間です。オフの持続時間は、パルスがゼロより下にある時間です。次の構文を使用してオブジェクト関数 computedcd を呼び出します。

dcd = computedcd(h)

ソフトウェアは、tRtFTsym を与えられると DCD を計算します。この式は、シンボル限界レベルが 0 であることを仮定しています。

Th = (Ah-Al) * tRAl + (Ah-Al) * tFAl + PW+

Tl = (Ah-Al) *tRAl + (Ah-Al) *tFAl + PW-

DCD = ThTl

ここで Th は高信号の持続時間、Tl は低信号の持続時間、DCD は低信号の持続時間に対する高信号の持続時間の比を表します。

すべて折りたたむ

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

h = commsrc.pattern;
disp(h)
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 100
           SymbolRate: 100
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0
             FallTime: 0
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

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

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

Fs = 10000; % Sample rate
Rs = 50; % Symbol rate
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)

関数 commsrc.pattern とオブジェクト関数 generate を使用して、カスタム バイナリ パターンを生成します。

構成変数を定義し、パターン発生器オブジェクトを構築します。

fs = 80e9; % Sampling frequency in Hz
sps = 16;  % Samples per symbol
N = 32;    % Number of output symbols

patternGen = commsrc.pattern( ...
    'SamplingFrequency',fs, ...
    'SamplesPerSymbol',sps, ...
    'DataPattern','User Defined');

繰り返すベクトルで構成されるバイナリ パターンを定義します。

binPattern = [0,1,0,0,0,0,0,1];

このパターンをパターン発生器オブジェクトに割り当て、カスタム パターン信号を生成します。生成された信号を表示します。

patternGen.UserDataPattern = binPattern;
myCustomData = generate(patternGen,N);
plot(myCustomData,'*-')

参照

[1] IEEE Standard for Transitions, Pulses, and Related Waveforms, STD-181-2011. Piscataway, NJ. 6 September 2011.

バージョン履歴

R2008b で導入