Импульс меры и характеристики перехода потоковой передачи сигналов

Этот пример измеряет метрики импульса и перехода шумного меандра. Импульсные метрики включают время нарастания, время спада, ширину импульса и импульсный период. Метрики перехода включают средние перекрестные события, перерегулирование и отклонение от номинала областей аберрации постперехода шумного меандра.

Сгенерируйте меандр

Сгенерируйте шумный меандр. Шум является белым Гауссовым шумом с нулевым средним значением и стандартным отклонением 0,1. Храните данные в rectData.

t = 0:.01:9.99;   % time vector 
w = 1; % pulse width
d = w/2:w*2:10; % delay vector
y2 = pulstran(t,d,'rectpuls',w); 
rectData = y2'+0.1*randn(1000,1); % rectangular pulse with noise
plot(rectData);
xlabel('Samples');
ylabel('Level (volts)');

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

Измерьте государственные уровни

dsp.StateLevels Системный объект использует метод гистограммы, чтобы оценить государственные уровни двухуровневого сигнала. Метод гистограммы включает следующие шаги:

  1. Определите максимальные и минимальные амплитуды данных.

  2. Для конкретного количества интервалов гистограммы определите ширину интервала, которая является отношением амплитудной области значений к количеству интервалов.

  3. Сортировка значений данных в интервалы гистограммы.

  4. Идентифицируйте самый низкий индексируемый интервал гистограммы и самый высокий индексируемый интервал гистограммы с ненулевыми количествами.

  5. Разделите histgram на две подгистограммы.

  6. Вычислите государственные уровни путем определения режима или среднего значения верхних и более низких гистограмм.

Постройте государственные уровни меандра.

sLevel = dsp.StateLevels;
levels = sLevel(rectData);
figure(1);
plot(sLevel);

Figure State Level Information contains 2 axes. Axes 1 with title Histogram of signal levels (100 bins) contains an object of type line. Axes 2 with title Signal contains 3 objects of type line.

Вычислите импульсные метрики

Используя dsp.PulseMetrics Системный объект, можно вычислить метрики, такие как время нарастания, время спада, ширина импульса и импульсный период меандра. Постройте импульс с государственными уровнями и контрольными уровнями.

pMetrics = dsp.PulseMetrics('StateLevels',levels,'CycleOutputPort',true);
[pulse,cycle] = pMetrics(rectData);
plot(pMetrics);
xlabel('Samples');

Figure PulseMetrics information contains an axes. The axes contains 12 objects of type line. These objects represent signal, +cross, -cross, upper boundary, upper state, lower boundary, upper reference, mid reference, lower reference, lower state.

Время нарастания является длительностью между моментами, где возрастающий переход каждого импульса пересекается от ниже к верхним контрольным уровням. Просмотрите время нарастания каждого импульса.

pulse.RiseTime
ans = 4×1

    0.8864
    0.8853
    1.6912
    1.7727

Время спада является длительностью между моментами, где падающий переход каждого импульса пересекается от верхнего до более низких контрольных уровней. Просмотрите время спада каждого импульса.

pulse.FallTime
ans = 4×1

    2.4263
    0.7740
    1.7339
    0.9445

Ширина является длительностью между пересечениями середины контрольного уровня первых и вторых переходов каждого импульса. Просмотрите ширину каждого импульса.

pulse.Width
ans = 4×1

   99.8938
  100.0856
  100.1578
  100.1495

Период является длительностью между первым переходом импульса тока и первым переходом следующего импульса. Просмотрите период каждого импульса.

cycle.Period
ans = 3×1

  199.9917
  199.9622
  199.9291

Полярность

Polarity свойство pMetrics объект установлен в 'Positive'. Объект поэтому вычисляет импульсные метрики, начинающие с первого положительного перехода.

Выполнение метрик

Если RunningMetrics свойство установлено в true, объект обрабатывает данные как непрерывный поток рабочих данных. Если существует неполный импульс в конце, объект возвращает метрики последнего импульса на следующем этапе процесса, если это имеет достаточно данных, чтобы завершить импульс. Если RunningMetrics свойство установлено в ложь, объект обрабатывает каждый вызов процесса независимо. Если последний импульс является неполным, объект вычисляет любые метрики, которые это может возвратить с доступными данными. Например, если импульс является половиной завершенного, объект может возвратить время нарастания последнего импульса, но не импульсный период.

Учитывая, что полярность положительна, и рабочие метрики установлены в ложь, меандр имеет:

  • Первый положительный переход в 200 секунд

  • Три полных импульса и два неполных импульса (сначала и последнее)

  • Четыре положительных перехода и четыре отрицательных перехода

В зависимости от метрики число элементов в метрическом векторе равно или количеству переходов или количеству полных импульсов. Вектор времени нарастания имеет четыре элемента, который совпадает с количеством переходов. Период цикла имеет три элемента, который совпадает с количеством полных импульсов.

Установите RunningMetrics свойство к true.

release(pMetrics);
pMetrics.RunningMetrics = true;
[pulse,cycle] = pMetrics(rectData);
plot(pMetrics);
xlabel('Samples');

Figure PulseMetrics information contains an axes. The axes contains 12 objects of type line. These objects represent signal, +cross, -cross, upper boundary, upper state, lower boundary, upper reference, mid reference, lower reference, lower state.

Объект pMetrics имеет три положительных перехода и три отрицательных перехода. Объект ожидает, чтобы завершить последний импульс, прежде чем это возвратит метрики для последнего импульса.

Разделите входные данные на две системы координат с 500 выборками в каждой системе координат. Вычислите импульсные метрики данных в рабочем режиме. Количество циклов итерации соответствует количеству обработанных кадров данных.

release(pMetrics);
framesize = 500;
for i = 1:2
    data = rectData((((i-1)*framesize)+1):i*framesize);
    [pulse,cycle] = pMetrics(data);
    pulse.RiseTime
end
ans = 0.8864
ans = 2×1

    0.8853
    1.6912

Первая система координат содержит один полный импульс и 2 неполных импульса. Значение времени нарастания, отображенное на первом шаге итерации, соответствует возрастающему переходу в этом полном импульсе. Время нарастания последнего полного импульса не отображено на этом шаге итерации. Алгоритм ожидает, чтобы завершить импульсные данные. Вторая система координат данных содержит остающуюся часть этого импульса и другого полного импульса. Вектор времени нарастания на втором шаге итерации имеет два элемента - первое значение соответствует возрастающему переходу неполного импульса на предыдущем шаге, и второе значение соответствует возрастающему переходу полного импульса на текущем шаге.

Вычислите метрики перехода

Метрики перехода соответствуют метрикам первых и вторых переходов. Используя dsp.TransitionMetrics Системный объект, можно определить middlecross события и вычислить постперерегулирование и постотклонение от номинала меандра. Чтобы измерить метрики постохоты, установите PostshootOutputPort свойство dsp.TransitionMetrics к истине.

tMetrics = dsp.TransitionMetrics('StateLevels',levels,'PostshootOutputPort',true);
[transition,postshoot] = tMetrics(rectData);
plot(tMetrics);
xlabel('Samples');

Figure TransitionMetrics information contains an axes. The axes contains 15 objects of type line. These objects represent signal, upper cross, mid cross, lower cross, post-overshoot, post-undershoot, upper boundary, upper state, lower boundary, upper reference, mid reference, lower reference, lower state.

Средние перекрестные события являются моментами вовремя, где импульсные переходы пересекают средний контрольный уровень. Просмотрите средние перекрестные события импульса.

transition.MiddleCross
ans = 9×1

   99.4345
  199.4582
  299.3520
  399.4499
  499.5355
  599.4121
  699.5699
  799.3412
  899.4907

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

postshoot.Overshoot
ans = 9×1

    5.6062
    6.1268
   10.8393
    1.8311
   11.2240
   13.2285
    9.2560
    2.2735
   14.0357

Значение отклонения от номинала меандра является минимумом значений отклонения от номинала всех переходов.

postshoot.Undershoot
ans = 9×1

    5.6448
   12.5596
    6.2156
   16.8403
   -1.9859
    7.6490
   11.7320
   17.3856
    2.0221

Смотрите также

Объекты

Функции

Похожие темы