Interpolating FIR Filter

Het Interpolating FIR Filter in GNU Radio is een signaalverwerkingsblok dat de samplefrequentie van een signaal verhoogt door interpolatie, gecombineerd met filtering. Dit blok is nuttig wanneer je een hogere samplefrequentie nodig hebt, bijvoorbeeld om een signaal geschikt te maken voor een specifieke hardware-interface of om aliasing te voorkomen bij verdere verwerking.

Hoe Werkt Het?

De Interpolating FIR Filter verhoogt de samplefrequentie door nullen in te voegen tussen de samples van het originele signaal en daarna een FIR-filter toe te passen om het signaal te herstellen en ongewenste frequenties te onderdrukken.

Stappen:

  1. Nullen Invoegen (Upsampling):
    • Voor elke originele sample worden L−1 nullen ingevoegd, waarbij L de interpolatiefactor is. Dit verhoogt de samplefrequentie met een factor L: fuit = L ⋅ fin
    • Stel dat de originele samples zijn: x[n] = {x0, x1, x2, … }
      Na het invoegen van L−1nullen tussen de samples wordt het signaal: xupsampled[n] = {x0, 0, 0, …, x1, 0, 0, … }
  2. Filtering:
    • Het blok past een Finite Impulse Response (FIR)-filter toe op het opgewaardeerde signaal. Dit filter verwijdert ongewenste frequenties (zoals spiegelbeelden veroorzaakt door de nullen).
    • Het ingevoegde signaal wordt door een FIR-filter gehaald:
      y[n] = ∑k=0 tot M−1 hk ⋅ xupsampled[n−k]
      Hierbij:
      • hk : De FIR-filtercoëfficiënten.
      • M : De lengte van het filter.
    • Het FIR-filter onderdrukt frequenties die niet voldoen aan de Nyquist-criteria van de hogere samplefrequentie.

Parameters:

  • Interpolatiefactor (L): Het aantal keren dat de samplefrequentie wordt verhoogd.
  • Filtertaps: De FIR-filtercoëfficiënten die het frequentiebereik bepalen dat wordt doorgelaten na interpolatie. De filtertaps kunnen worden gegenereerd door het blok Low-Pass Filter Taps.

Voorbeeld:

Stel dat je een ingangssignaal hebt met een samplefrequentie van 1 kHz en je wilt deze verhogen naar 4 kHz. Dit vereist een interpolatiefactor L = 4.

Het proces is:

  1. Invoegen van 3 nullen tussen elke originele sample:

{1, 2, 3}  →  {1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0}

  1. Toepassen van een FIR-filter:
    • Het filter verwijdert ongewenste frequentiecomponenten

 

Belangrijke Notities:

  • Filterontwerp: Het ontwerp van het FIR-filter is cruciaal voor een goede signaalkwaliteit. Het filter moet breed genoeg zijn om de gewenste frequenties door te laten en ongewenste frequenties te onderdrukken.
  • Complexe Signalen: Het Interpolating FIR Filter kan complexe (IQ) signalen verwerken, wat nuttig is in SDR-toepassingen.
  • Efficiëntie: Hoewel interpolatie de samplefrequentie verhoogt en de rekenlast kan vergroten, wordt het efficiënt uitgevoerd door het combineren van nullen invoegen en filteren.

Dit maakt de Interpolating FIR Filter een krachtig hulpmiddel voor samplefrequentieaanpassing en signaalverwerking in GNU Radio.

Link naar GNU Radio site voor dit filter.