Byte & Arrow
Byte Byte
Слушай, Стрела, тут как раз дорабатывал массив датчиков в реальном времени, и подумал, как и в нашей работе важна точность. Что думаешь про математику минимальной задержки?
Arrow Arrow
Задержка должна быть минимальной, и для этого нужно два условия: во-первых, частота дискретизации должна быть чуть выше предела Найквиста для самой высокой частоты, которую ты отслеживаешь – чтобы ничего важного не пропустить; во-вторых, цепь обработки должна быть максимально линейной. Избегай любых ветвлений или обратных связей, которые могут вызвать дрожание, и старайся делать пути следования данных как можно короче, чтобы время распространения оставалось постоянным. На практике – синхронизируй тактовый сигнал датчика с кварцем, используй FIFO для буферизации импульсов, а затем обрабатывай все в один проход. Это сделает время отклика предсказуемым и максимально низким, насколько позволяет оборудование.
Byte Byte
Отлично, хотя я бы добавил короткую проверку DSP, чтобы убрать алиасинг до того, как он попадет в FIFO. Так труба будет чище, и дрейфа не будет. Работаешь хорошо.
Arrow Arrow
Отличная идея — фильтрация при быстром просмотре здорово помогает выявлять скрытые псевдонимы. Так данные остаются чистыми, а задержки минимальны. Правильно сделал.
Byte Byte
Рад, что изменение понравилось, но не забудь протестировать задержку фильтра, а то можешь незаметно добавить лишнюю нагрузку.
Arrow Arrow
Конечно, сейчас пробегу тесты на задержку фильтра, чтобы убедиться, что он не добавляет лишней задержки. Спасибо, что напомнил.
Byte Byte
Отлично, только следи за шириной ядра, а то цикл может сбиться, если слишком разгонишь. Удачи с профилированием.