GNU Radio Companion · Block

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

Band Reject Filter und Band Reject Filter Taps in GRC 3.10 — Funktionsweise, Parameter, Dimensionierung und die gezielte Unterdrückung unerwünschter Störer.

GRC 3.10 bietet zwei eng verwandte Bandsperr-Blöcke, die auf der Funktion firdes.band_reject() bzw. firdes.complex_band_reject() basieren: Band Reject Filter ist der aktive Verarbeitungsblock (Filterentwurf + Signalverarbeitung), während Band Reject Filter Taps ein reiner Variablen-Block ist, der lediglich die Filterkoeffizienten (Taps) berechnet.

1. Beschreibung der Blöcke

Band Reject Filter (filter.fir_filter_*) ist ein kombinierter Block: Er entwirft ein Bandsperrfilter (oft auch Notch-Filter genannt) aus den Parametern und wendet dieses direkt auf das Signal an. Es dämpft einen bestimmten Frequenzbereich (Sperrbereich) und lässt alle Frequenzen darunter und darüber passieren. Details dazu findest du im Artikel Bandpass- und Bandsperrfilter.

Band Reject Filter Block

Band Reject Filter Taps (firdes.band_reject() als GRC-Variable) berechnet dieselben Koeffizienten, verarbeitet aber selbst keine Daten. Er erzeugt ein Array (float_vector bzw. complex_vector), welches als Parameter an andere Blöcke (z. B. an einen Frequency Xlating FIR Filter) übergeben werden kann.

Band Reject Filter Taps Block


2. Technischer Einsatz

  • Wann „Band Reject Filter" (Block): Zur Beseitigung schmalbandiger, starker Störsignale (z. B. 50-Hz-Brummen im NF-Bereich oder starke Rundfunksender, die den Empfänger übersteuern — oft als „FM-Trap" im HF-Bereich bezeichnet).
  • Wann „Band Reject Filter Taps" (Variable): Wenn du ein Sperrverhalten in einem komplexen Filtermodul konfigurieren möchtest, das nur Taps als Eingabe erlaubt.
  • Reelle vs. komplexe Taps:
    • Reelle Taps (firdes.band_reject) sind symmetrisch um $0\text{ Hz}$. Sie blockieren Frequenzen sowohl im positiven als auch im negativen Spektrum (gespiegelt).
    • Komplexe Taps (firdes.complex_band_reject) können asymmetrisch liegen. Damit ist es möglich, einen ganz bestimmten, einseitigen Frequenzbereich im Spektrum auszublenden, ohne dass das gespiegelte Gegenstück ebenfalls gedämpft 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
low_cutoff_freq Hz untere Grenzfrequenz des Sperrbereichs Frequenz, an der die Dämpfung beginnt. Muss > 0 sein (bei reellen Taps)
high_cutoff_freq Hz obere Grenzfrequenz des Sperrbereichs Frequenz, an der die Dämpfung endet. Muss < samp_rate / 2 sein (bei reellen Taps)
width (Transition Width) Hz Übergangsbreite Bereich für den Übergang von Durchlass- zu Sperrbereich. Kleiner = steiler, führt aber zu einer deutlich höheren Tap-Zahl ($N \approx A_{sb}/(22 \cdot \Delta f/f_s)$)
gain linear Gesamtverstärkung des Filters Standard ist 1.0 (keine Dämpfung/Verstärkung im Durchlassbereich)
win (Window) Enum Fensterfunktion Hamming, Hann, Blackman, Rectangular oder Kaiser. Bestimmt die Tiefe der Sperrdämpfung (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 Band Reject Filter Taps-Block besitzt keine Signalanschlüsse. Für den Band Reject Filter-Verarbeitungsblock stehen folgende Typen zur Verfügung:

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

5. Weitere wichtige Aspekte

  • Echtzeit-Nachstimmung: Grenzfrequenzen können zur Laufzeit verändert werden (z. B. durch Schieberegler in der GUI). GNU Radio berechnet die Taps automatisch neu und aktualisiert das Filter im laufenden Betrieb.
  • Filtersteilheit: Eine sehr schmale Kerbe (Notch-Filter) erfordert eine sehr kleine Übergangsbreite (width). Dies erzeugt eine extrem hohe Tap-Zahl. Falls die CPU-Last zu hoch wird, empfiehlt sich die Prüfung von IIR-Notch-Filtern als recheneffiziente Alternative.