GNU Radio Hilbert block

Het GNU Radio Hilbert block  is een signaalverwerkingstool die wordt gebruikt om de Hilbert-transformatie van een signaal uit te voeren. Deze transformatie wordt vaak toegepast om het signaal van het tijdsdomein te converteren. Hierbij wordt het oorspronkelijke signaal gecombineerd met zijn complexe “spiegelbeeld” in het frequentiedomein (verdraait het signaal 90 graden in fase en voegt het toe, m.a.w. het wordt een IQ-signaal). Hieronder volgt een uitleg in leesbaar Nederlands over hoe het GNU Radio Hilbert block werkt.

 

Ingang en uitgang van het GNU Radio Hilbert Block

  • Ingang: Het Hilbert-blok accepteert een reëel signaal (float of complex).
  • Uitgang: Het blok converteert een reëel signaal naar een complex signaal, bestaande uit:
    • Reële component (I): Het oorspronkelijke signaal.
    • Imaginaire component (Q): De Hilbert-getransformeerde versie van het signaal, die een 90° faseverschuiving heeft ondergaan. Positieve frequenties worden verschoven met -90° en negatieve frequenties met +90°

Parameters van het Hilbert-blok

Bij het configureren van het Hilbert-blok in GNU Radio kunnen verschillende parameters worden aangepast. Hier zijn de belangrijkste:

  1. Taps (FIR-filter-coëfficiënten)
  • Dit is een lijst met coëfficiënten die het gedrag van het FIR-filter definiëren. De taps bepalen:
    • De nauwkeurigheid van de Hilbert-transformatie.
    • De frequentierespons van het filter.
  • Hoe instellen?
    • Gebruik standaard een hoog aantal taps (bijvoorbeeld 100 of meer) voor een nauwkeurige transformatie.
    • Minder taps verminderen de rekentijd, maar kunnen artefacten in de frequentierespons veroorzaken.
  1. Filterlengte
  • De filterlengte wordt bepaald door het aantal taps.
  • Een langere filterlengte (meer taps) verbetert de precisie, vooral bij lage frequenties, maar verhoogt de rekentijd.
  1. Samplefrequentie
  • Het inkomende signaal moet correct worden bemonsterd volgens de Nyquist-criteria om aliasing te voorkomen.
  • Zorg ervoor dat de samplefrequentie van je signaal compatibel is met de gekozen taps.
  1. Passband-frequentie
  • Het filter moet correct worden afgesteld om alleen de gewenste frequentieband door te laten.
  • In de meeste gevallen is dit een breedbandfilter dat de volledige positieve of negatieve frequentiebereik dekt.

Praktisch gebruik van de Hilbert-transformatie

  1. SSB (Single Side Band)-modulatie:
    • De Hilbert-transformatie wordt gebruikt om een enkelzijdige band uit een breedbandig signaal te extraheren.
  2. FM-demodulatie:
    • Door een signaal met een Hilbert-getransformeerde versie te combineren, kun je de fase-informatie van het signaal analyseren.
  3. Signaalverwerking in SDR:
    • Het blok wordt vaak toegepast om complexe signalen te genereren uit reële signalen, bijvoorbeeld voor IQ-signalen.

Het GNU Radio Hilbert Block is in wezen een FIR-filter (Finite Impulse Response) dat de Hilbert-transformatie uitvoert. Dit filter:

  • Past een specifieke filterkernel toe die de gewenste faseverschuiving veroorzaakt.
  • Zorgt ervoor dat de frequentierespons geschikt is voor de Hilbert-transformatie (d.w.z. dat de amplitude constant blijft terwijl de fase lineair wordt verschoven).

Hoe stel je het in?

Bij het gebruik van het Hilbert-blok in GNU Radio wordt meestal een vooraf gedefinieerd FIR-filter gebruikt. Echter, voor gevorderde toepassingen kun je je eigen filter ontwerpen door taps handmatig te definiëren, bijvoorbeeld met behulp van een tool zoals gr_filter_design.

  1. Gebruik dan een even aantal taps om symmetrie in het filter te garanderen.
  2. Test verschillende filterlengtes voor een goede balans tussen prestaties en rekentijd.
  3. Pas de samplefrequentie aan aan de gewenste frequentieresolutie.

Voorbeeld flowgraph in GNU Radio site.