GNU Radio Companion · Block

Hochpass-Filter-Blöcke (Filter & Taps)

High Pass Filter und High Pass Filter Taps in GRC 3.10 — Funktionsweise, Parameter, Dimensionierung und die Unterdrückung tiefer Frequenzen (LO-Leakage/DC-Spikes).

GRC 3.10 bietet zwei eng verwandte Hochpass-Blöcke, die auf der Funktion firdes.high_pass() basieren: High Pass Filter ist der aktive Verarbeitungsblock (Filterentwurf + Signalverarbeitung), während High Pass Filter Taps ein reiner Variablen-Block ist, der lediglich die Filterkoeffizienten (Taps) berechnet.

1. Beschreibung der Blöcke

High Pass Filter (filter.fir_filter_*) ist ein kombinierter Block: Er berechnet die Koeffizienten aus den Grenzfrequenzen, der Übergangsbreite und dem Fenster und wendet diese direkt auf das Signal an. Er blockiert tiefe Frequenzen und lässt hohe Frequenzen passieren. Details dazu findest du im Artikel Hochpassfilter.

High Pass Filter Block

High Pass Filter Taps (firdes.high_pass() als GRC-Variable) berechnet exakt dieselben Koeffizienten, verarbeitet aber selbst keine Signale. Er stellt das berechnete Array (float_vector bzw. real_taps) anderen Blöcken (z. B. dem Frequency Xlating FIR Filter) zur Verfügung.

High Pass Filter Taps Block


2. Technischer Einsatz

  • Wann „High Pass Filter" (Block): Typischerweise zur Entfernung von Gleichspannungsoffsets (DC-Spikes) und LO-Leakage (Local-Oscillator-Durchsprechen), die bei Direct-Conversion-Empfängern (wie dem RTL-SDR) genau in der Mitte des Spektrums (bei $0\text{ Hz}$) auftreten.
  • Wann „High Pass Filter Taps" (Variable): Wenn du ein steiles Hochpassverhalten in Kombination mit einer Frequenzverschiebung in einem Frequency Xlating FIR Filter realisieren möchtest.
  • Reelle Koeffizienten: Auch Hochpasskoeffizienten sind reelle Zahlen, da das Filterverhalten symmetrisch um $0\text{ Hz}$ konstruiert wird.

3. Parameter und Dimensionierung

Beide Blöcke teilen sich die folgenden Kernparameter für den Filterentwurf:

Parameter Typ/Einheit Bedeutung Dimensionierungshinweis
samp_rate Hz Abtastrate des Eingangssignals muss exakt mit der Rate des eingehenden Datenstroms übereinstimmen
cutoff_freq Hz Grenzfrequenz (3dB-Punkt) Frequenzen unterhalb dieser Grenze werden gedämpft. Muss < samp_rate / 2 sein
width (Transition Width) Hz Übergangsbreite Übergangsbereich vom Sperr- zum Durchlassbereich. Kleiner = steiler, bedeutet aber eine höhere Tap-Zahl und mehr Rechenleistung ($N \approx A_{sb}/(22 \cdot \Delta f/f_s)$)
gain linear Gesamtverstärkung des Filters Standard ist 1.0 (keine Pegeländerung im Durchlassbereich)
win (Window) Enum Fensterfunktion Hamming, Hann, Blackman, Rectangular oder Kaiser. Bestimmt die Dämpfung im Sperrbereich (siehe Fensterfunktionen)
beta Kaiser-Beta nur bei Auswahl des Kaiser-Fensters aktiv; steuert den Kompromiss zwischen Flankensteilheit und Sperrdämpfung

4. Ein- und Ausgänge

Der High Pass Filter Taps-Block besitzt keine Signalanschlüsse. Für den High Pass Filter-Verarbeitungsblock stehen folgende Typen zur Verfügung:

FIR Type Eingangstyp Ausgangstyp Taps-Art
Complex->Complex (Decimal) complex complex reell (float)
Float->Float (Decimal) float float reell (float)
Float->Complex (Decimal) float complex reell (float)

Hinweis zur Dezimation/Interpolation: Die Blöcke erlauben es, direkt beim Filtern eine Dezimation (Herabsetzen der Abtastrate) oder Interpolation (Erhöhen der Abtastrate) durchzuführen, was die Recheneffizienz erheblich steigert.


5. Weitere wichtige Aspekte

  • DC-Filterung: Ein Hochpassfilter mit einer sehr niedrigen Grenzfrequenz (z. B. cutoff_freq = 50 Hz bei samp_rate = 48000 Hz) ist ein hervorragender digitaler DC-Blocker.
  • Achtung bei extrem niedrigen Grenzwerten: Je näher die Grenzfrequenz bei $0\text{ Hz}$ liegt und je kleiner die Übergangsbreite sein soll, desto höher wird die benötigte Tap-Zahl. Bei extremen Verhältnissen von Abtastrate zu Grenzfrequenz ist ein IIR-Filter (z. B. ein Single-Pole-IIR-Filter als DC-Blocker) oft recheneffizienter als ein FIR-Hochpass.