Main Content

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

デジタル クロックの状態推定

この例では、デジタル クロック データの High および Low 状態のレベルを推定する方法を説明します。アナログ電圧信号とは対照的に、デジタル回路の信号がもつ状態は 2 つだけです。高と低です。情報は High と Low の状態レベルのパターンによって伝えられます。

clockex.mat を MATLAB® ワークスペースに読み込みます。clockex.mat には 4 MHz でサンプリングされた 2.3 V のデジタル クロック波形が含まれています。変数 x にクロック データを、変数 t にサンプリング時間のベクトルを読み込みます。データをプロットします。

load('clockex.mat','x','t')
stem(t,x,'filled')

statelevels を使用して、クロック データの High と Low の状態レベルを決定します。

levels = statelevels(x)
levels = 1×2

    0.0027    2.3068

これは 2.3 V のクロック データについて予期される結果です。ここで、ノイズのない Low 状態レベルは 0 V で、ノイズのない High 状態レベルは 2.3 V です。

推定した状態レベルを使用して、電圧を一続きの 0 と 1 に変換します。この 0 と 1 のシーケンスは 2 つの状態の 2 値波形表現です。割り当てを行うために、次の決定ルールを使用します。

  • Low 状態レベルの 3% 許容誤差領域内の電圧には値 0 を代入。

  • High 状態レベルの 3% 許容誤差領域内の電圧には値 1 を代入。

Low 状態レベルと High 状態レベルの周囲の 3% 許容誤差領域の幅を決定します。

tolwd = 3/100*diff(levels);

論理インデックスを使用して、Low 状態レベルの 3% 許容誤差領域内の電圧および High 状態レベルの 3% 許容誤差領域内の電圧を決定します。値 0 を Low 状態レベルの許容誤差領域内の電圧に、1 を High 状態レベルの許容誤差領域内の電圧に割り当てます。結果をプロットします。

y = zeros(size(x));
y(abs(x-min(levels))<=tolwd) = 0;
y(abs(x-max(levels))<=tolwd) = 1;

subplot(2,1,1)
stem(t,x,'filled')
ylabel('Volts')
subplot(2,1,2)
stem(t,y,'filled')
ylabel('\{0,1\}')

決定ルールによって、すべての電圧が正しい状態に割り当てられています。