Дискретное преобразование Фурье с алгоритмом Гертцеля второго порядка
Алгоритм Гертцеля реализует дискретное X преобразования Фурье (k) как свертку входного N x (n), n = 0, 1,..., N - 1 с импульсной характеристикой
где u (n), модуль последовательность шагов, равна 1 для n ≥ 0 и 0 в противном случае. k не обязательно должно быть целым числом. На частоте f = k f s/ N, где f s - частота дискретизации, преобразование имеет значение
где
и x (N) = 0. Z-преобразование импульсной характеристики
с этой прямой формой II реализации:
Сравните выходные данные goertzel
к результату прямой реализации алгоритма Гертцеля. Для входного сигнала используйте щебет, дискретизированный на частоте 50 Гц в течение 10 секунд и встроенный в белый Гауссов шум. Частота щебета увеличивается линейно с 15 Гц до 20 Гц во время измерения. Вычислите дискретное преобразование Фурье на частоте, которая не является целым числом, кратным f s/ 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
Можно также вычислить ДПФ с:
fft
: менее эффективный, чем алгоритм Гертцеля, когда вам нужен только ДПФ на нескольких частотах. fft
является более эффективным, чем goertzel
когда вам нужно вычислить преобразование на более чем лог2 частотах N, где N - длина входного сигнала.
czt
: czt
вычисляет Z-преобразование ЛЧМ входного сигнала на круговом или спиральном контуре и включает ДПФ в качестве особого случая.
[1] Беррус, К. Сидни и Томас У. Паркс. Алгоритмы DFT/FFT и свертки: теория и реализация. Нью-Йорк: John Wiley & Sons, 1985.
[2] Проакис, Джон Г. и Димитрис Г. Манолакис. Цифровая обработка сигналов: принципы, алгоритмы и приложения. 3-е издание. Upper Saddle River, NJ: Prentice Hall, 1996.
[3] Сисель, Петр и Павел Раджмич. «Алгоритм Гертцеля, обобщенный на нецелочисленные множители основной частоты». Журнал EURASIP о усовершенствованиях в обработке сигналов. Том 2012, № 1, декабрь 2012, стр. 56-1-56-8. https://doi.org/10.1186/1687-6180-2012-56.