diff options
-rw-r--r-- | gnuradio-runtime/python/gnuradio/ctrlport/monitor.py | 2 | ||||
-rw-r--r-- | gr-digital/include/gnuradio/digital/constellation.h | 23 | ||||
-rw-r--r-- | grc/blocks/variable_constellation.xml | 51 | ||||
-rw-r--r-- | grc/blocks/variable_constellation_rect.xml | 69 |
4 files changed, 142 insertions, 3 deletions
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/monitor.py b/gnuradio-runtime/python/gnuradio/ctrlport/monitor.py index e067b9b0a6..8bb26d93a1 100644 --- a/gnuradio-runtime/python/gnuradio/ctrlport/monitor.py +++ b/gnuradio-runtime/python/gnuradio/ctrlport/monitor.py @@ -33,7 +33,7 @@ class monitor: try: # setup export prefs gr.prefs().singleton().set_bool("ControlPort","on",True); - if(tool == "gr-ctrlport-monitor"): + if(tool == "gr-perf-monitorx"): gr.prefs().singleton().set_bool("ControlPort","edges_list",True); gr.prefs().singleton().set_bool("PerfCounters","on",True); gr.prefs().singleton().set_bool("PerfCounters","export",True); diff --git a/gr-digital/include/gnuradio/digital/constellation.h b/gr-digital/include/gnuradio/digital/constellation.h index f8b99bb9c5..6ee274dd04 100644 --- a/gr-digital/include/gnuradio/digital/constellation.h +++ b/gr-digital/include/gnuradio/digital/constellation.h @@ -154,7 +154,15 @@ namespace gr { public: typedef boost::shared_ptr<constellation_calcdist> sptr; - // public constructor + /*! + * Make a general constellation object that calculates the Euclidean distance for hard decisions. + * + * \param constell List of constellation points (order of list matches pre_diff_code) + * \param pre_diff_code List of alphabet symbols (before applying any differential + * coding) (order of list matches constell) + * \param rotational_symmetry Number of rotations around unit circle that have the same representation. + * \param dimensionality Number of dimensions to the constellation. + */ static sptr make(std::vector<gr_complex> constell, std::vector<int> pre_diff_code, unsigned int rotational_symmetry, @@ -236,7 +244,18 @@ namespace gr { public: typedef boost::shared_ptr<constellation_rect> sptr; - // public constructor + /*! + * Make a rectangular constellation object. + * + * \param constell List of constellation points (order of list matches pre_diff_code) + * \param pre_diff_code List of alphabet symbols (before applying any differential + * coding) (order of list matches constell) + * \param rotational_symmetry Number of rotations around unit circle that have the same representation. + * \param real_sectors Number of sectors the real axis is split in to. + * \param imag_sectors Number of sectors the imag axis is split in to. + * \param width_real_sectors width of each real sector to calculate decision boundaries. + * \param width_imag_sectors width of each imag sector to calculate decision boundaries. + */ static constellation_rect::sptr make(std::vector<gr_complex> constell, std::vector<int> pre_diff_code, unsigned int rotational_symmetry, diff --git a/grc/blocks/variable_constellation.xml b/grc/blocks/variable_constellation.xml new file mode 100644 index 0000000000..7d23ede9be --- /dev/null +++ b/grc/blocks/variable_constellation.xml @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Options Block: +## options for window size, +## and flow graph building. +################################################### + --> +<block> + <name>Constellation Object</name> + <key>variable_constellation</key> + <category>Modulators</category> + <import>from gnuradio import digital</import> + <var_make>self.$(id) = $(id) = digital.constellation_calcdist($const_points, $sym_map, $rot_sym, $dims).base()</var_make> + <make></make> + <!--<callback></callback>--> + + <!-- Required to 'trick' GRC into using this as a proper variable--> + <param> + <name>Ignore Me</name> + <key>value</key> + <value>"ok"</value> + <type>raw</type> + <hide>all</hide> + </param> + + <param> + <name>Symbol Map</name> + <key>sym_map</key> + <value>[0, 1, 3, 2]</value> + <type>int_vector</type> + </param> + <param> + <name>Constellation Points</name> + <key>const_points</key> + <value>[-1-1j, -1+1j, 1+1j, 1-1j]</value> + <type>complex_vector</type> + </param> + <param> + <name>Rotational Symmetry</name> + <key>rot_sym</key> + <value>4</value> + <type>int</type> + </param> + <param> + <name>Dimensionality</name> + <key>dims</key> + <value>1</value> + <type>int</type> + </param> +</block> diff --git a/grc/blocks/variable_constellation_rect.xml b/grc/blocks/variable_constellation_rect.xml new file mode 100644 index 0000000000..5c136ee324 --- /dev/null +++ b/grc/blocks/variable_constellation_rect.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Options Block: +## options for window size, +## and flow graph building. +################################################### + --> +<block> + <name>Constellation Rect. Object</name> + <key>variable_constellation_rect</key> + <category>Modulators</category> + <import>from gnuradio import digital</import> + <var_make>self.$(id) = $(id) = digital.constellation_rect($const_points, $sym_map, $rot_sym, $real_sect, $imag_sect, $w_real_sect, $w_imag_sect).base()</var_make> + <make></make> + <!--<callback></callback>--> + + <!-- Required to 'trick' GRC into using this as a proper variable--> + <param> + <name>Ignore Me</name> + <key>value</key> + <value>"ok"</value> + <type>raw</type> + <hide>all</hide> + </param> + + <param> + <name>Symbol Map</name> + <key>sym_map</key> + <value>[0, 1, 3, 2]</value> + <type>int_vector</type> + </param> + <param> + <name>Constellation Points</name> + <key>const_points</key> + <value>[-1-1j, -1+1j, 1+1j, 1-1j]</value> + <type>complex_vector</type> + </param> + <param> + <name>Rotational Symmetry</name> + <key>rot_sym</key> + <value>4</value> + <type>int</type> + </param> + <param> + <name>Real Sectors</name> + <key>real_sect</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Imaginary Sectors</name> + <key>imag_sect</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Width Real Sectors</name> + <key>w_real_sect</key> + <value>1</value> + <type>int</type> + </param> + <param> + <name>Width Imaginary Sectors</name> + <key>w_imag_sect</key> + <value>1</value> + <type>int</type> + </param> +</block> |