L'uso dell'algoritmo Goertzel offre effettivamente una migliore risoluzione della frequenza?


19

Sto leggendo questo articolo e sto diventando un po 'confuso dall'uso liberale dell'autore della "risoluzione di frequenza" per quanto riguarda l'algoritmo di Goertzel.

Domanda di base: l'utilizzo dell'algoritmo Goertzel in realtà offre una maggiore risoluzione in frequenza su una specifica banda di interesse o semplicemente calcola in modo efficiente la FFT solo sulla specifica fascia di interesse, ma alla stessa risoluzione in frequenza specificata per frequenza di campionamento divisa per numero di campioni?

Ad esempio, supponiamo che sia 100 KHz, (fisso) e il numero di campioni di dati N sia 10000. (Anche fisso). Se calcolo una FFT normale, dove anche la lunghezza della FFT è N , la risoluzione della mia frequenza è F sFsNN come previsto, e sarà uguale a 10 Hz. Ciò significa che i miei contenitori sono separati da 10 Hz, da -50.000 Hz a 50.000 Hz.FsN

Ora diciamo che voglio usare l'algoritmo di Geortzel per guardare solo le frequenze nell'intervallo di 20.000-21.000 Hz. Se uso la stessa per numero di campioni e uso la stessa N per la mia dimensione FFT, qual è la mia risoluzione di frequenza? Ancora 10 Hz? O è 21 , 000 - 20 , 000NNHz?21,00020,00010000=0.1

Ho la sensazione che non sto realmente aumentando la mia risoluzione di frequenza, quanto semplicemente interpolando punti sul lobo principale, usando la stessa per valutare le frequenze da 21.000 a 20.000 come ho fatto da 0 a 50.000.N

È una comprensione corretta?

Risposte:


18

La tua comprensione è corretta.

Gli algoritmi di Goertzel danno quasi esattamente lo stesso risultato di 1 bin di un DFT o FFT della stessa lunghezza o numero di campioni (e in cui i fattori di twiddle FFT sono generati da una ricorsione del trigliceride), se usati per frequenze esattamente periodiche intere nella Lunghezza goertzel. Ma molte forme dell'algoritmo di Goertzel forniscono solo la grandezza, non il risultato complesso o la fase del risultato bin FFT 1. Inoltre, dal punto di vista computazionale, un Goertzel generico può essere numericamente leggermente meno stabile di un FFT generico. Per le frequenze non intere periodiche in apertura, il risultato equivale a un'interpolazione sincera tra bin di un DFT o FFT della stessa lunghezza (che può essere leggermente più accurata di un'interpolazione rispetto all'interpolazione parabolica più tipica dei risultati FFT ).

Si potrebbe dire che l'interpolazione aumenta la risoluzione in senso grafico (più punti della trama) o rende più facile individuare visivamente i massimi, ma non nel senso teorico dell'informazione, né per separare meglio 2 linee spettrali ravvicinate come 2 picchi separati.


3
Secondo paragrafo: Molto ben detto hotpaw2. Questo è ciò che penso confonde molte persone. Sì, quindi sembra che Goertzel Algo sia un modo rapido di calcolare la FFT su un sotto-elemento selezionato, con un'interpolazione del dominio F incorporata, se ti capita di mantenere tutto uguale come se stessi andando normale FFT.
Spacey

1

Non ero in grado di accedere all'articolo stavate riferendo, ma credo che si può trovare questo molto interessante. Gli autori hanno presentato la loro versione dell'algoritmo di Goertzel che può essere utilizzata per trovare ampiezze e fasi a frequenze che sono multipli non interi della frequenza fondamentale nel segnale dato. Ciò significa che il loro algoritmo migliora la risoluzione della frequenza. L'articolo contiene la prova matematica e il codice dell'algoritmo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.