Gnuradio DAB constellation using gr-dab and USRP

From Opendigitalradio
(Difference between revisions)
Jump to: navigation, search
(dab_rx_constellation.py patch)

Revision as of 00:06, 11 February 2010

Plot in live the constellation diagram of a received DAB signal using gr-dab and USRP.

Contents

Pre-requisites

  • USRP or baseband recording from a file
    • WBX daughterboard or modified RFX400 (TVRX daughterboard has too much phase noise and cannot be used)
  • Linux PC with Gnuradio source (>=3.2)
  • gr-dab tools

Installation

  • Download source code of gnuradio and gr-dab tools
  • Patch peak detector of gnuradio source code with patch/not-applied-in-trunk of gr-dab
  • Patch "dab_rx_constellation.py" with patch below
  • Configure, compile and install gnuradio and then gr-dab tools.
    • If you want to use a separate gnuradio installation from the original one, follow steps here to have multiple gnuradio installation on your machine

Usage

Use -h for basic usage:

dab_rx_constellation.py -h

Example for plotting the constellation of an ensemble on 223.936MHz:

dab_rx_constellation.py -R A -f 223936000 -c -e -S



dab_rx_constellation.py patch

Index: dab_rx_constellation.py
===================================================================
--- dab_rx_constellation.py    (revision 203)
+++ dab_rx_constellation.py    (working copy)
@@ -91,8 +91,8 @@
        self.demod = dab.ofdm_demod(self.dab_params, self.rx_params, verbose=self.verbose)

        self.v2s = gr.vector_to_stream(gr.sizeof_gr_complex, self.dab_params.num_carriers)
-        self.scope = scopesink2.constellation_sink(self.panel, title="DAB constellation sink", sample_rate=self.dab_params.sample_rate, frame_decim=3)
-        self.scope.win.set_marker("plus")
+        self.scope = scopesink2.scope_sink_c(self.panel, title="DAB constellation sink", sample_rate=self.dab_params.sample_rate, frame_decim=3)
+        # self.scope.win.set_marker("plus")

        # self.sink = gr.null_sink(gr.sizeof_char*self.dab_params.num_carriers/4)
        self.trigsink = gr.null_sink(gr.sizeof_char)
Personal tools