Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

パルスおよび遷移特性の測定

この例は、遷移やパルスの解析方法、立ち上がり時間、立ち下がり時間、スルー レート、オーバーシュート、アンダーシュート、パルス幅、デューティ比を含む計量の算出方法を示します。

ノイズを含むクロック信号

まず、ノイズを含むクロック信号のサンプルを表示します。

load clocksig clock1 time1 Fs
plot(time1, clock1)
xlabel('Time (secs)')
ylabel('Voltage')

ステートレベルの推定

statelevels を出力引数なしで使用し、状態レベルを可視化します。ステートレベルはヒストグラムで推定されます。

statelevels(clock1)

ans = 1×2

    0.0138    5.1848

計算されたヒストグラムは、最初のビンと最後のビンの間で均等な 2 つの領域に分割されます。ヒストグラムの各領域のモードは、コマンド ウィンドウで推定されるステートレベル値として返されます。

ヒストグラムのビン数、ヒストグラム範囲、ステートレベル推定方法を指定するために、オプションの入力引数を使用します。

立ち上がり時間、立ち下がり時間およびスルーレートの測定

risetime を出力引数なしで使用し、立ち上がりエッジの立ち上がり時間を可視化します。

risetime(clock1,time1)

ans = 5×1
10-4 ×

    0.5919
    0.8344
    0.7185
    0.8970
    0.6366

立ち上がり時間と立ち下がり時間計算の基準レベルは既定では、波形振幅の 10% と 90% に設定されています。

以下に示すように、立ち下がり時間測定にオプションの入力引数を使用してカスタム基準とステートレベルを指定します。

falltime(clock1,time1,'PercentReferenceLevels',[20 80],'StateLevels',[0 5])

ans = 4×1
10-4 ×

    0.4294
    0.5727
    0.5032
    0.4762

1 つまたは複数の出力引数をもつ関数を呼び出して、プログラム的に測定値を取得します。等間隔サンプリング データでは、時間ベクトルの代わりにサンプルレートを提供できます。slewrate を使用して、各立ち上がりエッジと立ち下がりエッジの勾配を測定します。

sr = slewrate(clock1(1:100),Fs)
sr = 7.0840e+04

オーバーシュートとアンダーシュートの解析

大きなオーバーシュートとアンダーシュートのあるクロック データを表示します。

load clocksig clock2 time2 Fs
plot(time2, clock2)
xlabel('Time (secs)')
ylabel('Voltage')

不足減衰クロック信号にはオーバーシュートがあります。オーバーシュートはステートレベルのパーセント差として表されます。オーバーシュートは、エッジの直後、遷移後逸脱領域の開始点で発生する可能性があります。これらはポストシュート オーバーシュートと呼ばれます。これらは関数 overshoot を使って測定できます。

overshoot(clock2(95:270),Fs)
ans = 2×1

    4.9451
    2.5399

legend('Location','NorthEast')

オーバーシュートはエッジ直前に、遷移前の逸脱領域で発生することがあります。これらはプレシュート オーバーシュートと呼ばれます。同様に、遷移前と遷移後の逸脱領域のアンダーシュートも測定できます。アンダーシュートもステートレベルのパーセント差として表されます。オプションの入力引数を使用して逸脱を測定する領域を指定します。

undershoot(clock2(95:270),Fs,'Region','Postshoot')
ans = 2×1

    3.8499
    4.9451

legend('Location','NorthEast')

パルス幅とデューティ比の測定

pulsewidth を出力引数なしで使用して、強調表示されたパルス幅をプロットします。

pulsewidth(clock2, time2, 'Polarity', 'Positive');

これにより、正極のパルスが表示されます。負極を選択し、負極パルス幅を見ます。

dutycycle を使用してそれぞれの正極パルスと負極パルスのパルス期間に対するパルス幅の比率を計算します。

d = dutycycle(clock2,time2,'Polarity','negative')
d = 3×1

    0.4979
    0.5000
    0.5000

pulseperiod を使用して、波形の各周期の期間を取得します。この情報を使用して、波形の平均周波数や観測された合計ジッター数などの他の計量を算出します。

pp = pulseperiod(clock2, time2);

avgFreq = 1./mean(pp)
avgFreq = 1.2500e+03
totalJitter = std(pp)
totalJitter = 1.9866e-06

参考

| | | | | | | |