Дискретное преобразование Фурье с алгоритмом Гертцеля второго порядка
Алгоритм Гертцеля реализует дискретное преобразование Фурье X (k) как свертку N-точечного входа x (n), n = 0, 1,..., N - 1, с импульсной характеристикой
kn u (n),
где u (n), последовательность единичной стадии, равна 1 для n ≥ 0 и 0 в противном случае. k не обязательно должно быть целым числом. На частоте f = kfs/N, где fs - частота дискретизации, преобразование имеет значение
| n = N,
где
n − m)
и x (N) = 0. Z-преобразование импульсной характеристики
2πkN) z − 1 + z − 2,
с этой прямой формой II реализации:

Сравнение выходных данных goertzel к результату прямой реализации алгоритма Гертцеля. Для входного сигнала используйте чирп, дискретизированный с частотой 50 Гц в течение 10 секунд и встроенный в белый гауссов шум. Частота чирпа линейно увеличивается от 15 Гц до 20 Гц во время измерения. Вычислить дискретное преобразование Фурье на частоте, которая не является целым кратным fs/N. При звонке goertzelпомните, что векторы MATLAB ® работают от 1 до N, а не от 0 до N-1. Результаты соответствуют высокой точности.
fs = 50; t = 0:1/fs:10-1/fs; N = length(t); xn = chirp(t,15,t(end),20)+randn(1,N)/100; f0 = 17.36; k = N*f0/fs; ykn = filter([1 -exp(-2j*pi*k/N)],[1 -2*cos(2*pi*k/N) 1],[xn 0]); Xk = exp(-2j*pi*k)*ykn(end); dft = goertzel(xn,k+1); df = abs(Xk-dft)
df = 4.3634e-12
Также можно вычислить DFT с помощью:
fft: менее эффективен, чем алгоритм Гертцеля, когда вам нужен только DFT на нескольких частотах. fft является более эффективным, чем goertzel когда нужно оценить преобразование на более чем log2N частотах, где N - длина входного сигнала.
czt: czt вычисляет чирп Z-преобразование входного сигнала на круговом или спиральном контуре и включает ДПФ в качестве специального случая.
[1] Беррус, К. Сидни и Томас В. Паркс. Алгоритмы DFT/FFT и свертки: теория и реализация. Нью-Йорк: John Wiley & Sons, 1985.
[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов: принципы, алгоритмы и приложения. 3-е издание. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1996.
[3] Сысель, Петр и Павел Раджмич. «Алгоритм Гертцеля, обобщенный на немногочисленные кратные фундаментальной частоты». Журнал EURASIP о достижениях в обработке сигналов. Том 2012, номер 1, декабрь 2012, стр. 56-1-56-8. https://doi.org/10.1186/1687-6180-2012-56.