Цитата
Алгоритм Герцеля принадлежит к числу так называемых алгоритмов полубыстрого преобразования Фурье, так как для расчета всего спектра требуется всего в 2 раза меньше операций, чем для обычного дискретного. В этом плане БПФ выигрывает.
1 Если Вам всё-таки нужно считать полный спектр, что неэффективно, поступаете так же, как с БПФ
2 Если Вам нужно посчитать какие-то отдельные гармоники (а вот здесь как раз АГ может дать выигрыш, но надо посчитать), то в целом можно обойтись и без окон. Выигрыш в производительности зависит от числа требуемых к нахождению гармоник и размера буфера.
3 АГ по сути является БИХ-фильтром, так что при реализации в целочисленной арифметике см. рекомендации выше.
Алгоритм Герцеля наглядно показывает выигрыш когда нужно получить спектр на
каждый входной отчёт. Для всего спектра получаем N умножений для Герцеля, N*log(N) - для FFT, N^2 - для DFT. И это на
каждый входной отчёт. Но разрядность умножителей Герцеля должна быть выше (я делал почти в 2 раза) для того что бы показать теже характеристики что и в схемах без рекурсии. Но если нам нужно отслеживать спекральные компоненты числом M << N, то тогда для Герцеля получаем M умножений, а для FFT и DFT их число сохраняется. Тогда и выигрыш становится более очевидным. Для больших символьных скоростей этот алгоритм единственное решение для непрерывного отслеживания спектральных составляющих, т.к. Делать FFT на каждый отчёт при большой символьной задача нереализуемая.