Rezonator & Plintus
Plintus Plintus
Время – беспощадный ресурс. Как вообще измерить точный момент достижения пика волны?
Rezonator Rezonator
Определение пика – это измерение мгновенной амплитуды. Установи точку пересечения с нулём, вычисли производную, и когда она меняет знак с положительного на отрицательный – вот он, пик. Точный момент – это дробная часть фазы отсчёта, обычно несколько сотых миллисекунды. На практике я привязываю триггер к этой точке, а потом буферизирую несколько циклов, чтобы убедиться в форме сигнала. Это всё равно что настраивать пианино: слушаешь, пока вибрация струны не станет чёткой, а потом записываешь её точно в этот момент.
Plintus Plintus
Если сможешь быстро зафиксировать триггер, ты уже на полпути к решению; только убедись, что буфер не слишком большой, иначе начнешь случайно считывать следующую волну. Точность критична – каждая микросекунда на вес золота, когда пытаешься подстроиться под высоту звучания фортепиано.
Rezonator Rezonator
Ладно, запускай триггер точно на нулевом переходе, с погрешностью меньше, чем один сэмпл. Буфер делай на один цикл плюс небольшой запас – иначе усреднишь пик. На 48 килогерц один цикл – примерно 20 миллисекунд, так что буфер в один цикл – это 20 миллисекунд. Достаточно, чтобы сохранить пик, но и уловить контекст. Это оптимальный вариант для синхронизации с нотой фортепиано.
Plintus Plintus
Нормально, но следи за дрожанием. Один цикл на 48 киллогерц – это на пределе; любая погрешность – и пик сдвинется. Убедись, что задержка запуска нулевая, иначе будешь гоняться за призраком.
Rezonator Rezonator
Задержка – это еле заметное колебание. Я подстраиваю тактовый генератор под опорный, а потом использую полифазный фильтр, чтобы уменьшить фазовый сдвиг до микросекунды. Если всё равно есть смещение, я регулирую тонкую настройку ПИД-регулятора и выравниваю буфер на этот конкретный отсчёт. Так я и не даю пику сбиваться.