summaryrefslogtreecommitdiff
path: root/gr-digital/examples
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/examples')
-rw-r--r--gr-digital/examples/CMakeLists.txt1
-rwxr-xr-xgr-digital/examples/berawgn.py37
-rw-r--r--gr-digital/examples/demod/ber_simulation.grc212
-rw-r--r--gr-digital/examples/demod/digital_freq_lock.grc604
-rw-r--r--gr-digital/examples/demod/gfsk_loopback.grc506
-rw-r--r--gr-digital/examples/demod/gmsk_loopback.grc574
-rw-r--r--gr-digital/examples/demod/mpsk_demod.grc368
-rw-r--r--gr-digital/examples/demod/pam_sync.grc950
-rw-r--r--gr-digital/examples/demod/pam_timing.grc696
-rwxr-xr-xgr-digital/examples/example_costas.py28
-rwxr-xr-xgr-digital/examples/example_fll.py28
-rwxr-xr-xgr-digital/examples/example_timing.py39
-rwxr-xr-xgr-digital/examples/gen_whitener.py20
-rwxr-xr-xgr-digital/examples/narrowband/benchmark_add_channel.py6
-rwxr-xr-xgr-digital/examples/narrowband/digital_bert_rx.py14
-rwxr-xr-xgr-digital/examples/narrowband/digital_bert_tx.py7
-rw-r--r--gr-digital/examples/narrowband/receive_path.py18
-rw-r--r--gr-digital/examples/narrowband/transmit_path.py4
-rwxr-xr-xgr-digital/examples/narrowband/tunnel.py5
-rwxr-xr-xgr-digital/examples/narrowband/tx_voice.py5
-rwxr-xr-xgr-digital/examples/ofdm/benchmark_add_channel.py4
-rwxr-xr-xgr-digital/examples/ofdm/benchmark_rx.py2
-rwxr-xr-xgr-digital/examples/ofdm/ofdm_mod_demod_test.py179
-rw-r--r--gr-digital/examples/ofdm/receive_path.py4
-rw-r--r--gr-digital/examples/ofdm/transmit_path.py4
-rwxr-xr-xgr-digital/examples/ofdm/tunnel.py5
-rwxr-xr-xgr-digital/examples/snr_estimators.py24
27 files changed, 2433 insertions, 1911 deletions
diff --git a/gr-digital/examples/CMakeLists.txt b/gr-digital/examples/CMakeLists.txt
index 63e1eba4e4..64c4641aa5 100644
--- a/gr-digital/examples/CMakeLists.txt
+++ b/gr-digital/examples/CMakeLists.txt
@@ -53,7 +53,6 @@ GR_PYTHON_INSTALL(PROGRAMS
ofdm/benchmark_rx.py
ofdm/benchmark_tx.py
ofdm/gr_plot_ofdm.py
- ofdm/ofdm_mod_demod_test.py
ofdm/receive_path.py
ofdm/transmit_path.py
ofdm/tunnel.py
diff --git a/gr-digital/examples/berawgn.py b/gr-digital/examples/berawgn.py
index d58dfbaaeb..2d95a1345f 100755
--- a/gr-digital/examples/berawgn.py
+++ b/gr-digital/examples/berawgn.py
@@ -1,4 +1,25 @@
#!/usr/bin/env python
+#
+# Copyright 2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
"""
BER simulation for QPSK signals, compare to theoretical values.
Change the N_BITS value to simulate more bits per Eb/N0 value,
@@ -14,10 +35,20 @@ magnitude below what you chose for N_BITS.
import math
import numpy
-from scipy.special import erfc
-import pylab
from gnuradio import gr, digital
+try:
+ from scipy.special import erfc
+except ImportError:
+ print "Error: could not import scipy (http://www.scipy.org/)"
+ sys.exit(1)
+
+try:
+ import pylab
+except ImportError:
+ print "Error: could not import pylab (http://matplotlib.sourceforge.net/)"
+ sys.exit(1)
+
# Best to choose powers of 10
N_BITS = 1e7
RAND_SEED = 42
@@ -59,7 +90,7 @@ class BERAWGNSimu(gr.top_block):
# Source is N_BITS bits, non-repeated
data = map(int, numpy.random.randint(0, self.const.arity(), N_BITS/self.const.bits_per_symbol()))
src = gr.vector_source_b(data, False)
- mod = gr.chunks_to_symbols_bc((self.const.points()), 1)
+ mod = digital.chunks_to_symbols_bc((self.const.points()), 1)
add = gr.add_vcc()
noise = gr.noise_source_c(gr.GR_GAUSSIAN,
self.EbN0_to_noise_voltage(EbN0),
diff --git a/gr-digital/examples/demod/ber_simulation.grc b/gr-digital/examples/demod/ber_simulation.grc
index b7c6a624b6..f41b9cf79b 100644
--- a/gr-digital/examples/demod/ber_simulation.grc
+++ b/gr-digital/examples/demod/ber_simulation.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 5 15:57:06 2012</timestamp>
+ <timestamp>Mon Jul 16 21:09:12 2012</timestamp>
<block>
<key>options</key>
<param>
@@ -92,60 +92,6 @@
</param>
</block>
<block>
- <key>gr_add_xx</key>
- <param>
- <key>id</key>
- <value>gr_add_xx</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(486, 151)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>digital_constellation_decoder_cb</key>
- <param>
- <key>id</key>
- <value>digital_constellation_decoder_cb_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>constellation</key>
- <value>const.base()</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(618, 164)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>wxgui_numbersink2</key>
<param>
<key>id</key>
@@ -443,45 +389,6 @@
</param>
</block>
<block>
- <key>gr_chunks_to_symbols_xx</key>
- <param>
- <key>id</key>
- <value>gr_chunks_to_symbols_xx</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>in_type</key>
- <value>byte</value>
- </param>
- <param>
- <key>out_type</key>
- <value>complex</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>const.points()</value>
- </param>
- <param>
- <key>dimension</key>
- <value>1</value>
- </param>
- <param>
- <key>num_ports</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(240, 140)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>variable_slider</key>
<param>
<key>id</key>
@@ -575,6 +482,99 @@
<value>0</value>
</param>
</block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
+ <param>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>symbol_table</key>
+ <value>const.points()</value>
+ </param>
+ <param>
+ <key>dimension</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>num_ports</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(284, 70)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_add_xx</key>
+ <param>
+ <key>id</key>
+ <value>gr_add_xx</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(469, 210)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_constellation_decoder_cb</key>
+ <param>
+ <key>id</key>
+ <value>digital_constellation_decoder_cb_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>constellation</key>
+ <value>const.base()</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(622, 164)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<connection>
<source_block_id>blks2_error_rate</source_block_id>
<sink_block_id>wxgui_numbersink2</sink_block_id>
@@ -588,12 +588,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_chunks_to_symbols_xx</source_block_id>
- <sink_block_id>gr_add_xx</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>gr_noise_source_x</source_block_id>
<sink_block_id>gr_add_xx</sink_block_id>
<source_key>0</source_key>
@@ -606,12 +600,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>gr_chunks_to_symbols_xx</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>gr_add_xx</source_block_id>
<sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
@@ -629,4 +617,16 @@
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
+ <connection>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>gr_add_xx</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
</flow_graph>
diff --git a/gr-digital/examples/demod/digital_freq_lock.grc b/gr-digital/examples/demod/digital_freq_lock.grc
index df105dd7f5..17d3296ddb 100644
--- a/gr-digital/examples/demod/digital_freq_lock.grc
+++ b/gr-digital/examples/demod/digital_freq_lock.grc
@@ -1,98 +1,23 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 5 18:11:22 2012</timestamp>
+ <timestamp>Mon Jul 16 21:25:18 2012</timestamp>
<block>
- <key>options</key>
- <param>
- <key>id</key>
- <value>top_block</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>title</key>
- <value></value>
- </param>
- <param>
- <key>author</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>window_size</key>
- <value>1280, 1024</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>wx_gui</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(-1, 0)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>random_source_x</value>
+ <value>sps</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>256</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>10000000</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
+ <key>value</key>
+ <value>4</value>
</param>
<param>
<key>_coordinate</key>
- <value>(-2, 111)</value>
+ <value>(166, -2)</value>
</param>
<param>
<key>_rotation</key>
@@ -100,30 +25,22 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>gr_throttle_0</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>0.35</value>
</param>
<param>
<key>_coordinate</key>
- <value>(456, 134)</value>
+ <value>(231, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -134,7 +51,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>sps</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -142,11 +59,11 @@
</param>
<param>
<key>value</key>
- <value>4</value>
+ <value>32000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(166, -2)</value>
+ <value>(439, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -154,61 +71,54 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>rolloff</value>
+ <value>noise_amp</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>0.35</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(231, 0)</value>
+ <key>label</key>
+ <value>Channel Noise</value>
</param>
<param>
- <key>_rotation</key>
+ <key>value</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_fll_band_edge_cc</key>
<param>
- <key>id</key>
- <value>digital_fll_band_edge_cc_0</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>max</key>
+ <value>1.0</value>
</param>
<param>
- <key>type</key>
- <value>cc</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>samps_per_sym</key>
- <value>sps</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>rolloff</key>
- <value>rolloff</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>filter_size</key>
- <value>44</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>w</key>
- <value>freq_bw</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(81, 248)</value>
+ <value>(553, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -219,7 +129,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>freq_bw</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
@@ -227,7 +137,7 @@
</param>
<param>
<key>label</key>
- <value>FLL Loop Bandwidth</value>
+ <value>Frequency Offset</value>
</param>
<param>
<key>value</key>
@@ -235,11 +145,11 @@
</param>
<param>
<key>min</key>
- <value>0</value>
+ <value>-0.5</value>
</param>
<param>
<key>max</key>
- <value>0.1</value>
+ <value>0.5</value>
</param>
<param>
<key>num_steps</key>
@@ -263,7 +173,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(80, 382)</value>
+ <value>(673, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -271,22 +181,46 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>digital_psk_mod</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>digital_psk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>32000</value>
+ <key>constellation_points</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>mod_code</key>
+ <value>"gray"</value>
+ </param>
+ <param>
+ <key>differential</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, -1)</value>
+ <value>(194, 104)</value>
</param>
<param>
<key>_rotation</key>
@@ -294,42 +228,74 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>noise_amp</value>
+ <value>wxgui_fftsink2_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Channel Noise</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>title</key>
+ <value>Frequency Corrected Signal</value>
</param>
<param>
- <key>min</key>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>baseband_freq</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>1.0</value>
+ <key>y_per_div</key>
+ <value>10</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>y_divs</key>
+ <value>10</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>ref_level</key>
+ <value>10</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>ref_scale</key>
+ <value>2.0</value>
+ </param>
+ <param>
+ <key>fft_size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>fft_rate</key>
+ <value>30</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>win</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
<key>grid_pos</key>
@@ -337,11 +303,15 @@
</param>
<param>
<key>notebook</key>
- <value></value>
+ <value>notebook_0,0</value>
+ </param>
+ <param>
+ <key>freqvar</key>
+ <value>None</value>
</param>
<param>
<key>_coordinate</key>
- <value>(553, 0)</value>
+ <value>(439, 423)</value>
</param>
<param>
<key>_rotation</key>
@@ -349,54 +319,38 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>random_source_x</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frequency Offset</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
<key>min</key>
- <value>-0.5</value>
+ <value>0</value>
</param>
<param>
<key>max</key>
- <value>0.5</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
+ <value>256</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>num_samps</key>
+ <value>10000000</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(673, -1)</value>
+ <value>(0, 112)</value>
</param>
<param>
<key>_rotation</key>
@@ -404,38 +358,30 @@
</param>
</block>
<block>
- <key>gr_channel_model</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>gr_channel_model_0</value>
+ <value>gr_throttle_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
- </param>
- <param>
- <key>freq_offset</key>
- <value>freq_offset</value>
- </param>
- <param>
- <key>epsilon</key>
- <value>1.0</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>taps</key>
- <value>1.0</value>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>seed</key>
- <value>42</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(649, 104)</value>
+ <value>(489, 179)</value>
</param>
<param>
<key>_rotation</key>
@@ -510,7 +456,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(875, 0)</value>
+ <value>(990, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -601,7 +547,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(875, 108)</value>
+ <value>(990, 147)</value>
</param>
<param>
<key>_rotation</key>
@@ -609,46 +555,38 @@
</param>
</block>
<block>
- <key>digital_psk_mod</key>
+ <key>channel_model</key>
<param>
<key>id</key>
- <value>digital_psk_mod_0</value>
+ <value>channel_model_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>constellation_points</key>
- <value>2</value>
- </param>
- <param>
- <key>mod_code</key>
- <value>"gray"</value>
- </param>
- <param>
- <key>differential</key>
- <value>False</value>
+ <key>noise_voltage</key>
+ <value>noise_amp</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>sps</value>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
</param>
<param>
- <key>excess_bw</key>
- <value>0.35</value>
+ <key>epsilon</key>
+ <value>1.0</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>taps</key>
+ <value>1.0</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>seed</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(194, 104)</value>
+ <value>(743, 147)</value>
</param>
<param>
<key>_rotation</key>
@@ -656,54 +594,77 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>notebook</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0</value>
+ <value>notebook_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>style</key>
+ <value>wx.NB_TOP</value>
</param>
<param>
- <key>title</key>
- <value>Frequency Corrected Signal</value>
+ <key>labels</key>
+ <value>['Freq', 'Time']</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>v_scale</key>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(76, 579)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_slider</key>
<param>
- <key>v_offset</key>
+ <key>id</key>
+ <value>freq_bw</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>FLL Loop Bandwidth</value>
+ </param>
+ <param>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>min</key>
<value>0</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>max</key>
+ <value>0.1</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
@@ -711,19 +672,11 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
- </param>
- <param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
- </param>
- <param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 289)</value>
+ <value>(77, 449)</value>
</param>
<param>
<key>_rotation</key>
@@ -731,10 +684,10 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>digital_fll_band_edge_cc</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0_0</value>
+ <value>digital_fll_band_edge_cc_0</value>
</param>
<param>
<key>_enabled</key>
@@ -742,59 +695,78 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>cc</value>
</param>
<param>
- <key>title</key>
- <value>Frequency Corrected Signal</value>
+ <key>samps_per_sym</key>
+ <value>sps</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>rolloff</key>
+ <value>rolloff</value>
</param>
<param>
- <key>baseband_freq</key>
+ <key>filter_size</key>
+ <value>44</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>freq_bw</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(78, 308)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>wxgui_scopesink2</key>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>id</key>
+ <value>wxgui_scopesink2_0_0</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>ref_level</key>
- <value>10</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>title</key>
+ <value>Frequency Corrected Signal</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>v_scale</key>
+ <value>0</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>average</key>
+ <key>t_scale</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ac_couple</key>
<value>False</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>xy_mode</key>
+ <value>False</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
<key>win_size</key>
@@ -806,15 +778,19 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
+ <value>notebook_0,1</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 423)</value>
+ <value>(439, 306)</value>
</param>
<param>
<key>_rotation</key>
@@ -822,34 +798,58 @@
</param>
</block>
<block>
- <key>notebook</key>
+ <key>options</key>
<param>
<key>id</key>
- <value>notebook_0</value>
+ <value>freq_lock</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.NB_TOP</value>
+ <key>title</key>
+ <value></value>
</param>
<param>
- <key>labels</key>
- <value>['Freq', 'Time']</value>
+ <key>author</key>
+ <value></value>
</param>
<param>
- <key>grid_pos</key>
+ <key>description</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>window_size</key>
+ <value>1280, 1024</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>wx_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(114, 521)</value>
+ <value>(-1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -857,50 +857,50 @@
</param>
</block>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_psk_mod_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <source_block_id>digital_psk_mod_0</source_block_id>
+ <sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>digital_psk_mod_0</sink_block_id>
+ <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_psk_mod_0</source_block_id>
- <sink_block_id>gr_throttle_0</sink_block_id>
+ <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>gr_channel_model_0</sink_block_id>
+ <sink_block_id>channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/gfsk_loopback.grc b/gr-digital/examples/demod/gfsk_loopback.grc
index f74a835266..364314aa9a 100644
--- a/gr-digital/examples/demod/gfsk_loopback.grc
+++ b/gr-digital/examples/demod/gfsk_loopback.grc
@@ -1,55 +1,59 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Sun Jul 8 16:56:18 2012</timestamp>
+ <timestamp>Mon Aug 20 19:52:22 2012</timestamp>
<block>
- <key>variable_slider</key>
+ <key>options</key>
<param>
<key>id</key>
- <value>freq</value>
+ <value>gfsk_loopback</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frequency (Hz)</value>
+ <key>title</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>500</value>
+ <key>author</key>
+ <value></value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>description</key>
+ <value></value>
</param>
<param>
- <key>max</key>
- <value>samp_rate/2</value>
+ <key>window_size</key>
+ <value>1280, 1024</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>generate_options</key>
+ <value>qt_gui</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>category</key>
+ <value>Custom</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>run_options</key>
+ <value>prompt</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
</param>
<param>
- <key>notebook</key>
+ <key>realtime_scheduling</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(34, 241)</value>
+ <value>(10, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -57,10 +61,10 @@
</param>
</block>
<block>
- <key>gr_sig_source_x</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>gr_sig_source_x_0</value>
+ <value>gr_throttle_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -71,28 +75,39 @@
<value>float</value>
</param>
<param>
- <key>samp_rate</key>
+ <key>samples_per_second</key>
<value>samp_rate</value>
</param>
<param>
- <key>waveform</key>
- <value>gr.GR_COS_WAVE</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>freq</key>
- <value>freq</value>
+ <key>_coordinate</key>
+ <value>(413, 50)</value>
</param>
<param>
- <key>amp</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fm_sensitivity</value>
</param>
<param>
- <key>offset</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1.0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(215, 26)</value>
+ <value>(14, 273)</value>
</param>
<param>
<key>_rotation</key>
@@ -100,30 +115,22 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>gr_throttle_0_0</value>
+ <value>sps</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>4</value>
</param>
<param>
<key>_coordinate</key>
- <value>(272.5, 142.0)</value>
+ <value>(15, 338)</value>
</param>
<param>
<key>_rotation</key>
@@ -131,10 +138,10 @@
</param>
</block>
<block>
- <key>blks2_packet_encoder</key>
+ <key>gr_sig_source_x</key>
<param>
<key>id</key>
- <value>blks2_packet_encoder_0</value>
+ <value>gr_sig_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -145,28 +152,28 @@
<value>float</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>2</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>bits_per_symbol</key>
- <value>1</value>
+ <key>waveform</key>
+ <value>gr.GR_COS_WAVE</value>
</param>
<param>
- <key>access_code</key>
- <value></value>
+ <key>freq</key>
+ <value>freq</value>
</param>
<param>
- <key>pad_for_usrp</key>
- <value>True</value>
+ <key>amp</key>
+ <value>1</value>
</param>
<param>
- <key>payload_length</key>
+ <key>offset</key>
<value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(261, 227)</value>
+ <value>(215, 18)</value>
</param>
<param>
<key>_rotation</key>
@@ -185,11 +192,11 @@
</param>
<param>
<key>value</key>
- <value>10000</value>
+ <value>32000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(10, 170)</value>
+ <value>(12, 76)</value>
</param>
<param>
<key>_rotation</key>
@@ -197,50 +204,54 @@
</param>
</block>
<block>
- <key>digital_gfsk_demod</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>digital_gfsk_demod_0</value>
+ <value>freq</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>sps</value>
+ <key>label</key>
+ <value></value>
</param>
<param>
- <key>sensitivity</key>
- <value>fm_sensitivity</value>
+ <key>value</key>
+ <value>500</value>
</param>
<param>
- <key>gain_mu</key>
- <value>0.175</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>mu</key>
- <value>0.5</value>
+ <key>stop</key>
+ <value>500</value>
</param>
<param>
- <key>omega_relative_limit</key>
- <value>0.005</value>
+ <key>step</key>
+ <value>1</value>
</param>
<param>
- <key>freq_error</key>
- <value>0.0</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(669, 257)</value>
+ <value>(13, 152)</value>
</param>
<param>
<key>_rotation</key>
@@ -248,22 +259,42 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>sps</value>
+ <value>qtgui_time_sink_x_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>8</value>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(47, 445)</value>
+ <value>(906, 122)</value>
</param>
<param>
<key>_rotation</key>
@@ -271,38 +302,42 @@
</param>
</block>
<block>
- <key>digital_gfsk_mod</key>
+ <key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>digital_gfsk_mod_0</value>
+ <value>qtgui_time_sink_x_1_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>sps</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>sensitivity</key>
- <value>fm_sensitivity</value>
+ <key>name</key>
+ <value>QT GUI Plot</value>
</param>
<param>
- <key>bt</key>
- <value>0.35</value>
+ <key>size</key>
+ <value>1024</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>bw</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(456, 277)</value>
+ <value>(888, 386)</value>
</param>
<param>
<key>_rotation</key>
@@ -310,22 +345,38 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>digital_gfsk_mod</key>
<param>
<key>id</key>
- <value>fm_sensitivity</value>
+ <value>digital_gfsk_mod_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
- <key>value</key>
- <value>1.0</value>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>sensitivity</key>
+ <value>fm_sensitivity</value>
+ </param>
+ <param>
+ <key>bt</key>
+ <value>0.35</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(40, 366)</value>
+ <value>(456, 277)</value>
</param>
<param>
<key>_rotation</key>
@@ -333,53 +384,50 @@
</param>
</block>
<block>
- <key>blks2_packet_decoder</key>
+ <key>digital_gfsk_demod</key>
<param>
<key>id</key>
- <value>blks2_packet_decoder_0</value>
+ <value>digital_gfsk_demod_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
</param>
<param>
- <key>access_code</key>
- <value></value>
+ <key>sensitivity</key>
+ <value>fm_sensitivity</value>
</param>
<param>
- <key>threshold</key>
- <value>-1</value>
+ <key>gain_mu</key>
+ <value>0.175</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(705, 130)</value>
+ <key>mu</key>
+ <value>0.5</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>omega_relative_limit</key>
+ <value>0.005</value>
</param>
- </block>
- <block>
- <key>gr_quadrature_demod_cf</key>
<param>
- <key>id</key>
- <value>gr_quadrature_demod_cf_0</value>
+ <key>freq_error</key>
+ <value>0.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>verbose</key>
+ <value>False</value>
</param>
<param>
- <key>gain</key>
- <value>1</value>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(627, 417)</value>
+ <value>(670, 253)</value>
</param>
<param>
<key>_rotation</key>
@@ -387,58 +435,42 @@
</param>
</block>
<block>
- <key>options</key>
+ <key>blks2_packet_encoder</key>
<param>
<key>id</key>
- <value>gfsk_loopback</value>
+ <value>blks2_packet_encoder_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value></value>
- </param>
- <param>
- <key>author</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>window_size</key>
- <value>1280, 1024</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>generate_options</key>
- <value>wx_gui</value>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
</param>
<param>
- <key>category</key>
- <value>Custom</value>
+ <key>bits_per_symbol</key>
+ <value>1</value>
</param>
<param>
- <key>run_options</key>
- <value>prompt</value>
+ <key>access_code</key>
+ <value></value>
</param>
<param>
- <key>run</key>
+ <key>pad_for_usrp</key>
<value>True</value>
</param>
<param>
- <key>max_nouts</key>
+ <key>payload_length</key>
<value>0</value>
</param>
<param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(237, 261)</value>
</param>
<param>
<key>_rotation</key>
@@ -446,74 +478,57 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>digital_gmsk_mod</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>digital_gmsk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>title</key>
- <value>Scope Plot</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>0</value>
- </param>
- <param>
- <key>v_offset</key>
- <value>0</value>
+ <key>samples_per_symbol</key>
+ <value>2</value>
</param>
<param>
- <key>t_scale</key>
- <value>1./freq</value>
+ <key>bt</key>
+ <value>0.35</value>
</param>
<param>
- <key>ac_couple</key>
+ <key>verbose</key>
<value>False</value>
</param>
<param>
- <key>xy_mode</key>
+ <key>log</key>
<value>False</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
- </param>
- <param>
- <key>win_size</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(342, 457)</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>gr_quadrature_demod_cf</key>
<param>
- <key>notebook</key>
- <value></value>
+ <key>id</key>
+ <value>gr_quadrature_demod_cf_0</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>gain</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(907, 59)</value>
+ <value>(679, 402)</value>
</param>
<param>
<key>_rotation</key>
@@ -521,10 +536,10 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>blks2_packet_decoder</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_1</value>
+ <value>blks2_packet_decoder_0</value>
</param>
<param>
<key>_enabled</key>
@@ -535,60 +550,63 @@
<value>float</value>
</param>
<param>
- <key>title</key>
- <value>Scope Plot</value>
+ <key>access_code</key>
+ <value></value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>threshold</key>
+ <value>-1</value>
</param>
<param>
- <key>v_scale</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(720, 130)</value>
</param>
<param>
- <key>v_offset</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_gmsk_demod</key>
<param>
- <key>t_scale</key>
- <value>0</value>
+ <key>id</key>
+ <value>digital_gmsk_demod_0</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>samples_per_symbol</key>
+ <value>2</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>gain_mu</key>
+ <value>0.175</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>mu</key>
+ <value>0.5</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>omega_relative_limit</key>
+ <value>0.005</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>freq_error</key>
+ <value>0.0</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>verbose</key>
+ <value>False</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(853, 400)</value>
+ <value>(622, 498)</value>
</param>
<param>
<key>_rotation</key>
@@ -596,14 +614,14 @@
</param>
</block>
<connection>
- <source_block_id>digital_gfsk_mod_0</source_block_id>
- <sink_block_id>digital_gfsk_demod_0</sink_block_id>
+ <source_block_id>gr_sig_source_x_0</source_block_id>
+ <sink_block_id>gr_throttle_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_sig_source_x_0</source_block_id>
- <sink_block_id>gr_throttle_0_0</sink_block_id>
+ <source_block_id>blks2_packet_encoder_0</source_block_id>
+ <sink_block_id>digital_gfsk_mod_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -614,8 +632,8 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_packet_encoder_0</source_block_id>
- <sink_block_id>digital_gfsk_mod_0</sink_block_id>
+ <source_block_id>digital_gfsk_mod_0</source_block_id>
+ <sink_block_id>gr_quadrature_demod_cf_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -626,20 +644,44 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>digital_gfsk_mod_0</source_block_id>
+ <sink_block_id>digital_gfsk_demod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
<source_block_id>blks2_packet_decoder_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_gfsk_mod_0</source_block_id>
+ <source_block_id>gr_quadrature_demod_cf_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_packet_encoder_0</source_block_id>
+ <sink_block_id>digital_gmsk_mod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_gmsk_mod_0</source_block_id>
+ <sink_block_id>digital_gmsk_demod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_gmsk_mod_0</source_block_id>
<sink_block_id>gr_quadrature_demod_cf_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_quadrature_demod_cf_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_1</sink_block_id>
+ <source_block_id>digital_gmsk_demod_0</source_block_id>
+ <sink_block_id>blks2_packet_decoder_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/gmsk_loopback.grc b/gr-digital/examples/demod/gmsk_loopback.grc
new file mode 100644
index 0000000000..84912ac58b
--- /dev/null
+++ b/gr-digital/examples/demod/gmsk_loopback.grc
@@ -0,0 +1,574 @@
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+ <timestamp>Mon Aug 20 19:53:13 2012</timestamp>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>gfsk_loopback</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value></value>
+ </param>
+ <param>
+ <key>author</key>
+ <value></value>
+ </param>
+ <param>
+ <key>description</key>
+ <value></value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>1280, 1024</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>qt_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(10, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_throttle</key>
+ <param>
+ <key>id</key>
+ <value>gr_throttle_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(413, 50)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fm_sensitivity</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(14, 273)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(15, 338)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_sig_source_x</key>
+ <param>
+ <key>id</key>
+ <value>gr_sig_source_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>waveform</key>
+ <value>gr.GR_COS_WAVE</value>
+ </param>
+ <param>
+ <key>freq</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>amp</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>offset</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(215, 18)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>32000</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(12, 76)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>500</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>500</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(13, 152)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(906, 122)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(888, 386)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_packet_encoder</key>
+ <param>
+ <key>id</key>
+ <value>blks2_packet_encoder_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>bits_per_symbol</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>access_code</key>
+ <value></value>
+ </param>
+ <param>
+ <key>pad_for_usrp</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>payload_length</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(237, 261)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_quadrature_demod_cf</key>
+ <param>
+ <key>id</key>
+ <value>gr_quadrature_demod_cf_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gain</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(679, 402)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_packet_decoder</key>
+ <param>
+ <key>id</key>
+ <value>blks2_packet_decoder_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>access_code</key>
+ <value></value>
+ </param>
+ <param>
+ <key>threshold</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(720, 130)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_gmsk_mod</key>
+ <param>
+ <key>id</key>
+ <value>digital_gmsk_mod_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>bt</key>
+ <value>0.35</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(446, 285)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_gmsk_demod</key>
+ <param>
+ <key>id</key>
+ <value>digital_gmsk_demod_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>gain_mu</key>
+ <value>0.175</value>
+ </param>
+ <param>
+ <key>mu</key>
+ <value>0.5</value>
+ </param>
+ <param>
+ <key>omega_relative_limit</key>
+ <value>0.005</value>
+ </param>
+ <param>
+ <key>freq_error</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(666, 261)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <connection>
+ <source_block_id>gr_sig_source_x_0</source_block_id>
+ <sink_block_id>gr_throttle_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_throttle_0_0</source_block_id>
+ <sink_block_id>blks2_packet_encoder_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_packet_decoder_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_quadrature_demod_cf_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_packet_encoder_0</source_block_id>
+ <sink_block_id>digital_gmsk_mod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_gmsk_mod_0</source_block_id>
+ <sink_block_id>digital_gmsk_demod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_gmsk_mod_0</source_block_id>
+ <sink_block_id>gr_quadrature_demod_cf_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_gmsk_demod_0</source_block_id>
+ <sink_block_id>blks2_packet_decoder_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+</flow_graph>
diff --git a/gr-digital/examples/demod/mpsk_demod.grc b/gr-digital/examples/demod/mpsk_demod.grc
index b718fb68af..61391de545 100644
--- a/gr-digital/examples/demod/mpsk_demod.grc
+++ b/gr-digital/examples/demod/mpsk_demod.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 5 16:28:45 2012</timestamp>
+ <timestamp>Mon Aug 20 19:51:38 2012</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -84,45 +84,18 @@
</param>
</block>
<block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>samps_per_sym</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>4</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(7, 89)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
+ <key>random_source_x</key>
<param>
<key>id</key>
- <value>noise</value>
+ <value>random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Noise</value>
- </param>
- <param>
- <key>value</key>
- <value>.1</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
<key>min</key>
@@ -130,31 +103,19 @@
</param>
<param>
<key>max</key>
- <value>1</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
+ <value>2**8</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>num_samps</key>
+ <value>10000</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(259, 353)</value>
+ <value>(161, 119)</value>
</param>
<param>
<key>_rotation</key>
@@ -162,54 +123,42 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>digital_dxpsk_mod</key>
<param>
<key>id</key>
- <value>freq_off</value>
+ <value>digital_dxpsk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Freq Offset</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>-.5</value>
- </param>
- <param>
- <key>max</key>
- <value>.5</value>
+ <key>type</key>
+ <value>dqpsk</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>samples_per_symbol</key>
+ <value>samps_per_sym</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>excess_bw</key>
+ <value>0.35</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>mod_code</key>
+ <value>"gray"</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>verbose</key>
+ <value>False</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(126, 345)</value>
+ <value>(361, 119)</value>
</param>
<param>
<key>_rotation</key>
@@ -217,34 +166,22 @@
</param>
</block>
<block>
- <key>notebook</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>notebook</value>
+ <value>samps_per_sym</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.NB_TOP</value>
- </param>
- <param>
- <key>labels</key>
- <value>['Constellation', 'Spectrum']</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
+ <key>value</key>
+ <value>4</value>
</param>
<param>
<key>_coordinate</key>
- <value>(520, 407)</value>
+ <value>(12, 99)</value>
</param>
<param>
<key>_rotation</key>
@@ -252,78 +189,54 @@
</param>
</block>
<block>
- <key>wxgui_constellationsink2</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>wxgui_constellationsink2_0</value>
+ <value>freq_off</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value>Constellation Plot</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>frame_rate</key>
- <value>5</value>
- </param>
- <param>
- <key>const_size</key>
- <value>2048</value>
- </param>
- <param>
- <key>M</key>
- <value>4</value>
+ <key>label</key>
+ <value>Freq. Offset</value>
</param>
<param>
- <key>theta</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>loop_bw</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>fmax</key>
- <value>0.06</value>
+ <key>start</key>
+ <value>-0.5</value>
</param>
<param>
- <key>mu</key>
+ <key>stop</key>
<value>0.5</value>
</param>
<param>
- <key>gain_mu</key>
- <value>0.005</value>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>symbol_rate</key>
- <value>samp_rate/4.</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>omega_limit</key>
- <value>0.005</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
- <value>notebook, 0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(824, 212)</value>
+ <value>(17, 260)</value>
</param>
<param>
<key>_rotation</key>
@@ -331,90 +244,101 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>noise</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value>Noise</value>
</param>
<param>
- <key>title</key>
- <value>FFT Plot</value>
+ <key>value</key>
+ <value>0.1</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>0</value>
+ <key>stop</key>
+ <value>1</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>ref_level</key>
- <value>50</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>_coordinate</key>
+ <value>(146, 262)</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>qtgui_tab_widget</key>
<param>
- <key>average</key>
- <value>False</value>
+ <key>id</key>
+ <value>notebook</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>num_tabs</key>
+ <value>2</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>label0</key>
+ <value>Constellation</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>label1</key>
+ <value>Spectrum</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value>Tab 2</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value>Tab 3</value>
</param>
<param>
- <key>notebook</key>
- <value>notebook, 1</value>
+ <key>label4</key>
+ <value>Tab 4</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(847, 10)</value>
+ <value>(21, 394)</value>
</param>
<param>
<key>_rotation</key>
@@ -422,10 +346,10 @@
</param>
</block>
<block>
- <key>gr_channel_model</key>
+ <key>channel_model</key>
<param>
<key>id</key>
- <value>gr_channel_model_0</value>
+ <value>channel_model_0</value>
</param>
<param>
<key>_enabled</key>
@@ -449,11 +373,11 @@
</param>
<param>
<key>seed</key>
- <value>42</value>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(487, 282)</value>
+ <value>(369, 264)</value>
</param>
<param>
<key>_rotation</key>
@@ -484,7 +408,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(633, 82)</value>
+ <value>(597, 142)</value>
</param>
<param>
<key>_rotation</key>
@@ -492,10 +416,10 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>qtgui_const_sink_x</key>
<param>
<key>id</key>
- <value>random_source_x_0</value>
+ <value>qtgui_const_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -503,27 +427,27 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
+ <value>complex</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>name</key>
+ <value>QT GUI Plot</value>
</param>
<param>
- <key>max</key>
- <value>2**8</value>
+ <key>size</key>
+ <value>1024</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000</value>
+ <key>nconnections</key>
+ <value>1</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>gui_hint</key>
+ <value>notebook@0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(161, 119)</value>
+ <value>(810, 184)</value>
</param>
<param>
<key>_rotation</key>
@@ -531,10 +455,10 @@
</param>
</block>
<block>
- <key>digital_dxpsk_mod</key>
+ <key>qtgui_freq_sink_x</key>
<param>
<key>id</key>
- <value>digital_dxpsk_mod_0</value>
+ <value>qtgui_freq_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -542,31 +466,43 @@
</param>
<param>
<key>type</key>
- <value>dqpsk</value>
+ <value>complex</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>samps_per_sym</value>
+ <key>name</key>
+ <value>QT GUI Plot</value>
</param>
<param>
- <key>excess_bw</key>
- <value>0.35</value>
+ <key>fftsize</key>
+ <value>1024</value>
</param>
<param>
- <key>gray_coded</key>
- <value>True</value>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>fc</key>
+ <value>0</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>rate</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>notebook@1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(361, 119)</value>
+ <value>(810, 65)</value>
</param>
<param>
<key>_rotation</key>
@@ -574,32 +510,32 @@
</param>
</block>
<connection>
- <source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>wxgui_constellationsink2_0</sink_block_id>
+ <source_block_id>random_source_x_0</source_block_id>
+ <sink_block_id>digital_dxpsk_mod_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <source_block_id>digital_dxpsk_mod_0</source_block_id>
+ <sink_block_id>channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
+ <source_block_id>channel_model_0</source_block_id>
<sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_dxpsk_mod_0</source_block_id>
- <sink_block_id>gr_channel_model_0</sink_block_id>
+ <source_block_id>gr_throttle_0</source_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x_0</source_block_id>
- <sink_block_id>digital_dxpsk_mod_0</sink_block_id>
+ <source_block_id>gr_throttle_0</source_block_id>
+ <sink_block_id>qtgui_const_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/pam_sync.grc b/gr-digital/examples/demod/pam_sync.grc
index f870a0b067..9c73777585 100644
--- a/gr-digital/examples/demod/pam_sync.grc
+++ b/gr-digital/examples/demod/pam_sync.grc
@@ -1,59 +1,69 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 5 17:54:54 2012</timestamp>
+ <timestamp>Mon Jul 16 21:25:28 2012</timestamp>
<block>
- <key>options</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>top_block</value>
+ <value>const</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value></value>
+ <key>value</key>
+ <value>digital.qpsk_constellation()</value>
</param>
<param>
- <key>author</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(336, -2)</value>
</param>
<param>
- <key>description</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>window_size</key>
- <value>1280, 1024</value>
+ <key>id</key>
+ <value>rrctaps</value>
</param>
<param>
- <key>generate_options</key>
- <value>wx_gui</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>category</key>
- <value>Custom</value>
+ <key>value</key>
+ <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), rolloff, int(11*spb*nfilts))</value>
</param>
<param>
- <key>run_options</key>
- <value>prompt</value>
+ <key>_coordinate</key>
+ <value>(686, -1)</value>
</param>
<param>
- <key>run</key>
- <value>True</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>max_nouts</key>
- <value>0</value>
+ <key>id</key>
+ <value>rolloff</value>
</param>
<param>
- <key>realtime_scheduling</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.35</value>
</param>
<param>
<key>_coordinate</key>
- <value>(-1, 0)</value>
+ <value>(607, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -64,7 +74,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>const</value>
+ <value>spb</value>
</param>
<param>
<key>_enabled</key>
@@ -72,11 +82,11 @@
</param>
<param>
<key>value</key>
- <value>digital.qpsk_constellation()</value>
+ <value>4.0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(336, -2)</value>
+ <value>(542, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -87,7 +97,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rrctaps</value>
+ <value>sig_amp</value>
</param>
<param>
<key>_enabled</key>
@@ -95,11 +105,11 @@
</param>
<param>
<key>value</key>
- <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), rolloff, int(11*spb*nfilts))</value>
+ <value>1.0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(686, -1)</value>
+ <value>(861, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -110,7 +120,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rolloff</value>
+ <value>nfilts</value>
</param>
<param>
<key>_enabled</key>
@@ -118,11 +128,11 @@
</param>
<param>
<key>value</key>
- <value>0.35</value>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(607, -1)</value>
+ <value>(598, 186)</value>
</param>
<param>
<key>_rotation</key>
@@ -133,7 +143,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>spb</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -141,11 +151,11 @@
</param>
<param>
<key>value</key>
- <value>4.0</value>
+ <value>128000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(542, -1)</value>
+ <value>(193, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -153,22 +163,22 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>sig_amp</value>
+ <value>virtual_source_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>1.0</value>
+ <key>stream_id</key>
+ <value>input_signal_probe</value>
</param>
<param>
<key>_coordinate</key>
- <value>(861, 0)</value>
+ <value>(835, 562)</value>
</param>
<param>
<key>_rotation</key>
@@ -176,22 +186,38 @@
</param>
</block>
<block>
- <key>virtual_sink</key>
+ <key>random_source_x</key>
<param>
<key>id</key>
- <value>virtual_sink_0</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>input_signal_probe</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>const.arity()</value>
+ </param>
+ <param>
+ <key>num_samps</key>
+ <value>10000000</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(330, 183)</value>
+ <value>(0, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -199,10 +225,37 @@
</param>
</block>
<block>
- <key>gr_pfb_clock_sync_xxx</key>
+ <key>digital_costas_loop_cc</key>
<param>
<key>id</key>
- <value>gr_pfb_clock_sync_xxx_0</value>
+ <value>digital_costas_loop_cc_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>phase_bw</value>
+ </param>
+ <param>
+ <key>order</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(866, 246)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_pfb_clock_sync_xxx</key>
+ <param>
+ <key>id</key>
+ <value>digital_pfb_clock_sync_xxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -234,7 +287,7 @@
</param>
<param>
<key>init_phase</key>
- <value>16</value>
+ <value>nfilts/2</value>
</param>
<param>
<key>max_dev</key>
@@ -246,7 +299,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(598, 241)</value>
+ <value>(601, 254)</value>
</param>
<param>
<key>_rotation</key>
@@ -254,10 +307,10 @@
</param>
</block>
<block>
- <key>digital_fll_band_edge_cc</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>digital_fll_band_edge_cc_0</value>
+ <value>wxgui_scopesink2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -265,73 +318,63 @@
</param>
<param>
<key>type</key>
- <value>cc</value>
- </param>
- <param>
- <key>samps_per_sym</key>
- <value>spb</value>
+ <value>complex</value>
</param>
<param>
- <key>rolloff</key>
- <value>rolloff</value>
+ <key>title</key>
+ <value>Post-sync Signal</value>
</param>
<param>
- <key>filter_size</key>
- <value>44</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>w</key>
- <value>freq_bw</value>
+ <key>v_scale</key>
+ <value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(331, 239)</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
+ <key>t_scale</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>nfilts</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
+ <key>xy_mode</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>32</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(598, 186)</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>notebook</key>
+ <value>notebook_0,0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
</param>
<param>
- <key>value</key>
- <value>128000</value>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(193, -1)</value>
+ <value>(1094, 202)</value>
</param>
<param>
<key>_rotation</key>
@@ -339,18 +382,22 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>random_source_x</value>
+ <value>noise_amp</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>Channel Noise</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
<key>min</key>
@@ -358,19 +405,31 @@
</param>
<param>
<key>max</key>
- <value>const.arity()</value>
+ <value>1.0</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000000</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>(1,2,1,1)</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(0, 72)</value>
+ <value>(152, 373)</value>
</param>
<param>
<key>_rotation</key>
@@ -378,69 +437,89 @@
</param>
</block>
<block>
- <key>gr_chunks_to_symbols_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>gr_chunks_to_symbols_xx</value>
+ <value>interpratio</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>Timing Offset</value>
</param>
<param>
- <key>out_type</key>
- <value>complex</value>
+ <key>value</key>
+ <value>1.00</value>
</param>
<param>
- <key>symbol_table</key>
- <value>const.points()</value>
+ <key>min</key>
+ <value>0.99</value>
</param>
<param>
- <key>dimension</key>
- <value>1</value>
+ <key>max</key>
+ <value>1.01</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>num_steps</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>(3,2,1,1)</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(196, 87)</value>
+ <value>(11, 517)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>blks2_pfb_arb_resampler_ccf</key>
+ <key>notebook</key>
<param>
<key>id</key>
- <value>blks2_pfb_arb_resampler_ccf_0</value>
+ <value>notebook_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>rate</key>
- <value>spb</value>
+ <key>style</key>
+ <value>wx.NB_TOP</value>
</param>
<param>
- <key>taps</key>
- <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ <key>labels</key>
+ <value>['Synched Signal', 'Received Signal']</value>
</param>
<param>
- <key>size</key>
- <value>32</value>
+ <key>grid_pos</key>
+ <value>(1,1,8,1)</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(435, 80)</value>
+ <value>(9, 664)</value>
</param>
<param>
<key>_rotation</key>
@@ -448,38 +527,54 @@
</param>
</block>
<block>
- <key>gr_channel_model</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>gr_channel_model_0</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
+ <key>label</key>
+ <value>Frequency Offset</value>
</param>
<param>
- <key>freq_offset</key>
- <value>freq_offset</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>epsilon</key>
- <value>interpratio</value>
+ <key>min</key>
+ <value>-0.5</value>
</param>
<param>
- <key>taps</key>
- <value>1.0</value>
+ <key>max</key>
+ <value>0.5</value>
</param>
<param>
- <key>seed</key>
- <value>42</value>
+ <key>num_steps</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>(2,2,1,1)</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(46, 183)</value>
+ <value>(13, 372)</value>
</param>
<param>
<key>_rotation</key>
@@ -487,30 +582,22 @@
</param>
</block>
<block>
- <key>gr_multiply_const_vxx</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>gr_multiply_const_vxx_0</value>
+ <value>virtual_sink_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>const</key>
- <value>sig_amp</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>stream_id</key>
+ <value>input_signal_probe</value>
</param>
<param>
<key>_coordinate</key>
- <value>(659, 95)</value>
+ <value>(330, 183)</value>
</param>
<param>
<key>_rotation</key>
@@ -518,10 +605,10 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>digital_fll_band_edge_cc</key>
<param>
<key>id</key>
- <value>gr_throttle_0</value>
+ <value>digital_fll_band_edge_cc_0</value>
</param>
<param>
<key>_enabled</key>
@@ -529,19 +616,27 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>cc</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
+ <key>samps_per_sym</key>
+ <value>spb</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>rolloff</key>
+ <value>rolloff</value>
+ </param>
+ <param>
+ <key>filter_size</key>
+ <value>44</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>freq_bw</value>
</param>
<param>
<key>_coordinate</key>
- <value>(857, 95)</value>
+ <value>(331, 239)</value>
</param>
<param>
<key>_rotation</key>
@@ -549,49 +644,38 @@
</param>
</block>
<block>
- <key>virtual_source</key>
+ <key>channel_model</key>
<param>
<key>id</key>
- <value>virtual_source_0</value>
+ <value>channel_model_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>input_signal_probe</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(835, 562)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
+ <key>noise_voltage</key>
+ <value>noise_amp</value>
</param>
- </block>
- <block>
- <key>digital_costas_loop_cc</key>
<param>
- <key>id</key>
- <value>digital_costas_loop_cc_0</value>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>epsilon</key>
+ <value>interpratio</value>
</param>
<param>
- <key>w</key>
- <value>phase_bw</value>
+ <key>taps</key>
+ <value>1.0</value>
</param>
<param>
- <key>order</key>
- <value>4</value>
+ <key>seed</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(866, 246)</value>
+ <value>(77, 183)</value>
</param>
<param>
<key>_rotation</key>
@@ -599,74 +683,54 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_1</value>
+ <value>phase_bw</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>title</key>
- <value>Pre-sync Signal</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>.5</value>
+ <key>label</key>
+ <value>Costas Loop (Phase) Bandwidth</value>
</param>
<param>
- <key>v_offset</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>min</key>
<value>0</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>max</key>
+ <value>0.1</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
- <value></value>
+ <value>(7,2,1,1)</value>
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
- </param>
- <param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
- </param>
- <param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1081, 439)</value>
+ <value>(866, 318)</value>
</param>
<param>
<key>_rotation</key>
@@ -674,10 +738,10 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>wxgui_scopesink2_0_0_1</value>
</param>
<param>
<key>_enabled</key>
@@ -689,55 +753,35 @@
</param>
<param>
<key>title</key>
- <value>Received spectrum</value>
+ <value>Pre-sync Signal</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>0</value>
- </param>
- <param>
- <key>y_per_div</key>
- <value>10</value>
- </param>
- <param>
- <key>y_divs</key>
- <value>10</value>
- </param>
- <param>
- <key>ref_level</key>
- <value>10</value>
- </param>
- <param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>v_scale</key>
+ <value>.5</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>t_scale</key>
+ <value>0</value>
</param>
<param>
- <key>peak_hold</key>
+ <key>ac_couple</key>
<value>False</value>
</param>
<param>
- <key>average</key>
+ <key>xy_mode</key>
<value>False</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
- </param>
- <param>
- <key>win</key>
- <value>None</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
<key>win_size</key>
@@ -752,12 +796,16 @@
<value>notebook_0,1</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1081, 563)</value>
+ <value>(1086, 441)</value>
</param>
<param>
<key>_rotation</key>
@@ -768,7 +816,7 @@
<key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0_0</value>
+ <value>wxgui_fftsink2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -780,7 +828,7 @@
</param>
<param>
<key>title</key>
- <value>Post-sync spectrum</value>
+ <value>Received spectrum</value>
</param>
<param>
<key>samp_rate</key>
@@ -840,7 +888,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
+ <value>notebook_0,1</value>
</param>
<param>
<key>freqvar</key>
@@ -848,82 +896,62 @@
</param>
<param>
<key>_coordinate</key>
- <value>(347, 516)</value>
+ <value>(1086, 565)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>time_alpha</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>title</key>
- <value>Post-sync Signal</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>0</value>
+ <key>label</key>
+ <value>Timing Alpha</value>
</param>
<param>
- <key>v_offset</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>min</key>
<value>0</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>max</key>
+ <value>1</value>
</param>
<param>
- <key>xy_mode</key>
- <value>True</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
- <value></value>
+ <value>(5,2,1,1)</value>
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
- </param>
- <param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
- </param>
- <param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1085, 213)</value>
+ <value>(557, 431)</value>
</param>
<param>
<key>_rotation</key>
@@ -934,7 +962,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>freq_bw</value>
+ <value>time_beta</value>
</param>
<param>
<key>_enabled</key>
@@ -942,7 +970,7 @@
</param>
<param>
<key>label</key>
- <value>FLL Bandwidth</value>
+ <value>Timing Beta</value>
</param>
<param>
<key>value</key>
@@ -954,7 +982,7 @@
</param>
<param>
<key>max</key>
- <value>0.05</value>
+ <value>0.1</value>
</param>
<param>
<key>num_steps</key>
@@ -970,7 +998,7 @@
</param>
<param>
<key>grid_pos</key>
- <value>(4,2,1,1)</value>
+ <value>(6,2,1,1)</value>
</param>
<param>
<key>notebook</key>
@@ -978,7 +1006,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(341, 373)</value>
+ <value>(694, 430)</value>
</param>
<param>
<key>_rotation</key>
@@ -989,7 +1017,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>time_alpha</value>
+ <value>freq_bw</value>
</param>
<param>
<key>_enabled</key>
@@ -997,7 +1025,7 @@
</param>
<param>
<key>label</key>
- <value>Timing Alpha</value>
+ <value>FLL Bandwidth</value>
</param>
<param>
<key>value</key>
@@ -1005,11 +1033,11 @@
</param>
<param>
<key>min</key>
- <value>0</value>
+ <value>0.0</value>
</param>
<param>
<key>max</key>
- <value>1</value>
+ <value>0.05</value>
</param>
<param>
<key>num_steps</key>
@@ -1025,7 +1053,7 @@
</param>
<param>
<key>grid_pos</key>
- <value>(5,2,1,1)</value>
+ <value>(4,2,1,1)</value>
</param>
<param>
<key>notebook</key>
@@ -1033,152 +1061,129 @@
</param>
<param>
<key>_coordinate</key>
- <value>(598, 388)</value>
+ <value>(154, 517)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>time_beta</value>
+ <value>wxgui_fftsink2_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Timing Beta</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>0.0</value>
- </param>
- <param>
- <key>max</key>
- <value>0.1</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>title</key>
+ <value>Post-sync spectrum</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>baseband_freq</key>
+ <value>0</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(6,2,1,1)</value>
+ <key>y_per_div</key>
+ <value>10</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>y_divs</key>
+ <value>10</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(708, 388)</value>
+ <key>ref_level</key>
+ <value>10</value>
</param>
<param>
- <key>_rotation</key>
- <value>180</value>
+ <key>ref_scale</key>
+ <value>2.0</value>
</param>
- </block>
- <block>
- <key>variable_slider</key>
<param>
- <key>id</key>
- <value>phase_bw</value>
+ <key>fft_size</key>
+ <value>1024</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>fft_rate</key>
+ <value>30</value>
</param>
<param>
- <key>label</key>
- <value>Costas Loop (Phase) Bandwidth</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>min</key>
+ <key>avg_alpha</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>0.1</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>win</key>
+ <value>None</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
<key>grid_pos</key>
- <value>(7,2,1,1)</value>
+ <value></value>
</param>
<param>
<key>notebook</key>
- <value></value>
+ <value>notebook_0,0</value>
+ </param>
+ <param>
+ <key>freqvar</key>
+ <value>None</value>
</param>
<param>
<key>_coordinate</key>
- <value>(866, 313)</value>
+ <value>(349, 422)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>notebook</key>
+ <key>gr_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>notebook_0</value>
+ <value>gr_multiply_const_vxx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.NB_TOP</value>
- </param>
- <param>
- <key>labels</key>
- <value>['Synched Signal', 'Received Signal']</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(1,1,8,1)</value>
+ <key>const</key>
+ <value>sig_amp</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(9, 601)</value>
+ <value>(763, 96)</value>
</param>
<param>
<key>_rotation</key>
@@ -1186,109 +1191,104 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>interpratio</value>
+ <value>gr_throttle_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Timing Offset</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>1.00</value>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>min</key>
- <value>0.99</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>max</key>
- <value>1.01</value>
+ <key>_coordinate</key>
+ <value>(961, 96)</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>pfb_arb_resampler_xxx</key>
+ <param>
+ <key>id</key>
+ <value>pfb_arb_resampler_xxx_0</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>type</key>
+ <value>ccf</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(3,2,1,1)</value>
+ <key>rrate</key>
+ <value>spb</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>taps</key>
+ <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ </param>
+ <param>
+ <key>nfilts</key>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(60, 407)</value>
+ <value>(468, 72)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>noise_amp</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Channel Noise</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>1.0</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>symbol_table</key>
+ <value>const.points()</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(1,2,1,1)</value>
+ <key>dimension</key>
+ <value>1</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(125, 284)</value>
+ <value>(217, 88)</value>
</param>
<param>
<key>_rotation</key>
@@ -1296,54 +1296,58 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>options</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>pam_sync</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frequency Offset</value>
+ <key>title</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>author</key>
+ <value></value>
</param>
<param>
- <key>min</key>
- <value>-0.5</value>
+ <key>description</key>
+ <value></value>
</param>
<param>
- <key>max</key>
- <value>0.5</value>
+ <key>window_size</key>
+ <value>1280, 1024</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>generate_options</key>
+ <value>wx_gui</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>category</key>
+ <value>Custom</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>run_options</key>
+ <value>prompt</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(2,2,1,1)</value>
+ <key>run</key>
+ <value>True</value>
</param>
<param>
- <key>notebook</key>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(6, 284)</value>
+ <value>(-1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -1351,80 +1355,80 @@
</param>
</block>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>virtual_sink_0</sink_block_id>
+ <source_block_id>digital_costas_loop_cc_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>gr_pfb_clock_sync_xxx_0</sink_block_id>
+ <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>digital_costas_loop_cc_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_costas_loop_cc_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_pfb_arb_resampler_ccf_0</source_block_id>
- <sink_block_id>gr_multiply_const_vxx_0</sink_block_id>
+ <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_chunks_to_symbols_xx</source_block_id>
- <sink_block_id>blks2_pfb_arb_resampler_ccf_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
+ <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
+ <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+ <sink_block_id>digital_costas_loop_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>gr_chunks_to_symbols_xx</sink_block_id>
+ <source_block_id>gr_throttle_0</source_block_id>
+ <sink_block_id>channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>gr_channel_model_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>pfb_arb_resampler_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_multiply_const_vxx_0</source_block_id>
- <sink_block_id>gr_throttle_0</sink_block_id>
+ <source_block_id>pfb_arb_resampler_xxx_0</source_block_id>
+ <sink_block_id>gr_multiply_const_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/pam_timing.grc b/gr-digital/examples/demod/pam_timing.grc
index 14a7d403e3..17ab0fb8ca 100644
--- a/gr-digital/examples/demod/pam_timing.grc
+++ b/gr-digital/examples/demod/pam_timing.grc
@@ -1,65 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 5 17:55:51 2012</timestamp>
- <block>
- <key>options</key>
- <param>
- <key>id</key>
- <value>top_block</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>title</key>
- <value></value>
- </param>
- <param>
- <key>author</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>window_size</key>
- <value>1280, 1024</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>wx_gui</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
+ <timestamp>Mon Jul 16 21:25:37 2012</timestamp>
<block>
<key>gr_uchar_to_float</key>
<param>
@@ -99,29 +40,6 @@
</param>
</block>
<block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>32000</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(128, 9)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>variable_slider</key>
<param>
<key>id</key>
@@ -542,61 +460,6 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>beta</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Timing Beta</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>0.0</value>
- </param>
- <param>
- <key>max</key>
- <value>0.1</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(668, 5)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>180</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
<value>alpha</value>
</param>
<param>
@@ -652,7 +515,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>pam_amp</value>
+ <value>rrctaps</value>
</param>
<param>
<key>_enabled</key>
@@ -660,11 +523,11 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), .35, int(11*spb*nfilts))</value>
</param>
<param>
<key>_coordinate</key>
- <value>(223, 9)</value>
+ <value>(513, 679)</value>
</param>
<param>
<key>_rotation</key>
@@ -675,7 +538,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>sig_amp</value>
+ <value>spb</value>
</param>
<param>
<key>_enabled</key>
@@ -683,11 +546,11 @@
</param>
<param>
<key>value</key>
- <value>1</value>
+ <value>4.2563</value>
</param>
<param>
<key>_coordinate</key>
- <value>(315, 9)</value>
+ <value>(42, 840)</value>
</param>
<param>
<key>_rotation</key>
@@ -770,6 +633,61 @@
</param>
</block>
<block>
+ <key>digital_pfb_clock_sync_xxx</key>
+ <param>
+ <key>id</key>
+ <value>digital_pfb_clock_sync_xxx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>ccf</value>
+ </param>
+ <param>
+ <key>sps</key>
+ <value>spb</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>beta</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>rrctaps</value>
+ </param>
+ <param>
+ <key>filter_size</key>
+ <value>nfilts</value>
+ </param>
+ <param>
+ <key>init_phase</key>
+ <value>nfilts/2</value>
+ </param>
+ <param>
+ <key>max_dev</key>
+ <value>1.5</value>
+ </param>
+ <param>
+ <key>osps</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(492, 519)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
<key>gr_throttle</key>
<param>
<key>id</key>
@@ -801,74 +719,96 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>channel_model</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_0</value>
+ <value>channel_model_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>noise_voltage</key>
+ <value>noise_amp</value>
</param>
<param>
- <key>title</key>
- <value>Scope Plot</value>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>epsilon</key>
+ <value>interpratio</value>
</param>
<param>
- <key>v_scale</key>
- <value>9</value>
+ <key>taps</key>
+ <value>1.0</value>
</param>
<param>
- <key>v_offset</key>
+ <key>seed</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>_coordinate</key>
+ <value>(76, 543)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>gr_float_to_complex</key>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>id</key>
+ <value>gr_float_to_complex_0</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>num_inputs</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(590, 184)</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>pfb_arb_resampler_xxx</key>
<param>
- <key>notebook</key>
- <value>notebook_0,1</value>
+ <key>id</key>
+ <value>pfb_arb_resampler_xxx_0</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>type</key>
+ <value>ccf</value>
+ </param>
+ <param>
+ <key>rrate</key>
+ <value>spb</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ </param>
+ <param>
+ <key>nfilts</key>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1112, 881)</value>
+ <value>(788, 173)</value>
</param>
<param>
<key>_rotation</key>
@@ -876,22 +816,30 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>gr_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>rrctaps</value>
+ <value>gr_multiply_const_vxx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), .35, int(11*spb*nfilts))</value>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>const</key>
+ <value>sig_amp</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(513, 679)</value>
+ <value>(714, 382)</value>
</param>
<param>
<key>_rotation</key>
@@ -914,7 +862,7 @@
</param>
<param>
<key>title</key>
- <value>Error</value>
+ <value>Transmitted Signal</value>
</param>
<param>
<key>samp_rate</key>
@@ -966,7 +914,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1115, 358)</value>
+ <value>(1114, 342)</value>
</param>
<param>
<key>_rotation</key>
@@ -974,92 +922,74 @@
</param>
</block>
<block>
- <key>gr_float_to_complex</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>gr_float_to_complex_0</value>
+ <value>wxgui_scopesink2_0_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(590, 184)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blks2_pfb_arb_resampler_ccf</key>
- <param>
- <key>id</key>
- <value>blks2_pfb_arb_resampler_ccf_0</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>title</key>
+ <value>PFB Rate</value>
</param>
<param>
- <key>rate</key>
- <value>spb</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>taps</key>
- <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ <key>v_scale</key>
+ <value>1.25</value>
</param>
<param>
- <key>size</key>
- <value>32</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(816, 181)</value>
+ <key>t_scale</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
- </block>
- <block>
- <key>gr_channel_model</key>
<param>
- <key>id</key>
- <value>gr_channel_model_0</value>
+ <key>xy_mode</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>freq_offset</key>
- <value>freq_offset</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>epsilon</key>
- <value>interpratio</value>
+ <key>notebook</key>
+ <value>notebook_0,2</value>
</param>
<param>
- <key>taps</key>
- <value>1.0</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
</param>
<param>
- <key>seed</key>
- <value>42</value>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(59, 543)</value>
+ <value>(1080, 751)</value>
</param>
<param>
<key>_rotation</key>
@@ -1067,10 +997,10 @@
</param>
</block>
<block>
- <key>gr_multiply_const_vxx</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>gr_multiply_const_vxx_0</value>
+ <value>wxgui_scopesink2_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1078,97 +1008,63 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>float</value>
</param>
<param>
- <key>const</key>
- <value>sig_amp</value>
+ <key>title</key>
+ <value>PFB Error</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(714, 382)</value>
+ <key>v_scale</key>
+ <value>3</value>
</param>
<param>
- <key>_rotation</key>
+ <key>v_offset</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>spb</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>4.2563</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(42, 840)</value>
- </param>
- <param>
- <key>_rotation</key>
+ <key>t_scale</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>gr_pfb_clock_sync_xxx</key>
- <param>
- <key>id</key>
- <value>gr_pfb_clock_sync_xxx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ccf</value>
- </param>
<param>
- <key>sps</key>
- <value>spb</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
<param>
- <key>alpha</key>
- <value>alpha</value>
+ <key>xy_mode</key>
+ <value>False</value>
</param>
<param>
- <key>beta</key>
- <value>beta</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>taps</key>
- <value>rrctaps</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>filter_size</key>
- <value>nfilts</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>init_phase</key>
- <value>16</value>
+ <key>notebook</key>
+ <value>notebook_0,0</value>
</param>
<param>
- <key>max_dev</key>
- <value>1.5</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
</param>
<param>
- <key>osps</key>
- <value>1</value>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(512, 527)</value>
+ <value>(1114, 615)</value>
</param>
<param>
<key>_rotation</key>
@@ -1179,7 +1075,7 @@
<key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0</value>
+ <value>wxgui_scopesink2_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1191,7 +1087,7 @@
</param>
<param>
<key>title</key>
- <value>Error</value>
+ <value>PFB Phase</value>
</param>
<param>
<key>samp_rate</key>
@@ -1199,7 +1095,7 @@
</param>
<param>
<key>v_scale</key>
- <value>3</value>
+ <value>9</value>
</param>
<param>
<key>v_offset</key>
@@ -1231,7 +1127,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
+ <value>notebook_0,1</value>
</param>
<param>
<key>trig_mode</key>
@@ -1243,7 +1139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1114, 615)</value>
+ <value>(1112, 881)</value>
</param>
<param>
<key>_rotation</key>
@@ -1251,74 +1147,182 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_0_0</value>
+ <value>beta</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>label</key>
+ <value>Timing Beta</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>0.1</value>
+ </param>
+ <param>
+ <key>num_steps</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(673, 5)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>180</value>
+ </param>
+ </block>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>pam_timing</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>title</key>
- <value>Scope Plot</value>
+ <value></value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>author</key>
+ <value></value>
</param>
<param>
- <key>v_scale</key>
- <value>1.25</value>
+ <key>description</key>
+ <value></value>
</param>
<param>
- <key>v_offset</key>
+ <key>window_size</key>
+ <value>1280, 1024</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>wx_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>realtime_scheduling</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(10, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>id</key>
+ <value>pam_amp</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>value</key>
+ <value>2</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(277, 12)</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>notebook</key>
- <value>notebook_0,2</value>
+ <key>id</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>value</key>
+ <value>32000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1080, 751)</value>
+ <value>(182, 12)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sig_amp</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(369, 12)</value>
</param>
<param>
<key>_rotation</key>
@@ -1362,12 +1366,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>gr_throttle_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>gr_add_xx_0</source_block_id>
<sink_block_id>gr_float_to_complex_0</sink_block_id>
<source_key>0</source_key>
@@ -1380,57 +1378,63 @@
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>gr_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>gr_pfb_clock_sync_xxx_0</sink_block_id>
+ <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_pfb_clock_sync_xxx_0</source_block_id>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
<source_key>1</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_pfb_clock_sync_xxx_0</source_block_id>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_0_0</sink_block_id>
+ <source_key>2</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0_0_0</sink_block_id>
<source_key>3</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_0_0</sink_block_id>
- <source_key>2</source_key>
+ <source_block_id>channel_model_0</source_block_id>
+ <sink_block_id>gr_throttle_0</sink_block_id>
+ <source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_multiply_const_vxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
+ <sink_block_id>channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_float_to_complex_0</source_block_id>
- <sink_block_id>blks2_pfb_arb_resampler_ccf_0</sink_block_id>
+ <sink_block_id>pfb_arb_resampler_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_pfb_arb_resampler_ccf_0</source_block_id>
+ <source_block_id>pfb_arb_resampler_xxx_0</source_block_id>
<sink_block_id>gr_multiply_const_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
- <connection>
- <source_block_id>gr_multiply_const_vxx_0</source_block_id>
- <sink_block_id>gr_channel_model_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
</flow_graph>
diff --git a/gr-digital/examples/example_costas.py b/gr-digital/examples/example_costas.py
index aef0196cc0..afb9657798 100755
--- a/gr-digital/examples/example_costas.py
+++ b/gr-digital/examples/example_costas.py
@@ -1,6 +1,26 @@
#!/usr/bin/env python
-
-from gnuradio import gr, digital
+#
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr, digital, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -28,8 +48,8 @@ class example_costas(gr.top_block):
data = scipy.exp(1j*poffset) * data
self.src = gr.vector_source_c(data.tolist(), False)
- self.rrc = gr.interp_fir_filter_ccf(sps, rrc_taps)
- self.chn = gr.channel_model(noise, foffset, toffset)
+ self.rrc = filter.interp_fir_filter_ccf(sps, rrc_taps)
+ self.chn = filter.channel_model(noise, foffset, toffset)
self.cst = digital.costas_loop_cc(bw, 2)
self.vsnk_src = gr.vector_sink_c()
diff --git a/gr-digital/examples/example_fll.py b/gr-digital/examples/example_fll.py
index 3b75b5a758..bcd2ee032b 100755
--- a/gr-digital/examples/example_fll.py
+++ b/gr-digital/examples/example_fll.py
@@ -1,6 +1,26 @@
#!/usr/bin/env python
-
-from gnuradio import gr, digital
+#
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr, digital, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -28,8 +48,8 @@ class example_fll(gr.top_block):
data = scipy.exp(1j*poffset) * data
self.src = gr.vector_source_c(data.tolist(), False)
- self.rrc = gr.interp_fir_filter_ccf(sps, rrc_taps)
- self.chn = gr.channel_model(noise, foffset, toffset)
+ self.rrc = filter.interp_fir_filter_ccf(sps, rrc_taps)
+ self.chn = filter.channel_model(noise, foffset, toffset)
self.fll = digital.fll_band_edge_cc(sps, rolloff, ntaps, bw)
self.vsnk_src = gr.vector_sink_c()
diff --git a/gr-digital/examples/example_timing.py b/gr-digital/examples/example_timing.py
index fd86acfb16..7274773a0f 100755
--- a/gr-digital/examples/example_timing.py
+++ b/gr-digital/examples/example_timing.py
@@ -1,6 +1,26 @@
#!/usr/bin/env python
-
-from gnuradio import gr, digital
+#
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr, digital, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -36,15 +56,15 @@ class example_timing(gr.top_block):
data = scipy.exp(1j*poffset) * data
self.src = gr.vector_source_c(data.tolist(), False)
- self.rrc = gr.interp_fir_filter_ccf(sps, rrc_taps)
- self.chn = gr.channel_model(noise, foffset, toffset)
- self.off = gr.fractional_interpolator_cc(0.20, 1.0)
+ self.rrc = filter.interp_fir_filter_ccf(sps, rrc_taps)
+ self.chn = filter.channel_model(noise, foffset, toffset)
+ self.off = filter.fractional_interpolator_cc(0.20, 1.0)
if mode == 0:
- self.clk = gr.pfb_clock_sync_ccf(sps, gain, rrc_taps_rx,
- nfilts, nfilts//2, 3.5)
- self.taps = self.clk.get_taps()
- self.dtaps = self.clk.get_diff_taps()
+ self.clk = digital.pfb_clock_sync_ccf(sps, gain, rrc_taps_rx,
+ nfilts, nfilts//2, 3.5)
+ self.taps = self.clk.taps()
+ self.dtaps = self.clk.diff_taps()
self.vsnk_err = gr.vector_sink_f()
self.vsnk_rat = gr.vector_sink_f()
@@ -164,6 +184,7 @@ def main():
for i,d in enumerate(diff_taps):
D = 20.0*scipy.log10(abs(fftpack.fftshift(fftpack.fft(d, 10000))))
+ #D = 20.0*scipy.log10(abs(scipy.fft(d, 10000)))
s31.plot(t[i::nfilts].real, d, "-o")
s32.plot(D)
diff --git a/gr-digital/examples/gen_whitener.py b/gr-digital/examples/gen_whitener.py
index 9a81e4eaa3..0b1591c3ab 100755
--- a/gr-digital/examples/gen_whitener.py
+++ b/gr-digital/examples/gen_whitener.py
@@ -1,4 +1,24 @@
#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
from gnuradio import gr, gru
from gnuradio.eng_option import eng_option
diff --git a/gr-digital/examples/narrowband/benchmark_add_channel.py b/gr-digital/examples/narrowband/benchmark_add_channel.py
index 841833a08f..8f2e544fdb 100755
--- a/gr-digital/examples/narrowband/benchmark_add_channel.py
+++ b/gr-digital/examples/narrowband/benchmark_add_channel.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr
+from gnuradio import gr, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -43,8 +43,8 @@ class my_top_block(gr.top_block):
self.src = gr.file_source(gr.sizeof_gr_complex, ifile)
#self.throttle = gr.throttle(gr.sizeof_gr_complex, options.sample_rate)
- self.channel = gr.channel_model(noise_voltage, frequency_offset,
- time_offset, noise_seed=random.randint(0,100000))
+ self.channel = filter.channel_model(noise_voltage, frequency_offset,
+ time_offset, noise_seed=random.randint(0,100000))
self.phase = gr.multiply_const_cc(complex(math.cos(phase_offset),
math.sin(phase_offset)))
self.snk = gr.file_sink(gr.sizeof_gr_complex, ofile)
diff --git a/gr-digital/examples/narrowband/digital_bert_rx.py b/gr-digital/examples/narrowband/digital_bert_rx.py
index ab7e988eba..c044b25858 100755
--- a/gr-digital/examples/narrowband/digital_bert_rx.py
+++ b/gr-digital/examples/narrowband/digital_bert_rx.py
@@ -65,8 +65,9 @@ class bert_receiver(gr.hier_block2):
self._bitrate = bitrate
- self._demod = digital.generic_demod(constellation, samples_per_symbol,
- differential, excess_bw, gray_coded,
+ self._demod = digital.generic_demod(constellation, differential,
+ samples_per_symbol,
+ gray_coded, excess_bw,
freq_bw, timing_bw, phase_bw,
verbose, log)
@@ -74,14 +75,15 @@ class bert_receiver(gr.hier_block2):
self._sample_rate = self._symbol_rate * samples_per_symbol
# Add an SNR probe on the demodulated constellation
- self._snr_probe = digital.probe_mpsk_snr_est_c(digital.SNR_EST_M2M4, alpha=10.0/self._symbol_rate)
+ self._snr_probe = digital.probe_mpsk_snr_est_c(digital.SNR_EST_M2M4, 1000,
+ alpha=10.0/self._symbol_rate)
self.connect(self._demod.time_recov, self._snr_probe)
# Descramble BERT sequence. A channel error will create 3 incorrect bits
- self._descrambler = gr.descrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit descrambler
+ self._descrambler = digital.descrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit descrambler
# Measure BER by the density of 0s in the stream
- self._ber = gr.probe_density_b(1.0/self._symbol_rate)
+ self._ber = digital.probe_density_b(1.0/self._symbol_rate)
self.connect(self, self._demod, self._descrambler, self._ber)
@@ -89,7 +91,7 @@ class bert_receiver(gr.hier_block2):
return self._demod.freq_recov.get_frequency()*self._sample_rate/(2*math.pi)
def timing_offset(self):
- return self._demod.time_recov.get_clock_rate()
+ return self._demod.time_recov.clock_rate()
def snr(self):
return self._snr_probe.snr()
diff --git a/gr-digital/examples/narrowband/digital_bert_tx.py b/gr-digital/examples/narrowband/digital_bert_tx.py
index f29e997af6..ff8bf9f104 100755
--- a/gr-digital/examples/narrowband/digital_bert_tx.py
+++ b/gr-digital/examples/narrowband/digital_bert_tx.py
@@ -43,10 +43,11 @@ class bert_transmit(gr.hier_block2):
# Create BERT data bit stream
self._bits = gr.vector_source_b([1,], True) # Infinite stream of ones
- self._scrambler = gr.scrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit scrambler
+ self._scrambler = digital.scrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit scrambler
- self._mod = digital.generic_mod(constellation, samples_per_symbol,
- differential, excess_bw, gray_coded,
+ self._mod = digital.generic_mod(constellation, differential,
+ samples_per_symbol,
+ gray_coded, excess_bw,
verbose, log)
self._pack = gr.unpacked_to_packed_bb(self._mod.bits_per_symbol(), gr.GR_MSB_FIRST)
diff --git a/gr-digital/examples/narrowband/receive_path.py b/gr-digital/examples/narrowband/receive_path.py
index 1f93105068..308f955645 100644
--- a/gr-digital/examples/narrowband/receive_path.py
+++ b/gr-digital/examples/narrowband/receive_path.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gru
+from gnuradio import gr, gru, filter
from gnuradio import eng_notation
from gnuradio import digital
@@ -61,12 +61,12 @@ class receive_path(gr.hier_block2):
# Design filter to get actual channel we want
sw_decim = 1
- chan_coeffs = gr.firdes.low_pass (1.0, # gain
- sw_decim * self.samples_per_symbol(), # sampling rate
- self._chbw_factor, # midpoint of trans. band
- 0.5, # width of trans. band
- gr.firdes.WIN_HANN) # filter type
- self.channel_filter = gr.fft_filter_ccc(sw_decim, chan_coeffs)
+ chan_coeffs = filter.firdes.low_pass(1.0, # gain
+ sw_decim * self.samples_per_symbol(), # sampling rate
+ self._chbw_factor, # midpoint of trans. band
+ 0.5, # width of trans. band
+ gr.firdes.WIN_HANN) # filter type
+ self.channel_filter = filter.fft_filter_ccc(sw_decim, chan_coeffs)
# receiver
self.packet_receiver = \
@@ -119,8 +119,8 @@ class receive_path(gr.hier_block2):
"""
Set carrier threshold.
- @param threshold_in_db: set detection threshold
- @type threshold_in_db: float (dB)
+ Args:
+ threshold_in_db: set detection threshold (float (dB))
"""
self.probe.set_threshold(threshold_in_db)
diff --git a/gr-digital/examples/narrowband/transmit_path.py b/gr-digital/examples/narrowband/transmit_path.py
index 4d6162ed61..ec87ecd825 100644
--- a/gr-digital/examples/narrowband/transmit_path.py
+++ b/gr-digital/examples/narrowband/transmit_path.py
@@ -71,7 +71,9 @@ class transmit_path(gr.hier_block2):
def set_tx_amplitude(self, ampl):
"""
Sets the transmit amplitude sent to the USRP in volts
- @param: ampl 0 <= ampl < 1.
+
+ Args:
+ : ampl 0 <= ampl < 1.
"""
self._tx_amplitude = max(0.0, min(ampl, 1))
self.amp.set_k(self._tx_amplitude)
diff --git a/gr-digital/examples/narrowband/tunnel.py b/gr-digital/examples/narrowband/tunnel.py
index 65205b9f6f..7b9b69cc8a 100755
--- a/gr-digital/examples/narrowband/tunnel.py
+++ b/gr-digital/examples/narrowband/tunnel.py
@@ -161,8 +161,9 @@ class cs_mac(object):
"""
Invoked by thread associated with PHY to pass received packet up.
- @param ok: bool indicating whether payload CRC was OK
- @param payload: contents of the packet (string)
+ Args:
+ ok: bool indicating whether payload CRC was OK
+ payload: contents of the packet (string)
"""
if self.verbose:
print "Rx: ok = %r len(payload) = %4d" % (ok, len(payload))
diff --git a/gr-digital/examples/narrowband/tx_voice.py b/gr-digital/examples/narrowband/tx_voice.py
index 3d767a0770..1f968fa8a3 100755
--- a/gr-digital/examples/narrowband/tx_voice.py
+++ b/gr-digital/examples/narrowband/tx_voice.py
@@ -20,11 +20,12 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, blks2, audio, uhd
+from gnuradio import gr, audio, uhd
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
+from gnuradio import filter
from gnuradio import digital
from gnuradio import vocoder
@@ -84,7 +85,7 @@ class my_top_block(gr.top_block):
self.sink = gr.null_sink(gr.sizeof_gr_complex)
rrate = 1
- self.resampler = blks2.pfb_arb_resampler_ccf(rrate)
+ self.resampler = filter.pfb.arb_resampler_ccf(rrate)
self.connect(self.audio_rx)
self.connect(self.txpath, self.resampler, self.sink)
diff --git a/gr-digital/examples/ofdm/benchmark_add_channel.py b/gr-digital/examples/ofdm/benchmark_add_channel.py
index 01776d2093..77862e753f 100755
--- a/gr-digital/examples/ofdm/benchmark_add_channel.py
+++ b/gr-digital/examples/ofdm/benchmark_add_channel.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr
+from gnuradio import gr, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -45,7 +45,7 @@ class my_top_block(gr.top_block):
self.src = gr.file_source(gr.sizeof_gr_complex, ifile)
#self.throttle = gr.throttle(gr.sizeof_gr_complex, options.sample_rate)
- self.channel = gr.channel_model(noise_voltage, frequency_offset,
+ self.channel = filter.channel_model(noise_voltage, frequency_offset,
time_offset, noise_seed=random.randint(0,100000))
self.phase = gr.multiply_const_cc(complex(math.cos(phase_offset),
math.sin(phase_offset)))
diff --git a/gr-digital/examples/ofdm/benchmark_rx.py b/gr-digital/examples/ofdm/benchmark_rx.py
index 57817c5018..f1b65276d0 100755
--- a/gr-digital/examples/ofdm/benchmark_rx.py
+++ b/gr-digital/examples/ofdm/benchmark_rx.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, blks2
+from gnuradio import gr
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
diff --git a/gr-digital/examples/ofdm/ofdm_mod_demod_test.py b/gr-digital/examples/ofdm/ofdm_mod_demod_test.py
deleted file mode 100755
index b1521da6d7..0000000000
--- a/gr-digital/examples/ofdm/ofdm_mod_demod_test.py
+++ /dev/null
@@ -1,179 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2005,2006,2008 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, ofdm_packet_utils
-import gnuradio.gr.gr_threading as _threading
-from gnuradio import eng_notation
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-
-import random, time, struct, sys, math, os
-
-class my_top_block(gr.top_block):
- def __init__(self, callback, options):
- gr.top_block.__init__(self)
-
- # hard-coded known symbol
- ks1 = known_symbols_4512_1[0:options.occupied_tones]
- ks2 = known_symbols_4512_2[0:options.occupied_tones]
-
- self._rcvd_pktq = gr.msg_queue()
-
- # accepts messages from the outside world
- self.ofdm_mapper = gr.ofdm_bpsk_mapper(4, options.occupied_tones, options.fft_length, ks1, ks2)
- self.ofdm_corr = gr.ofdm_correlator(options.occupied_tones, options.fft_length, 0, ks1, ks2)
- self.ofdm_framer = gr.ofdm_frame_sink(self._rcvd_pktq, options.occupied_tones)
-
- if 0: # set to 1 to put the correlator in the path to take over the signalling
- self.connect((self.ofdm_mapper, 0), (self.ofdm_corr, 0))
- self.connect((self.ofdm_corr, 0), (self.ofdm_framer, 0))
- self.connect((self.ofdm_corr, 1), (self.ofdm_framer, 1))
-
- self.connect((self.ofdm_mapper,0), gr.file_sink(gr.sizeof_gr_complex*options.fft_length, "ofdm_mapper.dat"))
- self.connect((self.ofdm_corr,0), gr.file_sink(gr.sizeof_gr_complex*options.occupied_tones, "ofdm_corr.dat"))
- self.connect((self.ofdm_corr,1), gr.file_sink(gr.sizeof_char, "ofdm_sig.dat"))
-
- else:
- self.connect((self.ofdm_mapper, 0), (self.ofdm_framer, 0))
- self.connect((self.ofdm_mapper, 1), (self.ofdm_framer, 1))
-
- self.connect((self.ofdm_mapper,0), gr.file_sink(gr.sizeof_gr_complex*options.fft_length, "ofdm_mapper.dat"))
- self.connect((self.ofdm_mapper,1), gr.file_sink(gr.sizeof_char, "ofdm_sig.dat"))
-
- self._watcher = _queue_watcher_thread(self._rcvd_pktq, callback)
-
- def send_pkt(self, payload='', eof=False):
- if eof:
- msg = gr.message(1)
- else:
- pkt = ofdm_packet_utils.make_packet(payload, 1, 1, False, whiten=False)
- msg = gr.message_from_string(pkt)
- self.ofdm_mapper.msgq().insert_tail(msg)
-
-class _queue_watcher_thread(_threading.Thread):
- def __init__(self, rcvd_pktq, callback):
- _threading.Thread.__init__(self)
- self.setDaemon(1)
- self.rcvd_pktq = rcvd_pktq
- self.callback = callback
- self.keep_running = True
- self.start()
-
- def run(self):
- while self.keep_running:
- msg = self.rcvd_pktq.delete_head()
- ok, payload = ofdm_packet_utils.unmake_packet(msg.to_string(), whiten=False)
- if self.callback:
- self.callback(ok, payload)
-
-# /////////////////////////////////////////////////////////////////////////////
-# main
-# /////////////////////////////////////////////////////////////////////////////
-
-def main():
- ''' Use this program to tie the OFDM modulators straight into the frame sink, with or without
- the correlator in between. This is for testing of the modulators and demodulators only without
- receiver and sync functionality.'''
-
- global n_rcvd, n_right
-
- n_rcvd = 0
- n_right = 0
-
- def send_pkt(payload='', eof=False):
- return fg.send_pkt(payload, eof)
-
- def rx_callback(ok, payload):
- global n_rcvd, n_right
- n_rcvd += 1
- (pktno,) = struct.unpack('!H', payload[0:2])
- if ok:
- n_right += 1
- print "ok: %r \t pktno: %d \t n_rcvd: %d \t n_right: %d" % (ok, pktno, n_rcvd, n_right)
-
- printlst = list()
- for x in payload[2:]:
- t = hex(ord(x)).replace('0x', '')
- if(len(t) == 1):
- t = '0' + t
- printlst.append(t)
- printable = ''.join(printlst)
-
- print printable
- print "\n"
-
- parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
- expert = parser.add_option_group("Expert")
- parser.add_option("-s", "--size", type="eng_float", default=1450,
- help="set packet size [default=%default]")
- parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
- help="set megabytes to transmit [default=%default]")
- expert.add_option("", "--fft-length", type="intx", default=512,
- help="set the number of FFT bins [default=%default]")
- expert.add_option("", "--occupied-tones", type="intx", default=200,
- help="set the number of occupied FFT bins [default=%default]")
- expert.add_option("", "--cp-length", type="intx", default=128,
- help="set the number of bits in the cyclic prefix [default=%default]")
- expert.add_option("", "--fft-length", type="intx", default=512,
- help="set the number of FFT bins [default=%default]")
- expert.add_option("", "--occupied-tones", type="intx", default=200,
- help="set the number of occupied FFT bins [default=%default]")
- expert.add_option("", "--cp-length", type="intx", default=128,
- help="set the number of bits in the cyclic prefix [default=%default]")
-
- (options, args) = parser.parse_args ()
-
- # build the graph
- tb = my_top_block(rx_callback, options)
-
- tb.start() # start flow graph
-
- # generate and send packets
- nbytes = int(1e6 * options.megabytes)
- n = 0
- pktno = 0
- pkt_size = int(options.size)
-
- while n < nbytes:
- #r = ''.join([chr(random.randint(0,255)) for i in range(pkt_size-2)])
- #pkt_contents = struct.pack('!H', pktno) + r
-
- pkt_contents = struct.pack('!H', pktno) + (pkt_size - 2) * chr(pktno & 0xff)
-
- send_pkt(pkt_contents)
- n += pkt_size
- pktno += 1
-
- send_pkt(eof=True)
- tb.wait() # wait for it to finish
-
-known_symbols_4512_1 = [-1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1]
-
-known_symbols_4512_2 = [1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1]
-
-
-if __name__ == '__main__':
- try:
- main()
- except KeyboardInterrupt:
- pass
-
diff --git a/gr-digital/examples/ofdm/receive_path.py b/gr-digital/examples/ofdm/receive_path.py
index e1c7868a0e..b5094ac24d 100644
--- a/gr-digital/examples/ofdm/receive_path.py
+++ b/gr-digital/examples/ofdm/receive_path.py
@@ -77,8 +77,8 @@ class receive_path(gr.hier_block2):
"""
Set carrier threshold.
- @param threshold_in_db: set detection threshold
- @type threshold_in_db: float (dB)
+ Args:
+ threshold_in_db: set detection threshold (float (dB))
"""
self.probe.set_threshold(threshold_in_db)
diff --git a/gr-digital/examples/ofdm/transmit_path.py b/gr-digital/examples/ofdm/transmit_path.py
index ec357d6173..6fb66e4076 100644
--- a/gr-digital/examples/ofdm/transmit_path.py
+++ b/gr-digital/examples/ofdm/transmit_path.py
@@ -62,7 +62,9 @@ class transmit_path(gr.hier_block2):
def set_tx_amplitude(self, ampl):
"""
Sets the transmit amplitude sent to the USRP
- @param: ampl 0 <= ampl < 1.0. Try 0.10
+
+ Args:
+ : ampl 0 <= ampl < 1.0. Try 0.10
"""
self._tx_amplitude = max(0.0, min(ampl, 1))
self.amp.set_k(self._tx_amplitude)
diff --git a/gr-digital/examples/ofdm/tunnel.py b/gr-digital/examples/ofdm/tunnel.py
index e253cf5161..f407aef8d6 100755
--- a/gr-digital/examples/ofdm/tunnel.py
+++ b/gr-digital/examples/ofdm/tunnel.py
@@ -146,8 +146,9 @@ class cs_mac(object):
"""
Invoked by thread associated with PHY to pass received packet up.
- @param ok: bool indicating whether payload CRC was OK
- @param payload: contents of the packet (string)
+ Args:
+ ok: bool indicating whether payload CRC was OK
+ payload: contents of the packet (string)
"""
if self.verbose:
print "Rx: ok = %r len(payload) = %4d" % (ok, len(payload))
diff --git a/gr-digital/examples/snr_estimators.py b/gr-digital/examples/snr_estimators.py
index 432abd4553..e310ec2937 100755
--- a/gr-digital/examples/snr_estimators.py
+++ b/gr-digital/examples/snr_estimators.py
@@ -1,4 +1,24 @@
#!/usr/bin/env python
+#
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
import sys
@@ -15,7 +35,7 @@ except ImportError:
print "Error: Program requires Matplotlib (matplotlib.sourceforge.net)."
sys.exit(1)
-from gnuradio import gr, digital
+from gnuradio import gr, digital, filter
from optparse import OptionParser
from gnuradio.eng_option import eng_option
@@ -147,7 +167,7 @@ def main():
gr_src = gr.vector_source_c(bits.tolist(), False)
gr_snr = digital.mpsk_snr_est_cc(gr_est, ntag, 0.001)
- gr_chn = gr.channel_model(1.0/scale)
+ gr_chn = filter.channel_model(1.0/scale)
gr_snk = gr.null_sink(gr.sizeof_gr_complex)
tb = gr.top_block()
tb.connect(gr_src, gr_chn, gr_snr, gr_snk)