Matlab измеряет ширину импульса и график во времени для оценки джиттера

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

Сам сигнал был получен с помощью осциллографа и сохранен в виде cvs- файла, канал 2 - это импульсный сигнал, где я хочу оценить, в каких границах импульсы устойчивы или нет.

with d = dutycycle(CH2)

я мог бы получить рабочий цикл из моего сигнала

Как я могу изобразить рабочий цикл или время низкого импульса в виде графической линии или поля, чтобы увидеть их изменения во времени?

Оба файла для тестирования находятся здесь:

1 ответ

Ваш сигнал достаточно чистый, поэтому вы можете просто использовать пороговое значение. Если вам нужно немного больше шума, вот один из способов.

Основной подход состоит в том, чтобы разложить сигнал по частям (на последовательность постоянных сегментов). Идентификация точки изменения дает вам время начала и окончания, а также величину каждого сегмента.

Затем все четные времена являются нарастающими, а нечетные - падающими (или наоборот). Различия между этими двумя векторами дают большую и низкую длительность каждого импульса, а различия между нарастающими фронтами дают длительность каждого импульса.

rising = TIME(1+est.time(2:2:end));
falling = TIME(1+est.time(1:2:end));
hightime = falling(2:end) - rising(1:end-1); 
lowtime = rising(2:end) - falling(2:end);
plot([lowtime hightime diff(rising)])
legend('Low Time', 'High Time', 'Pulse Duration')

Результаты анализа: низкая, высокая и длительность цикла

Рабочий цикл тогда hightime ./ diff(rising) и вы можете приступить к расчетам джиттера.

Для выполнения сегментации я использовал код из своей диссертации, но этот простой случай (кусочно-постоянный) уже был решен Killick et. Аль (2012)

Р. Киллик, П. Фернхед и И. А. Экли. Оптимальное обнаружение точек изменения с линейными вычислительными затратами. Журнал Американской статистической ассоциации, 107(500):1590–1598, декабрь 2012 г. doi: 10.1080 / 01621459.2012.737745.

Другие вопросы по тегам