このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
デジタル クロックの状態推定
この例では、デジタル クロック データの 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\}')
決定ルールによって、すべての電圧が正しい状態に割り当てられています。