Оцифровка аналогового сигнала

У меня есть массив значений CSV, представляющих цифровой выход. Он был собран с помощью аналогового осциллографа, поэтому он не является идеальным цифровым сигналом. Я'Я пытаюсь отфильтровать данные, чтобы получить идеальный цифровой сигнал для расчета периодов (которые могут различаться). Я также хотел бы определить максимальную ошибку, которую я получаю от этой фильтрации.

Что-то вроде этого:

идея

Применить порог данных. Вот псевдокод:

for data_point_raw in data_array:
    if data_point_raw < 0.8: data_point_perfect = LOW
    if data_point_raw > 2  : data_point_perfect = HIGH

else:
    #area between thresholds
    if previous_data_point_perfect == Low : data_point_perfect = LOW
    if previous_data_point_perfect == HIGH: data_point_perfect = HIGH

Есть две проблемы, которые беспокоят меня.

Это кажется общей проблемой в цифровой обработке сигналов, однако я не имеюЯ нашел предопределенную стандартную функцию для него. Это хороший способ выполнить фильтрацию?Как бы я получил максимальную ошибку?

Ответы на вопрос(4)

Ваш ответ на вопрос