Оцените состояние для электронных часов

В этом примере показано, как оценить высокие и низкие государственные уровни для данных об электронных часах. В отличие от аналоговых сигналов напряжения, сигналы в цифровых схемах имеют только два состояния: HIGH и LOW. Информация передается шаблоном высоких и низких государственных уровней.

Загрузите clockex.mat в рабочую область MATLAB®. clockex.mat содержит форму волны электронных часов на 2,3 вольта, произведенную на уровне 4 мегагерц. Загрузите данные о часах в переменную x и вектор времени выборки в переменной t. Отобразите данные на графике.

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

Figure contains an axes object. The axes object contains an object of type stem.

Определите высокие и низкие государственные уровни для данных о часах с помощью statelevels.

levels = statelevels(x)
levels = 1×2

    0.0027    2.3068

Это - ожидаемый результат для данных о часах на 2,3 вольта, где бесшумный низкий государственный уровень составляет 0 вольт, и бесшумный высокий государственный уровень составляет 2,3 вольта.

Используйте предполагаемые государственные уровни, чтобы преобразовать напряжения в последовательность нулей и единиц. Последовательность нулей и единиц является представлением сигнала в двоичной форме двух состояний. Чтобы сделать присвоение, используйте следующее правило решения:

  • Присвойте любое напряжение в 3 областях %-допуска низкого государственного уровня значение 0.

  • Присвойте любое напряжение в 3 областях %-допуска высокого государственного уровня значение 1.

Определите ширины 3 областей %-допуска вокруг минимума - и высокие государственные уровни.

tolwd = 3/100*diff(levels);

Используйте логическую индексацию, чтобы определить напряжения в 3 областях %-допуска низкого государственного уровня и напряжения в 3 областях %-допуска высокого государственного уровня. Присвойте значение 0 напряжениям в области допуска низкого государственного уровня и 1 к напряжениям в области допуска высокого государственного уровня. Постройте результат.

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\}')

Figure contains 2 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains an object of type stem.

Правило решения присвоило все напряжения правильному состоянию.