[an error occurred while processing this directive]
|
в конце блока вычисляются энергетические коф-ты для всех гармоник DFT длины блока N. Именно те же самые которые по определению получаются при прямой реализации DFT. Соответственно, как и для DFT ширина спектральной линии обратно пропорциональна N. Если N мало - то линии будут широкие и вы не сможите разрешить сигналы соседних гармоник.
Герцель - это другая реализация DFT для одной гармоники. Используется только потому, что на некоторых процессорах быстрее прямой реализации до 2 раз. На некоторых других без разницы.
Прямая реализация DFT предпочтительней, когда нужно построить скользящий алгоритм, как я описал выше. Более того, в шаге 2 можно узнать CIC фильтр, соответственно можно заставить скользить окно не на один отсчёт, а как вам удобно, для обеспечения временного разрешения
Правильный CIC фильтр вообще-то выглядит так
2. Для каждой квадратурной компоненты сигнала X
делаем интегратор (целые вычисления без насыщения, давая ему переполняться в свободном полёте)
Y(i) = Y(i-1) + X(i)
потом дифференцируем с шагом длины окна
Z(i) = Y(i) - Y(i-N)
причём последнее дифференцирование можно делать не на каждом отсчёте, а с нужной дискретностью.
Не знаю, может и Герцель можно переделать в скользящий. А так - он блочный, что не здорово, если нужно высокое временное разрешение.
В, общем, вы меня поняли ...
E-mail: info@telesys.ru