GNU Radio & GNU Octave

W trakcie łączenia lub tworzenia bloków GNU Radio bardzo często pojawia się potrzeba podglądnięcia sygnału wewnętrznego bądź też analiza jego widma. Do takich celów idealnie nadaje sie Octave. Jak go użyć?

  1. Po instalacji GNURadio w Ubuntu NIE MAMY zainstalowanych skryptów do komunikacji z Octave.
  2. W celu zdobycia skryptów należy ściągnąć wersję źrodłową całego GNURadio (z archiwum SVN lub *.tar.gz). Ściągamy i rozpakowujemy całość w katalogu domowym.
  3. Instalujemy GNU Octave.
  4. W katalogu domowym tworzymy plik .octaverc
  5. W pliku wpisujemy:
    addpath("__pelna_sciezka_do_zrodel_gnuradio__/gnuradio-core/src/ utils/")
  6. Od tej chwili nasz Octave został wzbogacony o komendy:
    • read_complex_binary(): gr.sizeof_gr_complex
    • read_float_binary(): gr.sizeof_float
    • read_int_binary(): gr.sizeof_int
    • read_short_binary(): gr.sizeof_short
    • read_char_binary(): gr.sizeof_char
  7. W naszym python'owym skrypcie umieszczamy komendę
    gr.file_sink(size, filename)
    ORAZ podpinamy ta komendę pod sygnał który nas interesuje
    self.connect ( , )
  8. Po wywołaniu skryptu python'owego utworzy się plik (o nazwie zdefiniowanej w gr.file_sink), plik ten może być następnie odczytany w Octave za pomocą jednej z komend wymienionych w punkcie 6.

W ramach eksperymentu ogladnąłem sobie graficzną reprezentację sinusa z przykładu DTMF, w wolnej chwili spróbuję sprawdzić jego widmo :-)