Goertzel

Berechnet effizient den DFT-Wert einer einzelnen, fest gewählten Frequenz — der schlanke Baustein für Einzelton-Erkennung statt einer vollen FFT.

1. Beschreibung des Blocks

Der Goertzel-Block (blocks.goertzel_fc) berechnet mit dem Goertzel-Algorithmus den komplexen DFT-Koeffizienten einer einzigen, vorgegebenen Frequenz aus jeweils Length aufeinanderfolgenden Eingangssamples. Anders als der FFT-Block oder Log Power FFT, die immer das komplette Spektrum liefern, wertet der Goertzel-Block gezielt nur die eine interessierende Frequenz aus — dadurch deutlich günstiger in der Rechenlast, wenn nicht das ganze Spektrum, sondern nur ein bekannter Einzelton gebraucht wird.

Goertzel Block

2. Technischer Einsatz

Goertzel ist der Standardbaustein für Einzelton-Erkennung, wenn die Zielfrequenz(en) bereits bekannt sind: DTMF-Wahltöne, CTCSS-/Sub-Audio-Tonsquelch, Pilotton-Erkennung, SelCall/Pager-Tonfolgen oder eine eigene Tonfolge zur Aktivierung einer Funktion. Für jeden zu erkennenden Ton wird ein eigener Goertzel-Block mit passender Frequency benötigt; bei mehreren gleichzeitig zu prüfenden Tönen (z. B. DTMF-Paare) wird für jede Frequenz eine eigene Instanz parallel angeschlossen.

Ist die Zielfrequenz dagegen nicht exakt bekannt oder soll das gesamte Spektrum durchsucht werden, ist der volle FFT- bzw. Log Power FFT-Pfad die richtige Wahl — Goertzel lohnt sich gerade dadurch, dass er auf diese Breitbandsuche bewusst verzichtet.

3. Parameter und Dimensionierung

Parameter Typ/Einheit Bedeutung Dimensionierungshinweis
Rate Hz Abtastrate des Eingangssignals muss der tatsächlichen Flowgraph-Rate entsprechen
Length Samples Fensterlänge, über die ein DFT-Wert berechnet wird größere Länge = feinere Frequenzauflösung, aber langsamere Reaktion und niedrigere Ausgaberate (Rate/Length); kleinere Länge = schnellere Erkennung, aber breiterer Erfassungsbereich um Frequency
Frequency Hz Zielfrequenz, deren DFT-Koeffizient berechnet wird muss < Rate/2 bleiben (Nyquist); Genauigkeit der Erkennung hängt von Length ab
Die effektive Frequenzauflösung entspricht Rate / Length — dieselbe Abwägung wie bei der Bin-Breite einer vollen FFT, hier aber nur für die eine gewählte Frequenz statt für das ganze Spektrum.

4. Ein- und Ausgänge

Ein-/Ausgang Typ
Eingang Float (reeller Signalstrom)
Ausgang Complex — ein Wert je Length Eingangssamples (dezimiert)

Der Ausgang ist ein einzelner komplexer Wert pro Fenster: sein Betrag entspricht der Energie des Signals bei Frequency, seine Phase der Phasenlage dieser Frequenzkomponente. Für eine reine Pegelauswertung (z. B. Schwellwert zur Ton-Erkennung) folgt üblicherweise ein Complex to Mag- oder Complex to Mag²-Block.

5. Weitere wichtige Aspekte

Kein Ersatz für Filterung: Goertzel liefert nur den DFT-Wert an der Zielfrequenz — Signalanteile aus benachbarten Frequenzen, die innerhalb der durch Length bestimmten Bin-Breite liegen, tragen weiterhin zum Ergebnis bei. Für eine trennscharfe Erkennung dicht beieinanderliegender Töne muss Length entsprechend groß gewählt werden.

Typische Weiterverarbeitung: Ausgang → Complex to Mag → Schwellwertvergleich → Bool-Gate (Message), z. B. um eine Funktion erst nach Erkennung einer definierten Tonfolge zu aktivieren.

Verwandte Blöcke: FFT und Log Power FFT für die Analyse des gesamten Spektrums statt einer einzelnen Frequenz.