diff options
author | Ron Economos <w6rz@comcast.net> | 2016-07-29 13:33:00 -0700 |
---|---|---|
committer | Ron Economos <w6rz@comcast.net> | 2016-07-29 13:33:00 -0700 |
commit | 9977f211bbfc3282aa9744b999c2a0092a6e1094 (patch) | |
tree | 64bda4fdc6b9c2e3b423ad9e42a3c03bb46e0d87 /gr-dtv | |
parent | 7d09110f19cc9c9d4622b79b8f79c0f8d776b4f9 (diff) |
gr-dtv: Improve ATSC transmitter performance with Rotator block.
Diffstat (limited to 'gr-dtv')
-rw-r--r-- | gr-dtv/examples/README.atsc | 7 | ||||
-rw-r--r-- | gr-dtv/examples/file_atsc_tx.grc | 991 | ||||
-rw-r--r-- | gr-dtv/examples/uhd_atsc_tx.grc | 3166 | ||||
-rw-r--r-- | gr-dtv/grc/dtv_dvbs2_modulator_bc.xml | 29 | ||||
-rw-r--r-- | gr-dtv/include/gnuradio/dtv/dvb_config.h | 1 | ||||
-rw-r--r-- | gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc | 11 |
6 files changed, 3837 insertions, 368 deletions
diff --git a/gr-dtv/examples/README.atsc b/gr-dtv/examples/README.atsc new file mode 100644 index 0000000000..29f5abeccb --- /dev/null +++ b/gr-dtv/examples/README.atsc @@ -0,0 +1,7 @@ +A test Transport Stream (19.392658 Mbps) for the example transmit +flow graphs is available here: + +http://www.w6rz.net/advatsc.ts + +It is 256,952,572 bytes. + diff --git a/gr-dtv/examples/file_atsc_tx.grc b/gr-dtv/examples/file_atsc_tx.grc index f212ab35c6..3a7124127b 100644 --- a/gr-dtv/examples/file_atsc_tx.grc +++ b/gr-dtv/examples/file_atsc_tx.grc @@ -1,23 +1,23 @@ -<?xml version='1.0' encoding='ASCII'?> -<?grc format='1' created='3.7.7'?> +<?xml version='1.0' encoding='utf-8'?> +<?grc format='1' created='3.7.11'?> <flow_graph> - <timestamp>Sat Jan 17 12:37:25 2015</timestamp> + <timestamp>Sat Dec 20 12:18:33 2014</timestamp> <block> <key>options</key> <param> - <key>id</key> - <value>file_atsc_tx</value> + <key>author</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>window_size</key> + <value>1280, 1024</value> </param> <param> - <key>title</key> - <value></value> + <key>category</key> + <value>Custom</value> </param> <param> - <key>author</key> + <key>comment</key> <value></value> </param> <param> @@ -25,16 +25,44 @@ <value></value> </param> <param> - <key>window_size</key> - <value>1280, 1024</value> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(368, 19)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> </param> <param> <key>generate_options</key> - <value>wx_gui</value> + <value>qt_gui</value> </param> <param> - <key>category</key> - <value>Custom</value> + <key>hier_block_src_path</key> + <value>.:</value> + </param> + <param> + <key>id</key> + <value>file_atsc_tx</value> + </param> + <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> + <key>qt_qss_theme</key> + <value></value> + </param> + <param> + <key>realtime_scheduling</key> + <value></value> + </param> + <param> + <key>run_command</key> + <value>{python} -u {filename}</value> </param> <param> <key>run_options</key> @@ -45,92 +73,107 @@ <value>True</value> </param> <param> - <key>max_nouts</key> - <value>0</value> + <key>thread_safe_setters</key> + <value></value> </param> <param> - <key>realtime_scheduling</key> + <key>title</key> <value></value> </param> + </block> + <block> + <key>variable</key> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(584, 19)</value> + <value>(808, 20)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>center_freq</value> + </param> + <param> + <key>value</key> + <value>429e6</value> + </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>symbol_rate</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>4500000.0 / 286 * 684</value> + <key>_coordinate</key> + <value>(680, 20)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(360, 19)</value> + <key>id</key> + <value>pilot_freq</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>(6000000.0 - (symbol_rate / 2)) / 2</value> </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>pilot_freq</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>309441</value> + <key>_coordinate</key> + <value>(552, 19)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(472, 19)</value> + <key>id</key> + <value>symbol_rate</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>4500000.0 / 286 * 684</value> </param> </block> <block> - <key>dtv_atsc_pad</key> + <key>blocks_file_sink</key> <param> - <key>id</key> - <value>dtv_atsc_pad_0</value> + <key>append</key> + <value>False</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>alias</key> + <value></value> </param> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> @@ -138,804 +181,1028 @@ <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>1</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>file</key> + <value>atsc.cfile</value> </param> <param> <key>_coordinate</key> - <value>(96, 112)</value> + <value>(1048, 236)</value> </param> <param> <key>_rotation</key> - <value>180</value> + <value>0</value> </param> - </block> - <block> - <key>dtv_atsc_randomizer</key> <param> <key>id</key> - <value>dtv_atsc_randomizer_0</value> + <value>blocks_file_sink_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>type</key> + <value>complex</value> </param> <param> + <key>unbuffered</key> + <value>False</value> + </param> + <param> + <key>vlen</key> + <value>1</value> + </param> + </block> + <block> + <key>blocks_file_source</key> + <param> <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>file</key> + <value>advatsc.ts</value> </param> <param> <key>_coordinate</key> - <value>(72, 168)</value> + <value>(64, 19)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>dtv_atsc_rs_encoder</key> <param> <key>id</key> - <value>dtv_atsc_rs_encoder_0</value> + <value>blocks_file_source_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>type</key> + <value>byte</value> + </param> + <param> + <key>repeat</key> + <value>False</value> + </param> + <param> + <key>vlen</key> + <value>1</value> + </param> + </block> + <block> + <key>blocks_keep_m_in_n</key> + <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(72, 224)</value> + <value>(104, 451)</value> </param> <param> <key>_rotation</key> - <value>180</value> + <value>0</value> </param> - </block> - <block> - <key>blocks_keep_m_in_n</key> <param> <key>id</key> <value>blocks_keep_m_in_n_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>m</key> + <value>832</value> </param> <param> - <key>type</key> - <value>byte</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>m</key> - <value>832</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> <key>n</key> <value>1024</value> </param> <param> + <key>type</key> + <value>byte</value> + </param> + <param> <key>offset</key> <value>4</value> </param> + </block> + <block> + <key>blocks_rotator_cc</key> <param> <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> + <key>_enabled</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(336, 332)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> <param> + <key>id</key> + <value>blocks_rotator_cc_0</value> + </param> + <param> <key>maxoutbuf</key> <value>0</value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>phase_inc</key> + <value>((-3000000.0 + pilot_freq) / symbol_rate) * (math.pi * 2)</value> + </param> + </block> + <block> + <key>blocks_throttle</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(80, 515)</value> + <value>(824, 332)</value> </param> <param> <key>_rotation</key> <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> + <value>blocks_throttle_0</value> </param> <param> - <key>_enabled</key> + <key>ignoretag</key> <value>True</value> </param> <param> - <key>in_type</key> - <value>byte</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>out_type</key> - <value>complex</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>symbol_table</key> - <value>[symbol + 1.25 for symbol in [-7,-5,-3,-1,1,3,5,7]]</value> + <key>samples_per_second</key> + <value>symbol_rate</value> </param> <param> - <key>dimension</key> - <value>1</value> + <key>type</key> + <value>complex</value> </param> <param> - <key>num_ports</key> + <key>vlen</key> <value>1</value> </param> + </block> + <block> + <key>blocks_vector_to_stream</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(360, 523)</value> + <value>(96, 387)</value> </param> <param> <key>_rotation</key> - <value>0</value> + <value>180</value> </param> - </block> - <block> - <key>blocks_multiply_xx</key> <param> <key>id</key> - <value>blocks_multiply_xx_0</value> + <value>blocks_vector_to_stream_1</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>type</key> + <value>byte</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>num_inputs</key> - <value>2</value> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>num_items</key> + <value>1024</value> </param> <param> <key>vlen</key> <value>1</value> </param> + </block> + <block> + <key>dtv_atsc_field_sync_mux</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(376, 296)</value> + <value>(80, 337)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>dtv_atsc_field_sync_mux_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> </block> <block> - <key>analog_sig_source_x</key> + <key>dtv_atsc_interleaver</key> <param> - <key>id</key> - <value>analog_sig_source_x_0</value> + <key>alias</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>comment</key> + <value></value> </param> <param> - <key>type</key> - <value>complex</value> + <key>affinity</key> + <value></value> </param> <param> - <key>samp_rate</key> - <value>symbol_rate</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>waveform</key> - <value>analog.GR_COS_WAVE</value> + <key>_coordinate</key> + <value>(88, 241)</value> </param> <param> - <key>freq</key> - <value>-3000000+pilot_freq</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>amp</key> - <value>0.9</value> + <key>id</key> + <value>dtv_atsc_interleaver_0</value> </param> <param> - <key>offset</key> + <key>maxoutbuf</key> <value>0</value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_pad</key> + <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(416, 131)</value> + <value>(112, 97)</value> </param> <param> <key>_rotation</key> <value>180</value> </param> + <param> + <key>id</key> + <value>dtv_atsc_pad_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> </block> <block> - <key>fft_filter_xxx</key> + <key>dtv_atsc_randomizer</key> <param> - <key>id</key> - <value>fft_filter_xxx_0</value> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>ccc</value> + <key>_coordinate</key> + <value>(88, 145)</value> </param> <param> - <key>decim</key> - <value>1</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>taps</key> - <value>firdes.root_raised_cosine(0.1, symbol_rate, symbol_rate/2, 0.1152, 100)</value> + <key>id</key> + <value>dtv_atsc_randomizer_0</value> </param> <param> - <key>samp_delay</key> + <key>maxoutbuf</key> <value>0</value> </param> <param> - <key>nthreads</key> - <value>1</value> + <key>minoutbuf</key> + <value>0</value> </param> + </block> + <block> + <key>dtv_atsc_rs_encoder</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(576, 291)</value> + <value>(88, 193)</value> </param> <param> <key>_rotation</key> + <value>180</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_rs_encoder_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> <value>0</value> </param> </block> <block> - <key>wxgui_fftsink2</key> + <key>dtv_atsc_trellis_encoder</key> <param> - <key>id</key> - <value>wxgui_fftsink2_0</value> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>_coordinate</key> + <value>(80, 289)</value> </param> <param> - <key>title</key> - <value>FFT Plot</value> + <key>_rotation</key> + <value>180</value> </param> <param> - <key>samp_rate</key> - <value>symbol_rate</value> + <key>id</key> + <value>dtv_atsc_trellis_encoder_0</value> </param> <param> - <key>baseband_freq</key> - <value>429000000</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>y_per_div</key> - <value>10</value> + <key>minoutbuf</key> + <value>0</value> </param> + </block> + <block> + <key>dtv_dvbs2_modulator_bc</key> <param> - <key>y_divs</key> - <value>10</value> + <key>interpolation</key> + <value>INTERPOLATION_OFF</value> </param> <param> - <key>ref_level</key> - <value>-10</value> + <key>alias</key> + <value></value> </param> <param> - <key>ref_scale</key> - <value>2.0</value> + <key>rate1</key> + <value>C1_4</value> </param> <param> - <key>fft_size</key> - <value>1024</value> + <key>rate2</key> + <value>C1_5_MEDIUM</value> </param> <param> - <key>fft_rate</key> - <value>15</value> + <key>rate3</key> + <value>C1_4</value> </param> <param> - <key>peak_hold</key> - <value>False</value> + <key>comment</key> + <value></value> </param> <param> - <key>average</key> + <key>constellation</key> + <value>MOD_8VSB</value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> <value>True</value> </param> <param> - <key>avg_alpha</key> - <value>0.1333</value> + <key>framesize</key> + <value>FECFRAME_NORMAL</value> </param> <param> - <key>win</key> - <value>None</value> + <key>_coordinate</key> + <value>(80, 556)</value> </param> <param> - <key>win_size</key> - <value>800,600</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>grid_pos</key> - <value></value> + <key>id</key> + <value>dtv_dvbs2_modulator_bc_0</value> </param> <param> - <key>notebook</key> - <value></value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>freqvar</key> - <value>None</value> + <key>minoutbuf</key> + <value>0</value> </param> + </block> + <block> + <key>fft_filter_xxx</key> <param> <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> + <key>decim</key> + <value>1</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(1048, 331)</value> + <value>(576, 316)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>dtv_atsc_interleaver</key> <param> <key>id</key> - <value>dtv_atsc_interleaver_0</value> + <value>fft_filter_xxx_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>affinity</key> - <value></value> + <key>nthreads</key> + <value>1</value> </param> <param> - <key>minoutbuf</key> + <key>samp_delay</key> <value>0</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>taps</key> + <value>firdes.root_raised_cosine(0.11, symbol_rate, symbol_rate/2, 0.1152, 200)</value> + </param> + <param> + <key>type</key> + <value>ccc</value> + </param> + </block> + <block> + <key>import</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(72, 280)</value> + <value>(368, 91)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>import_0</value> + </param> + <param> + <key>import</key> + <value>import math</value> + </param> </block> <block> - <key>blocks_throttle</key> + <key>qtgui_freq_sink_x</key> <param> - <key>id</key> - <value>blocks_throttle_0</value> + <key>autoscale</key> + <value>False</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>average</key> + <value>0.1</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>axislabels</key> + <value>True</value> </param> <param> - <key>samples_per_second</key> + <key>bw</key> <value>symbol_rate</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>alias</key> + <value></value> </param> <param> - <key>ignoretag</key> - <value>True</value> + <key>fc</key> + <value>center_freq</value> </param> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> + <key>ctrlpanel</key> + <value>False</value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>fftsize</key> + <value>1024</value> </param> <param> <key>_coordinate</key> - <value>(808, 307)</value> + <value>(1048, 396)</value> + </param> + <param> + <key>gui_hint</key> + <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>blocks_file_sink</key> + <param> + <key>grid</key> + <value>False</value> + </param> <param> <key>id</key> - <value>blocks_file_sink_0</value> + <value>qtgui_freq_sink_x_0</value> </param> <param> - <key>_enabled</key> + <key>legend</key> <value>True</value> </param> <param> - <key>file</key> - <value>atsc.cfile</value> + <key>alpha1</key> + <value>1.0</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>color1</key> + <value>"blue"</value> </param> <param> - <key>vlen</key> + <key>label1</key> + <value></value> + </param> + <param> + <key>width1</key> <value>1</value> </param> <param> - <key>unbuffered</key> - <value>False</value> + <key>alpha10</key> + <value>1.0</value> </param> <param> - <key>append</key> - <value>False</value> + <key>color10</key> + <value>"dark blue"</value> </param> <param> - <key>alias</key> + <key>label10</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> + <key>width10</key> + <value>1</value> </param> <param> - <key>_coordinate</key> - <value>(1048, 171)</value> + <key>alpha2</key> + <value>1.0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>color2</key> + <value>"red"</value> </param> - </block> - <block> - <key>dtv_atsc_trellis_encoder</key> <param> - <key>id</key> - <value>dtv_atsc_trellis_encoder_0</value> + <key>label2</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>width2</key> + <value>1</value> </param> <param> - <key>alias</key> - <value></value> + <key>alpha3</key> + <value>1.0</value> </param> <param> - <key>affinity</key> + <key>color3</key> + <value>"green"</value> + </param> + <param> + <key>label3</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>width3</key> + <value>1</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>alpha4</key> + <value>1.0</value> </param> <param> - <key>_coordinate</key> - <value>(64, 336)</value> + <key>color4</key> + <value>"black"</value> </param> <param> - <key>_rotation</key> - <value>180</value> + <key>label4</key> + <value></value> </param> - </block> - <block> - <key>blocks_vector_to_stream</key> <param> - <key>id</key> - <value>blocks_vector_to_stream_1</value> + <key>width4</key> + <value>1</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>alpha5</key> + <value>1.0</value> </param> <param> - <key>type</key> - <value>byte</value> + <key>color5</key> + <value>"cyan"</value> </param> <param> - <key>num_items</key> - <value>1024</value> + <key>label5</key> + <value></value> </param> <param> - <key>vlen</key> + <key>width5</key> <value>1</value> </param> <param> - <key>alias</key> - <value></value> + <key>alpha6</key> + <value>1.0</value> </param> <param> - <key>affinity</key> + <key>color6</key> + <value>"magenta"</value> + </param> + <param> + <key>label6</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>width6</key> + <value>1</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>alpha7</key> + <value>1.0</value> </param> <param> - <key>_coordinate</key> - <value>(72, 451)</value> + <key>color7</key> + <value>"yellow"</value> </param> <param> - <key>_rotation</key> - <value>180</value> + <key>label7</key> + <value></value> </param> - </block> - <block> - <key>dtv_atsc_field_sync_mux</key> <param> - <key>id</key> - <value>dtv_atsc_field_sync_mux_0</value> + <key>width7</key> + <value>1</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>alpha8</key> + <value>1.0</value> </param> <param> - <key>alias</key> + <key>color8</key> + <value>"dark red"</value> + </param> + <param> + <key>label8</key> <value></value> </param> <param> - <key>affinity</key> + <key>width8</key> + <value>1</value> + </param> + <param> + <key>alpha9</key> + <value>1.0</value> + </param> + <param> + <key>color9</key> + <value>"dark green"</value> + </param> + <param> + <key>label9</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>width9</key> + <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(64, 392)</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>name</key> + <value>""</value> </param> - </block> - <block> - <key>blocks_file_source</key> <param> - <key>id</key> - <value>blocks_file_source_0</value> + <key>nconnections</key> + <value>1</value> </param> <param> - <key>_enabled</key> + <key>showports</key> <value>True</value> </param> <param> - <key>file</key> - <value>test.ts</value> + <key>freqhalf</key> + <value>True</value> </param> <param> - <key>type</key> - <value>byte</value> + <key>tr_chan</key> + <value>0</value> </param> <param> - <key>repeat</key> - <value>False</value> + <key>tr_level</key> + <value>0.0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>tr_mode</key> + <value>qtgui.TRIG_MODE_FREE</value> </param> <param> - <key>alias</key> - <value></value> + <key>tr_tag</key> + <value>""</value> </param> <param> - <key>affinity</key> - <value></value> + <key>type</key> + <value>complex</value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>update_time</key> + <value>0.10</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>wintype</key> + <value>firdes.WIN_BLACKMAN_hARRIS</value> </param> <param> - <key>_coordinate</key> - <value>(48, 19)</value> + <key>label</key> + <value>Relative Gain</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>ymax</key> + <value>10</value> + </param> + <param> + <key>ymin</key> + <value>-140</value> + </param> + <param> + <key>units</key> + <value>dB</value> </param> </block> <connection> - <source_block_id>blocks_vector_to_stream_1</source_block_id> - <sink_block_id>blocks_keep_m_in_n_0</sink_block_id> + <source_block_id>blocks_file_source_0</source_block_id> + <sink_block_id>dtv_atsc_pad_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_keep_m_in_n_0</source_block_id> - <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id> + <sink_block_id>dtv_dvbs2_modulator_bc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>blocks_multiply_xx_0</source_block_id> + <source_block_id>blocks_rotator_cc_0</source_block_id> <sink_block_id>fft_filter_xxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>analog_sig_source_x_0</source_block_id> - <sink_block_id>blocks_multiply_xx_0</sink_block_id> + <source_block_id>blocks_throttle_0</source_block_id> + <sink_block_id>blocks_file_sink_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>blocks_multiply_xx_0</sink_block_id> + <source_block_id>blocks_throttle_0</source_block_id> + <sink_block_id>qtgui_freq_sink_x_0</sink_block_id> <source_key>0</source_key> - <sink_key>1</sink_key> + <sink_key>0</sink_key> </connection> <connection> - <source_block_id>fft_filter_xxx_0</source_block_id> - <sink_block_id>blocks_throttle_0</sink_block_id> + <source_block_id>blocks_vector_to_stream_1</source_block_id> + <sink_block_id>blocks_keep_m_in_n_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>blocks_throttle_0</source_block_id> - <sink_block_id>wxgui_fftsink2_0</sink_block_id> + <source_block_id>dtv_atsc_field_sync_mux_0</source_block_id> + <sink_block_id>blocks_vector_to_stream_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>blocks_file_source_0</source_block_id> - <sink_block_id>dtv_atsc_pad_0</sink_block_id> + <source_block_id>dtv_atsc_interleaver_0</source_block_id> + <sink_block_id>dtv_atsc_trellis_encoder_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> @@ -958,26 +1225,20 @@ <sink_key>0</sink_key> </connection> <connection> - <source_block_id>dtv_atsc_interleaver_0</source_block_id> - <sink_block_id>dtv_atsc_trellis_encoder_0</sink_block_id> - <source_key>0</source_key> - <sink_key>0</sink_key> - </connection> - <connection> - <source_block_id>blocks_throttle_0</source_block_id> - <sink_block_id>blocks_file_sink_0</sink_block_id> + <source_block_id>dtv_atsc_trellis_encoder_0</source_block_id> + <sink_block_id>dtv_atsc_field_sync_mux_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>dtv_atsc_trellis_encoder_0</source_block_id> - <sink_block_id>dtv_atsc_field_sync_mux_0</sink_block_id> + <source_block_id>dtv_dvbs2_modulator_bc_0</source_block_id> + <sink_block_id>blocks_rotator_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> - <source_block_id>dtv_atsc_field_sync_mux_0</source_block_id> - <sink_block_id>blocks_vector_to_stream_1</sink_block_id> + <source_block_id>fft_filter_xxx_0</source_block_id> + <sink_block_id>blocks_throttle_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> diff --git a/gr-dtv/examples/uhd_atsc_tx.grc b/gr-dtv/examples/uhd_atsc_tx.grc new file mode 100644 index 0000000000..24b451e474 --- /dev/null +++ b/gr-dtv/examples/uhd_atsc_tx.grc @@ -0,0 +1,3166 @@ +<?xml version='1.0' encoding='utf-8'?> +<?grc format='1' created='3.7.11'?> +<flow_graph> + <timestamp>Sat Dec 20 12:18:33 2014</timestamp> + <block> + <key>options</key> + <param> + <key>author</key> + <value></value> + </param> + <param> + <key>window_size</key> + <value>1280, 1024</value> + </param> + <param> + <key>category</key> + <value>Custom</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>description</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(368, 19)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>generate_options</key> + <value>qt_gui</value> + </param> + <param> + <key>hier_block_src_path</key> + <value>.:</value> + </param> + <param> + <key>id</key> + <value>uhd_atsc_tx</value> + </param> + <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> + <key>qt_qss_theme</key> + <value></value> + </param> + <param> + <key>realtime_scheduling</key> + <value></value> + </param> + <param> + <key>run_command</key> + <value>{python} -u {filename}</value> + </param> + <param> + <key>run_options</key> + <value>prompt</value> + </param> + <param> + <key>run</key> + <value>True</value> + </param> + <param> + <key>thread_safe_setters</key> + <value></value> + </param> + <param> + <key>title</key> + <value></value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(808, 20)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>center_freq</value> + </param> + <param> + <key>value</key> + <value>429e6</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(680, 20)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>pilot_freq</value> + </param> + <param> + <key>value</key> + <value>(6000000.0 - (symbol_rate / 2)) / 2</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(552, 19)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>symbol_rate</value> + </param> + <param> + <key>value</key> + <value>4500000.0 / 286 * 684</value> + </param> + </block> + <block> + <key>variable_qtgui_range</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>value</key> + <value>50</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(808, 88)</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>tx_gain</value> + </param> + <param> + <key>label</key> + <value></value> + </param> + <param> + <key>min_len</key> + <value>200</value> + </param> + <param> + <key>orient</key> + <value>Qt.Horizontal</value> + </param> + <param> + <key>start</key> + <value>0</value> + </param> + <param> + <key>step</key> + <value>1</value> + </param> + <param> + <key>stop</key> + <value>89</value> + </param> + <param> + <key>rangeType</key> + <value>float</value> + </param> + <param> + <key>widget</key> + <value>counter_slider</value> + </param> + </block> + <block> + <key>variable_qtgui_range</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>value</key> + <value>-8</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(552, 88)</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>vga1_gain</value> + </param> + <param> + <key>label</key> + <value></value> + </param> + <param> + <key>min_len</key> + <value>200</value> + </param> + <param> + <key>orient</key> + <value>Qt.Horizontal</value> + </param> + <param> + <key>start</key> + <value>-35</value> + </param> + <param> + <key>step</key> + <value>1</value> + </param> + <param> + <key>stop</key> + <value>-4</value> + </param> + <param> + <key>rangeType</key> + <value>int</value> + </param> + <param> + <key>widget</key> + <value>counter_slider</value> + </param> + </block> + <block> + <key>variable_qtgui_range</key> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>value</key> + <value>10</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(680, 88)</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>vga2_gain</value> + </param> + <param> + <key>label</key> + <value></value> + </param> + <param> + <key>min_len</key> + <value>200</value> + </param> + <param> + <key>orient</key> + <value>Qt.Horizontal</value> + </param> + <param> + <key>start</key> + <value>0</value> + </param> + <param> + <key>step</key> + <value>1</value> + </param> + <param> + <key>stop</key> + <value>25</value> + </param> + <param> + <key>rangeType</key> + <value>int</value> + </param> + <param> + <key>widget</key> + <value>counter_slider</value> + </param> + </block> + <block> + <key>blocks_file_source</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>file</key> + <value>advatsc.ts</value> + </param> + <param> + <key>_coordinate</key> + <value>(64, 19)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>blocks_file_source_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>type</key> + <value>byte</value> + </param> + <param> + <key>repeat</key> + <value>True</value> + </param> + <param> + <key>vlen</key> + <value>1</value> + </param> + </block> + <block> + <key>blocks_keep_m_in_n</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(104, 451)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>blocks_keep_m_in_n_0</value> + </param> + <param> + <key>m</key> + <value>832</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>n</key> + <value>1024</value> + </param> + <param> + <key>type</key> + <value>byte</value> + </param> + <param> + <key>offset</key> + <value>4</value> + </param> + </block> + <block> + <key>blocks_rotator_cc</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(336, 332)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>blocks_rotator_cc_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>phase_inc</key> + <value>((-3000000.0 + pilot_freq) / symbol_rate) * (math.pi * 2)</value> + </param> + </block> + <block> + <key>blocks_vector_to_stream</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(96, 387)</value> + </param> + <param> + <key>_rotation</key> + <value>180</value> + </param> + <param> + <key>id</key> + <value>blocks_vector_to_stream_1</value> + </param> + <param> + <key>type</key> + <value>byte</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>num_items</key> + <value>1024</value> + </param> + <param> + <key>vlen</key> + <value>1</value> + </param> + </block> + <block> + <key>dtv_atsc_field_sync_mux</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(80, 337)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_field_sync_mux_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_interleaver</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(88, 241)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_interleaver_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_pad</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(112, 97)</value> + </param> + <param> + <key>_rotation</key> + <value>180</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_pad_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_randomizer</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(88, 145)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_randomizer_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_rs_encoder</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(88, 193)</value> + </param> + <param> + <key>_rotation</key> + <value>180</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_rs_encoder_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_atsc_trellis_encoder</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(80, 289)</value> + </param> + <param> + <key>_rotation</key> + <value>180</value> + </param> + <param> + <key>id</key> + <value>dtv_atsc_trellis_encoder_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>dtv_dvbs2_modulator_bc</key> + <param> + <key>interpolation</key> + <value>INTERPOLATION_OFF</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>rate1</key> + <value>C1_4</value> + </param> + <param> + <key>rate2</key> + <value>C1_5_MEDIUM</value> + </param> + <param> + <key>rate3</key> + <value>C1_4</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>constellation</key> + <value>MOD_8VSB</value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>framesize</key> + <value>FECFRAME_NORMAL</value> + </param> + <param> + <key>_coordinate</key> + <value>(80, 556)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>dtv_dvbs2_modulator_bc_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + </block> + <block> + <key>fft_filter_xxx</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>decim</key> + <value>1</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(576, 316)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>fft_filter_xxx_0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>nthreads</key> + <value>1</value> + </param> + <param> + <key>samp_delay</key> + <value>0</value> + </param> + <param> + <key>taps</key> + <value>firdes.root_raised_cosine(0.11, symbol_rate, symbol_rate/2, 0.1152, 200)</value> + </param> + <param> + <key>type</key> + <value>ccc</value> + </param> + </block> + <block> + <key>import</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(368, 91)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>import_0</value> + </param> + <param> + <key>import</key> + <value>import math</value> + </param> + </block> + <block> + <key>osmosdr_sink</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>ant0</key> + <value></value> + </param> + <param> + <key>bb_gain0</key> + <value>vga1_gain</value> + </param> + <param> + <key>bw0</key> + <value>6000000</value> + </param> + <param> + <key>corr0</key> + <value>0</value> + </param> + <param> + <key>freq0</key> + <value>center_freq</value> + </param> + <param> + <key>if_gain0</key> + <value>0</value> + </param> + <param> + <key>gain0</key> + <value>vga2_gain</value> + </param> + <param> + <key>ant10</key> + <value></value> + </param> + <param> + <key>bb_gain10</key> + <value>20</value> + </param> + <param> + <key>bw10</key> + <value>0</value> + </param> + <param> + <key>corr10</key> + <value>0</value> + </param> + <param> + <key>freq10</key> + <value>100e6</value> + </param> + <param> + <key>if_gain10</key> + <value>20</value> + </param> + <param> + <key>gain10</key> + <value>10</value> + </param> + <param> + <key>ant11</key> + <value></value> + </param> + <param> + <key>bb_gain11</key> + <value>20</value> + </param> + <param> + <key>bw11</key> + <value>0</value> + </param> + <param> + <key>corr11</key> + <value>0</value> + </param> + <param> + <key>freq11</key> + <value>100e6</value> + </param> + <param> + <key>if_gain11</key> + <value>20</value> + </param> + <param> + <key>gain11</key> + <value>10</value> + </param> + <param> + <key>ant12</key> + <value></value> + </param> + <param> + <key>bb_gain12</key> + <value>20</value> + </param> + <param> + <key>bw12</key> + <value>0</value> + </param> + <param> + <key>corr12</key> + <value>0</value> + </param> + <param> + <key>freq12</key> + <value>100e6</value> + </param> + <param> + <key>if_gain12</key> + <value>20</value> + </param> + <param> + <key>gain12</key> + <value>10</value> + </param> + <param> + <key>ant13</key> + <value></value> + </param> + <param> + <key>bb_gain13</key> + <value>20</value> + </param> + <param> + <key>bw13</key> + <value>0</value> + </param> + <param> + <key>corr13</key> + <value>0</value> + </param> + <param> + <key>freq13</key> + <value>100e6</value> + </param> + <param> + <key>if_gain13</key> + <value>20</value> + </param> + <param> + <key>gain13</key> + <value>10</value> + </param> + <param> + <key>ant14</key> + <value></value> + </param> + <param> + <key>bb_gain14</key> + <value>20</value> + </param> + <param> + <key>bw14</key> + <value>0</value> + </param> + <param> + <key>corr14</key> + <value>0</value> + </param> + <param> + <key>freq14</key> + <value>100e6</value> + </param> + <param> + <key>if_gain14</key> + <value>20</value> + </param> + <param> + <key>gain14</key> + <value>10</value> + </param> + <param> + <key>ant15</key> + <value></value> + </param> + <param> + <key>bb_gain15</key> + <value>20</value> + </param> + <param> + <key>bw15</key> + <value>0</value> + </param> + <param> + <key>corr15</key> + <value>0</value> + </param> + <param> + <key>freq15</key> + <value>100e6</value> + </param> + <param> + <key>if_gain15</key> + <value>20</value> + </param> + <param> + <key>gain15</key> + <value>10</value> + </param> + <param> + <key>ant16</key> + <value></value> + </param> + <param> + <key>bb_gain16</key> + <value>20</value> + </param> + <param> + <key>bw16</key> + <value>0</value> + </param> + <param> + <key>corr16</key> + <value>0</value> + </param> + <param> + <key>freq16</key> + <value>100e6</value> + </param> + <param> + <key>if_gain16</key> + <value>20</value> + </param> + <param> + <key>gain16</key> + <value>10</value> + </param> + <param> + <key>ant17</key> + <value></value> + </param> + <param> + <key>bb_gain17</key> + <value>20</value> + </param> + <param> + <key>bw17</key> + <value>0</value> + </param> + <param> + <key>corr17</key> + <value>0</value> + </param> + <param> + <key>freq17</key> + <value>100e6</value> + </param> + <param> + <key>if_gain17</key> + <value>20</value> + </param> + <param> + <key>gain17</key> + <value>10</value> + </param> + <param> + <key>ant18</key> + <value></value> + </param> + <param> + <key>bb_gain18</key> + <value>20</value> + </param> + <param> + <key>bw18</key> + <value>0</value> + </param> + <param> + <key>corr18</key> + <value>0</value> + </param> + <param> + <key>freq18</key> + <value>100e6</value> + </param> + <param> + <key>if_gain18</key> + <value>20</value> + </param> + <param> + <key>gain18</key> + <value>10</value> + </param> + <param> + <key>ant19</key> + <value></value> + </param> + <param> + <key>bb_gain19</key> + <value>20</value> + </param> + <param> + <key>bw19</key> + <value>0</value> + </param> + <param> + <key>corr19</key> + <value>0</value> + </param> + <param> + <key>freq19</key> + <value>100e6</value> + </param> + <param> + <key>if_gain19</key> + <value>20</value> + </param> + <param> + <key>gain19</key> + <value>10</value> + </param> + <param> + <key>ant1</key> + <value></value> + </param> + <param> + <key>bb_gain1</key> + <value>20</value> + </param> + <param> + <key>bw1</key> + <value>0</value> + </param> + <param> + <key>corr1</key> + <value>0</value> + </param> + <param> + <key>freq1</key> + <value>100e6</value> + </param> + <param> + <key>if_gain1</key> + <value>20</value> + </param> + <param> + <key>gain1</key> + <value>10</value> + </param> + <param> + <key>ant20</key> + <value></value> + </param> + <param> + <key>bb_gain20</key> + <value>20</value> + </param> + <param> + <key>bw20</key> + <value>0</value> + </param> + <param> + <key>corr20</key> + <value>0</value> + </param> + <param> + <key>freq20</key> + <value>100e6</value> + </param> + <param> + <key>if_gain20</key> + <value>20</value> + </param> + <param> + <key>gain20</key> + <value>10</value> + </param> + <param> + <key>ant21</key> + <value></value> + </param> + <param> + <key>bb_gain21</key> + <value>20</value> + </param> + <param> + <key>bw21</key> + <value>0</value> + </param> + <param> + <key>corr21</key> + <value>0</value> + </param> + <param> + <key>freq21</key> + <value>100e6</value> + </param> + <param> + <key>if_gain21</key> + <value>20</value> + </param> + <param> + <key>gain21</key> + <value>10</value> + </param> + <param> + <key>ant22</key> + <value></value> + </param> + <param> + <key>bb_gain22</key> + <value>20</value> + </param> + <param> + <key>bw22</key> + <value>0</value> + </param> + <param> + <key>corr22</key> + <value>0</value> + </param> + <param> + <key>freq22</key> + <value>100e6</value> + </param> + <param> + <key>if_gain22</key> + <value>20</value> + </param> + <param> + <key>gain22</key> + <value>10</value> + </param> + <param> + <key>ant23</key> + <value></value> + </param> + <param> + <key>bb_gain23</key> + <value>20</value> + </param> + <param> + <key>bw23</key> + <value>0</value> + </param> + <param> + <key>corr23</key> + <value>0</value> + </param> + <param> + <key>freq23</key> + <value>100e6</value> + </param> + <param> + <key>if_gain23</key> + <value>20</value> + </param> + <param> + <key>gain23</key> + <value>10</value> + </param> + <param> + <key>ant24</key> + <value></value> + </param> + <param> + <key>bb_gain24</key> + <value>20</value> + </param> + <param> + <key>bw24</key> + <value>0</value> + </param> + <param> + <key>corr24</key> + <value>0</value> + </param> + <param> + <key>freq24</key> + <value>100e6</value> + </param> + <param> + <key>if_gain24</key> + <value>20</value> + </param> + <param> + <key>gain24</key> + <value>10</value> + </param> + <param> + <key>ant25</key> + <value></value> + </param> + <param> + <key>bb_gain25</key> + <value>20</value> + </param> + <param> + <key>bw25</key> + <value>0</value> + </param> + <param> + <key>corr25</key> + <value>0</value> + </param> + <param> + <key>freq25</key> + <value>100e6</value> + </param> + <param> + <key>if_gain25</key> + <value>20</value> + </param> + <param> + <key>gain25</key> + <value>10</value> + </param> + <param> + <key>ant26</key> + <value></value> + </param> + <param> + <key>bb_gain26</key> + <value>20</value> + </param> + <param> + <key>bw26</key> + <value>0</value> + </param> + <param> + <key>corr26</key> + <value>0</value> + </param> + <param> + <key>freq26</key> + <value>100e6</value> + </param> + <param> + <key>if_gain26</key> + <value>20</value> + </param> + <param> + <key>gain26</key> + <value>10</value> + </param> + <param> + <key>ant27</key> + <value></value> + </param> + <param> + <key>bb_gain27</key> + <value>20</value> + </param> + <param> + <key>bw27</key> + <value>0</value> + </param> + <param> + <key>corr27</key> + <value>0</value> + </param> + <param> + <key>freq27</key> + <value>100e6</value> + </param> + <param> + <key>if_gain27</key> + <value>20</value> + </param> + <param> + <key>gain27</key> + <value>10</value> + </param> + <param> + <key>ant28</key> + <value></value> + </param> + <param> + <key>bb_gain28</key> + <value>20</value> + </param> + <param> + <key>bw28</key> + <value>0</value> + </param> + <param> + <key>corr28</key> + <value>0</value> + </param> + <param> + <key>freq28</key> + <value>100e6</value> + </param> + <param> + <key>if_gain28</key> + <value>20</value> + </param> + <param> + <key>gain28</key> + <value>10</value> + </param> + <param> + <key>ant29</key> + <value></value> + </param> + <param> + <key>bb_gain29</key> + <value>20</value> + </param> + <param> + <key>bw29</key> + <value>0</value> + </param> + <param> + <key>corr29</key> + <value>0</value> + </param> + <param> + <key>freq29</key> + <value>100e6</value> + </param> + <param> + <key>if_gain29</key> + <value>20</value> + </param> + <param> + <key>gain29</key> + <value>10</value> + </param> + <param> + <key>ant2</key> + <value></value> + </param> + <param> + <key>bb_gain2</key> + <value>20</value> + </param> + <param> + <key>bw2</key> + <value>0</value> + </param> + <param> + <key>corr2</key> + <value>0</value> + </param> + <param> + <key>freq2</key> + <value>100e6</value> + </param> + <param> + <key>if_gain2</key> + <value>20</value> + </param> + <param> + <key>gain2</key> + <value>10</value> + </param> + <param> + <key>ant30</key> + <value></value> + </param> + <param> + <key>bb_gain30</key> + <value>20</value> + </param> + <param> + <key>bw30</key> + <value>0</value> + </param> + <param> + <key>corr30</key> + <value>0</value> + </param> + <param> + <key>freq30</key> + <value>100e6</value> + </param> + <param> + <key>if_gain30</key> + <value>20</value> + </param> + <param> + <key>gain30</key> + <value>10</value> + </param> + <param> + <key>ant31</key> + <value></value> + </param> + <param> + <key>bb_gain31</key> + <value>20</value> + </param> + <param> + <key>bw31</key> + <value>0</value> + </param> + <param> + <key>corr31</key> + <value>0</value> + </param> + <param> + <key>freq31</key> + <value>100e6</value> + </param> + <param> + <key>if_gain31</key> + <value>20</value> + </param> + <param> + <key>gain31</key> + <value>10</value> + </param> + <param> + <key>ant3</key> + <value></value> + </param> + <param> + <key>bb_gain3</key> + <value>20</value> + </param> + <param> + <key>bw3</key> + <value>0</value> + </param> + <param> + <key>corr3</key> + <value>0</value> + </param> + <param> + <key>freq3</key> + <value>100e6</value> + </param> + <param> + <key>if_gain3</key> + <value>20</value> + </param> + <param> + <key>gain3</key> + <value>10</value> + </param> + <param> + <key>ant4</key> + <value></value> + </param> + <param> + <key>bb_gain4</key> + <value>20</value> + </param> + <param> + <key>bw4</key> + <value>0</value> + </param> + <param> + <key>corr4</key> + <value>0</value> + </param> + <param> + <key>freq4</key> + <value>100e6</value> + </param> + <param> + <key>if_gain4</key> + <value>20</value> + </param> + <param> + <key>gain4</key> + <value>10</value> + </param> + <param> + <key>ant5</key> + <value></value> + </param> + <param> + <key>bb_gain5</key> + <value>20</value> + </param> + <param> + <key>bw5</key> + <value>0</value> + </param> + <param> + <key>corr5</key> + <value>0</value> + </param> + <param> + <key>freq5</key> + <value>100e6</value> + </param> + <param> + <key>if_gain5</key> + <value>20</value> + </param> + <param> + <key>gain5</key> + <value>10</value> + </param> + <param> + <key>ant6</key> + <value></value> + </param> + <param> + <key>bb_gain6</key> + <value>20</value> + </param> + <param> + <key>bw6</key> + <value>0</value> + </param> + <param> + <key>corr6</key> + <value>0</value> + </param> + <param> + <key>freq6</key> + <value>100e6</value> + </param> + <param> + <key>if_gain6</key> + <value>20</value> + </param> + <param> + <key>gain6</key> + <value>10</value> + </param> + <param> + <key>ant7</key> + <value></value> + </param> + <param> + <key>bb_gain7</key> + <value>20</value> + </param> + <param> + <key>bw7</key> + <value>0</value> + </param> + <param> + <key>corr7</key> + <value>0</value> + </param> + <param> + <key>freq7</key> + <value>100e6</value> + </param> + <param> + <key>if_gain7</key> + <value>20</value> + </param> + <param> + <key>gain7</key> + <value>10</value> + </param> + <param> + <key>ant8</key> + <value></value> + </param> + <param> + <key>bb_gain8</key> + <value>20</value> + </param> + <param> + <key>bw8</key> + <value>0</value> + </param> + <param> + <key>corr8</key> + <value>0</value> + </param> + <param> + <key>freq8</key> + <value>100e6</value> + </param> + <param> + <key>if_gain8</key> + <value>20</value> + </param> + <param> + <key>gain8</key> + <value>10</value> + </param> + <param> + <key>ant9</key> + <value></value> + </param> + <param> + <key>bb_gain9</key> + <value>20</value> + </param> + <param> + <key>bw9</key> + <value>0</value> + </param> + <param> + <key>corr9</key> + <value>0</value> + </param> + <param> + <key>freq9</key> + <value>100e6</value> + </param> + <param> + <key>if_gain9</key> + <value>20</value> + </param> + <param> + <key>gain9</key> + <value>10</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>args</key> + <value>bladerf=0,buffers=128,buflen=32768</value> + </param> + <param> + <key>_enabled</key> + <value>0</value> + </param> + <param> + <key>_coordinate</key> + <value>(944, 468)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>osmosdr_sink_0</value> + </param> + <param> + <key>type</key> + <value>fc32</value> + </param> + <param> + <key>clock_source0</key> + <value></value> + </param> + <param> + <key>time_source0</key> + <value></value> + </param> + <param> + <key>clock_source1</key> + <value></value> + </param> + <param> + <key>time_source1</key> + <value></value> + </param> + <param> + <key>clock_source2</key> + <value></value> + </param> + <param> + <key>time_source2</key> + <value></value> + </param> + <param> + <key>clock_source3</key> + <value></value> + </param> + <param> + <key>time_source3</key> + <value></value> + </param> + <param> + <key>clock_source4</key> + <value></value> + </param> + <param> + <key>time_source4</key> + <value></value> + </param> + <param> + <key>clock_source5</key> + <value></value> + </param> + <param> + <key>time_source5</key> + <value></value> + </param> + <param> + <key>clock_source6</key> + <value></value> + </param> + <param> + <key>time_source6</key> + <value></value> + </param> + <param> + <key>clock_source7</key> + <value></value> + </param> + <param> + <key>time_source7</key> + <value></value> + </param> + <param> + <key>nchan</key> + <value>1</value> + </param> + <param> + <key>num_mboards</key> + <value>1</value> + </param> + <param> + <key>sample_rate</key> + <value>symbol_rate</value> + </param> + <param> + <key>sync</key> + <value></value> + </param> + </block> + <block> + <key>qtgui_freq_sink_x</key> + <param> + <key>autoscale</key> + <value>False</value> + </param> + <param> + <key>average</key> + <value>0.1</value> + </param> + <param> + <key>axislabels</key> + <value>True</value> + </param> + <param> + <key>bw</key> + <value>symbol_rate</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>fc</key> + <value>center_freq</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>ctrlpanel</key> + <value>False</value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>fftsize</key> + <value>1024</value> + </param> + <param> + <key>_coordinate</key> + <value>(944, 364)</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>grid</key> + <value>True</value> + </param> + <param> + <key>id</key> + <value>qtgui_freq_sink_x_0</value> + </param> + <param> + <key>legend</key> + <value>True</value> + </param> + <param> + <key>alpha1</key> + <value>1.0</value> + </param> + <param> + <key>color1</key> + <value>"blue"</value> + </param> + <param> + <key>label1</key> + <value></value> + </param> + <param> + <key>width1</key> + <value>1</value> + </param> + <param> + <key>alpha10</key> + <value>1.0</value> + </param> + <param> + <key>color10</key> + <value>"dark blue"</value> + </param> + <param> + <key>label10</key> + <value></value> + </param> + <param> + <key>width10</key> + <value>1</value> + </param> + <param> + <key>alpha2</key> + <value>1.0</value> + </param> + <param> + <key>color2</key> + <value>"red"</value> + </param> + <param> + <key>label2</key> + <value></value> + </param> + <param> + <key>width2</key> + <value>1</value> + </param> + <param> + <key>alpha3</key> + <value>1.0</value> + </param> + <param> + <key>color3</key> + <value>"green"</value> + </param> + <param> + <key>label3</key> + <value></value> + </param> + <param> + <key>width3</key> + <value>1</value> + </param> + <param> + <key>alpha4</key> + <value>1.0</value> + </param> + <param> + <key>color4</key> + <value>"black"</value> + </param> + <param> + <key>label4</key> + <value></value> + </param> + <param> + <key>width4</key> + <value>1</value> + </param> + <param> + <key>alpha5</key> + <value>1.0</value> + </param> + <param> + <key>color5</key> + <value>"cyan"</value> + </param> + <param> + <key>label5</key> + <value></value> + </param> + <param> + <key>width5</key> + <value>1</value> + </param> + <param> + <key>alpha6</key> + <value>1.0</value> + </param> + <param> + <key>color6</key> + <value>"magenta"</value> + </param> + <param> + <key>label6</key> + <value></value> + </param> + <param> + <key>width6</key> + <value>1</value> + </param> + <param> + <key>alpha7</key> + <value>1.0</value> + </param> + <param> + <key>color7</key> + <value>"yellow"</value> + </param> + <param> + <key>label7</key> + <value></value> + </param> + <param> + <key>width7</key> + <value>1</value> + </param> + <param> + <key>alpha8</key> + <value>1.0</value> + </param> + <param> + <key>color8</key> + <value>"dark red"</value> + </param> + <param> + <key>label8</key> + <value></value> + </param> + <param> + <key>width8</key> + <value>1</value> + </param> + <param> + <key>alpha9</key> + <value>1.0</value> + </param> + <param> + <key>color9</key> + <value>"dark green"</value> + </param> + <param> + <key>label9</key> + <value></value> + </param> + <param> + <key>width9</key> + <value>1</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>name</key> + <value>""</value> + </param> + <param> + <key>nconnections</key> + <value>1</value> + </param> + <param> + <key>showports</key> + <value>True</value> + </param> + <param> + <key>freqhalf</key> + <value>True</value> + </param> + <param> + <key>tr_chan</key> + <value>0</value> + </param> + <param> + <key>tr_level</key> + <value>0.0</value> + </param> + <param> + <key>tr_mode</key> + <value>qtgui.TRIG_MODE_FREE</value> + </param> + <param> + <key>tr_tag</key> + <value>""</value> + </param> + <param> + <key>type</key> + <value>complex</value> + </param> + <param> + <key>update_time</key> + <value>0.10</value> + </param> + <param> + <key>wintype</key> + <value>firdes.WIN_BLACKMAN_hARRIS</value> + </param> + <param> + <key>label</key> + <value>Relative Gain</value> + </param> + <param> + <key>ymax</key> + <value>10</value> + </param> + <param> + <key>ymin</key> + <value>-140</value> + </param> + <param> + <key>units</key> + <value>dB</value> + </param> + </block> + <block> + <key>uhd_usrp_sink</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>ant0</key> + <value></value> + </param> + <param> + <key>bw0</key> + <value>0</value> + </param> + <param> + <key>center_freq0</key> + <value>center_freq</value> + </param> + <param> + <key>norm_gain0</key> + <value>False</value> + </param> + <param> + <key>gain0</key> + <value>50</value> + </param> + <param> + <key>ant10</key> + <value></value> + </param> + <param> + <key>bw10</key> + <value>0</value> + </param> + <param> + <key>center_freq10</key> + <value>0</value> + </param> + <param> + <key>norm_gain10</key> + <value>False</value> + </param> + <param> + <key>gain10</key> + <value>0</value> + </param> + <param> + <key>ant11</key> + <value></value> + </param> + <param> + <key>bw11</key> + <value>0</value> + </param> + <param> + <key>center_freq11</key> + <value>0</value> + </param> + <param> + <key>norm_gain11</key> + <value>False</value> + </param> + <param> + <key>gain11</key> + <value>0</value> + </param> + <param> + <key>ant12</key> + <value></value> + </param> + <param> + <key>bw12</key> + <value>0</value> + </param> + <param> + <key>center_freq12</key> + <value>0</value> + </param> + <param> + <key>norm_gain12</key> + <value>False</value> + </param> + <param> + <key>gain12</key> + <value>0</value> + </param> + <param> + <key>ant13</key> + <value></value> + </param> + <param> + <key>bw13</key> + <value>0</value> + </param> + <param> + <key>center_freq13</key> + <value>0</value> + </param> + <param> + <key>norm_gain13</key> + <value>False</value> + </param> + <param> + <key>gain13</key> + <value>0</value> + </param> + <param> + <key>ant14</key> + <value></value> + </param> + <param> + <key>bw14</key> + <value>0</value> + </param> + <param> + <key>center_freq14</key> + <value>0</value> + </param> + <param> + <key>norm_gain14</key> + <value>False</value> + </param> + <param> + <key>gain14</key> + <value>0</value> + </param> + <param> + <key>ant15</key> + <value></value> + </param> + <param> + <key>bw15</key> + <value>0</value> + </param> + <param> + <key>center_freq15</key> + <value>0</value> + </param> + <param> + <key>norm_gain15</key> + <value>False</value> + </param> + <param> + <key>gain15</key> + <value>0</value> + </param> + <param> + <key>ant16</key> + <value></value> + </param> + <param> + <key>bw16</key> + <value>0</value> + </param> + <param> + <key>center_freq16</key> + <value>0</value> + </param> + <param> + <key>norm_gain16</key> + <value>False</value> + </param> + <param> + <key>gain16</key> + <value>0</value> + </param> + <param> + <key>ant17</key> + <value></value> + </param> + <param> + <key>bw17</key> + <value>0</value> + </param> + <param> + <key>center_freq17</key> + <value>0</value> + </param> + <param> + <key>norm_gain17</key> + <value>False</value> + </param> + <param> + <key>gain17</key> + <value>0</value> + </param> + <param> + <key>ant18</key> + <value></value> + </param> + <param> + <key>bw18</key> + <value>0</value> + </param> + <param> + <key>center_freq18</key> + <value>0</value> + </param> + <param> + <key>norm_gain18</key> + <value>False</value> + </param> + <param> + <key>gain18</key> + <value>0</value> + </param> + <param> + <key>ant19</key> + <value></value> + </param> + <param> + <key>bw19</key> + <value>0</value> + </param> + <param> + <key>center_freq19</key> + <value>0</value> + </param> + <param> + <key>norm_gain19</key> + <value>False</value> + </param> + <param> + <key>gain19</key> + <value>0</value> + </param> + <param> + <key>ant1</key> + <value></value> + </param> + <param> + <key>bw1</key> + <value>0</value> + </param> + <param> + <key>center_freq1</key> + <value>0</value> + </param> + <param> + <key>norm_gain1</key> + <value>False</value> + </param> + <param> + <key>gain1</key> + <value>0</value> + </param> + <param> + <key>ant20</key> + <value></value> + </param> + <param> + <key>bw20</key> + <value>0</value> + </param> + <param> + <key>center_freq20</key> + <value>0</value> + </param> + <param> + <key>norm_gain20</key> + <value>False</value> + </param> + <param> + <key>gain20</key> + <value>0</value> + </param> + <param> + <key>ant21</key> + <value></value> + </param> + <param> + <key>bw21</key> + <value>0</value> + </param> + <param> + <key>center_freq21</key> + <value>0</value> + </param> + <param> + <key>norm_gain21</key> + <value>False</value> + </param> + <param> + <key>gain21</key> + <value>0</value> + </param> + <param> + <key>ant22</key> + <value></value> + </param> + <param> + <key>bw22</key> + <value>0</value> + </param> + <param> + <key>center_freq22</key> + <value>0</value> + </param> + <param> + <key>norm_gain22</key> + <value>False</value> + </param> + <param> + <key>gain22</key> + <value>0</value> + </param> + <param> + <key>ant23</key> + <value></value> + </param> + <param> + <key>bw23</key> + <value>0</value> + </param> + <param> + <key>center_freq23</key> + <value>0</value> + </param> + <param> + <key>norm_gain23</key> + <value>False</value> + </param> + <param> + <key>gain23</key> + <value>0</value> + </param> + <param> + <key>ant24</key> + <value></value> + </param> + <param> + <key>bw24</key> + <value>0</value> + </param> + <param> + <key>center_freq24</key> + <value>0</value> + </param> + <param> + <key>norm_gain24</key> + <value>False</value> + </param> + <param> + <key>gain24</key> + <value>0</value> + </param> + <param> + <key>ant25</key> + <value></value> + </param> + <param> + <key>bw25</key> + <value>0</value> + </param> + <param> + <key>center_freq25</key> + <value>0</value> + </param> + <param> + <key>norm_gain25</key> + <value>False</value> + </param> + <param> + <key>gain25</key> + <value>0</value> + </param> + <param> + <key>ant26</key> + <value></value> + </param> + <param> + <key>bw26</key> + <value>0</value> + </param> + <param> + <key>center_freq26</key> + <value>0</value> + </param> + <param> + <key>norm_gain26</key> + <value>False</value> + </param> + <param> + <key>gain26</key> + <value>0</value> + </param> + <param> + <key>ant27</key> + <value></value> + </param> + <param> + <key>bw27</key> + <value>0</value> + </param> + <param> + <key>center_freq27</key> + <value>0</value> + </param> + <param> + <key>norm_gain27</key> + <value>False</value> + </param> + <param> + <key>gain27</key> + <value>0</value> + </param> + <param> + <key>ant28</key> + <value></value> + </param> + <param> + <key>bw28</key> + <value>0</value> + </param> + <param> + <key>center_freq28</key> + <value>0</value> + </param> + <param> + <key>norm_gain28</key> + <value>False</value> + </param> + <param> + <key>gain28</key> + <value>0</value> + </param> + <param> + <key>ant29</key> + <value></value> + </param> + <param> + <key>bw29</key> + <value>0</value> + </param> + <param> + <key>center_freq29</key> + <value>0</value> + </param> + <param> + <key>norm_gain29</key> + <value>False</value> + </param> + <param> + <key>gain29</key> + <value>0</value> + </param> + <param> + <key>ant2</key> + <value></value> + </param> + <param> + <key>bw2</key> + <value>0</value> + </param> + <param> + <key>center_freq2</key> + <value>0</value> + </param> + <param> + <key>norm_gain2</key> + <value>False</value> + </param> + <param> + <key>gain2</key> + <value>0</value> + </param> + <param> + <key>ant30</key> + <value></value> + </param> + <param> + <key>bw30</key> + <value>0</value> + </param> + <param> + <key>center_freq30</key> + <value>0</value> + </param> + <param> + <key>norm_gain30</key> + <value>False</value> + </param> + <param> + <key>gain30</key> + <value>0</value> + </param> + <param> + <key>ant31</key> + <value></value> + </param> + <param> + <key>bw31</key> + <value>0</value> + </param> + <param> + <key>center_freq31</key> + <value>0</value> + </param> + <param> + <key>norm_gain31</key> + <value>False</value> + </param> + <param> + <key>gain31</key> + <value>0</value> + </param> + <param> + <key>ant3</key> + <value></value> + </param> + <param> + <key>bw3</key> + <value>0</value> + </param> + <param> + <key>center_freq3</key> + <value>0</value> + </param> + <param> + <key>norm_gain3</key> + <value>False</value> + </param> + <param> + <key>gain3</key> + <value>0</value> + </param> + <param> + <key>ant4</key> + <value></value> + </param> + <param> + <key>bw4</key> + <value>0</value> + </param> + <param> + <key>center_freq4</key> + <value>0</value> + </param> + <param> + <key>norm_gain4</key> + <value>False</value> + </param> + <param> + <key>gain4</key> + <value>0</value> + </param> + <param> + <key>ant5</key> + <value></value> + </param> + <param> + <key>bw5</key> + <value>0</value> + </param> + <param> + <key>center_freq5</key> + <value>0</value> + </param> + <param> + <key>norm_gain5</key> + <value>False</value> + </param> + <param> + <key>gain5</key> + <value>0</value> + </param> + <param> + <key>ant6</key> + <value></value> + </param> + <param> + <key>bw6</key> + <value>0</value> + </param> + <param> + <key>center_freq6</key> + <value>0</value> + </param> + <param> + <key>norm_gain6</key> + <value>False</value> + </param> + <param> + <key>gain6</key> + <value>0</value> + </param> + <param> + <key>ant7</key> + <value></value> + </param> + <param> + <key>bw7</key> + <value>0</value> + </param> + <param> + <key>center_freq7</key> + <value>0</value> + </param> + <param> + <key>norm_gain7</key> + <value>False</value> + </param> + <param> + <key>gain7</key> + <value>0</value> + </param> + <param> + <key>ant8</key> + <value></value> + </param> + <param> + <key>bw8</key> + <value>0</value> + </param> + <param> + <key>center_freq8</key> + <value>0</value> + </param> + <param> + <key>norm_gain8</key> + <value>False</value> + </param> + <param> + <key>gain8</key> + <value>0</value> + </param> + <param> + <key>ant9</key> + <value></value> + </param> + <param> + <key>bw9</key> + <value>0</value> + </param> + <param> + <key>center_freq9</key> + <value>0</value> + </param> + <param> + <key>norm_gain9</key> + <value>False</value> + </param> + <param> + <key>gain9</key> + <value>0</value> + </param> + <param> + <key>clock_rate</key> + <value>0.0</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>dev_addr</key> + <value>"send_frame_size=65536,num_send_frames=128,master_clock_rate=" + str(symbol_rate*4)</value> + </param> + <param> + <key>dev_args</key> + <value>""</value> + </param> + <param> + <key>_enabled</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(944, 232)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>uhd_usrp_sink_0</value> + </param> + <param> + <key>type</key> + <value>fc32</value> + </param> + <param> + <key>clock_source0</key> + <value></value> + </param> + <param> + <key>sd_spec0</key> + <value></value> + </param> + <param> + <key>time_source0</key> + <value></value> + </param> + <param> + <key>clock_source1</key> + <value></value> + </param> + <param> + <key>sd_spec1</key> + <value></value> + </param> + <param> + <key>time_source1</key> + <value></value> + </param> + <param> + <key>clock_source2</key> + <value></value> + </param> + <param> + <key>sd_spec2</key> + <value></value> + </param> + <param> + <key>time_source2</key> + <value></value> + </param> + <param> + <key>clock_source3</key> + <value></value> + </param> + <param> + <key>sd_spec3</key> + <value></value> + </param> + <param> + <key>time_source3</key> + <value></value> + </param> + <param> + <key>clock_source4</key> + <value></value> + </param> + <param> + <key>sd_spec4</key> + <value></value> + </param> + <param> + <key>time_source4</key> + <value></value> + </param> + <param> + <key>clock_source5</key> + <value></value> + </param> + <param> + <key>sd_spec5</key> + <value></value> + </param> + <param> + <key>time_source5</key> + <value></value> + </param> + <param> + <key>clock_source6</key> + <value></value> + </param> + <param> + <key>sd_spec6</key> + <value></value> + </param> + <param> + <key>time_source6</key> + <value></value> + </param> + <param> + <key>clock_source7</key> + <value></value> + </param> + <param> + <key>sd_spec7</key> + <value></value> + </param> + <param> + <key>time_source7</key> + <value></value> + </param> + <param> + <key>nchan</key> + <value>1</value> + </param> + <param> + <key>num_mboards</key> + <value>1</value> + </param> + <param> + <key>samp_rate</key> + <value>symbol_rate</value> + </param> + <param> + <key>hide_cmd_port</key> + <value>False</value> + </param> + <param> + <key>hide_lo_controls</key> + <value>True</value> + </param> + <param> + <key>stream_args</key> + <value></value> + </param> + <param> + <key>stream_chans</key> + <value>[]</value> + </param> + <param> + <key>sync</key> + <value></value> + </param> + <param> + <key>len_tag_name</key> + <value></value> + </param> + <param> + <key>otw</key> + <value></value> + </param> + </block> + <connection> + <source_block_id>blocks_file_source_0</source_block_id> + <sink_block_id>dtv_atsc_pad_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>blocks_keep_m_in_n_0</source_block_id> + <sink_block_id>dtv_dvbs2_modulator_bc_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>blocks_rotator_cc_0</source_block_id> + <sink_block_id>fft_filter_xxx_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>blocks_vector_to_stream_1</source_block_id> + <sink_block_id>blocks_keep_m_in_n_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_field_sync_mux_0</source_block_id> + <sink_block_id>blocks_vector_to_stream_1</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_interleaver_0</source_block_id> + <sink_block_id>dtv_atsc_trellis_encoder_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_pad_0</source_block_id> + <sink_block_id>dtv_atsc_randomizer_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_randomizer_0</source_block_id> + <sink_block_id>dtv_atsc_rs_encoder_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_rs_encoder_0</source_block_id> + <sink_block_id>dtv_atsc_interleaver_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_atsc_trellis_encoder_0</source_block_id> + <sink_block_id>dtv_atsc_field_sync_mux_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>dtv_dvbs2_modulator_bc_0</source_block_id> + <sink_block_id>blocks_rotator_cc_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>fft_filter_xxx_0</source_block_id> + <sink_block_id>osmosdr_sink_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>fft_filter_xxx_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>fft_filter_xxx_0</source_block_id> + <sink_block_id>uhd_usrp_sink_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> +</flow_graph> diff --git a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml b/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml index 5f848ec82d..28284169fd 100644 --- a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml +++ b/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml @@ -21,6 +21,7 @@ $constellation.val, $interpolation.val)</make> <name>FECFRAME size</name> <key>framesize</key> <type>enum</type> + <hide>$constellation.hide_dvb</hide> <option> <name>Normal</name> <key>FECFRAME_NORMAL</key> @@ -50,7 +51,7 @@ $constellation.val, $interpolation.val)</make> <name>Code rate</name> <key>rate1</key> <type>enum</type> - <hide>$framesize.hide_normal</hide> + <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' then $constellation.hide_dvb else $framesize.hide_normal</hide> <option> <name>1/4</name> <key>C1_4</key> @@ -231,7 +232,7 @@ $constellation.val, $interpolation.val)</make> <name>Code rate</name> <key>rate2</key> <type>enum</type> - <hide>$framesize.hide_medium</hide> + <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' then $constellation.hide_dvb else $framesize.hide_medium</hide> <option> <name>1/5</name> <key>C1_5_MEDIUM</key> @@ -252,7 +253,7 @@ $constellation.val, $interpolation.val)</make> <name>Code rate</name> <key>rate3</key> <type>enum</type> - <hide>$framesize.hide_short</hide> + <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' then $constellation.hide_dvb else $framesize.hide_short</hide> <option> <name>1/4</name> <key>C1_4</key> @@ -372,81 +373,103 @@ $constellation.val, $interpolation.val)</make> <name>QPSK</name> <key>MOD_QPSK</key> <opt>val:dtv.MOD_QPSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>8PSK</name> <key>MOD_8PSK</key> <opt>val:dtv.MOD_8PSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>8APSK</name> <key>MOD_8APSK</key> <opt>val:dtv.MOD_8APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>16APSK</name> <key>MOD_16APSK</key> <opt>val:dtv.MOD_16APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>8+8APSK</name> <key>MOD_8_8APSK</key> <opt>val:dtv.MOD_8_8APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>32APSK</name> <key>MOD_32APSK</key> <opt>val:dtv.MOD_32APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>4+12+16rbAPSK</name> <key>MOD_4_12_16APSK</key> <opt>val:dtv.MOD_4_12_16APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>4+8+4+16APSK</name> <key>MOD_4_8_4_16APSK</key> <opt>val:dtv.MOD_4_8_4_16APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>64APSK</name> <key>MOD_64APSK</key> <opt>val:dtv.MOD_64APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>8+16+20+20APSK</name> <key>MOD_8_16_20_20APSK</key> <opt>val:dtv.MOD_8_16_20_20APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>4+12+20+28APSK</name> <key>MOD_4_12_20_28APSK</key> <opt>val:dtv.MOD_4_12_20_28APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>128APSK</name> <key>MOD_128APSK</key> <opt>val:dtv.MOD_128APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>256APSK</name> <key>MOD_256APSK</key> <opt>val:dtv.MOD_256APSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>64QAM (ITU-T J.83B)</name> <key>MOD_64QAM</key> <opt>val:dtv.MOD_64QAM</opt> + <opt>hide_dvb:all</opt> </option> <option> <name>PI/2 BPSK</name> <key>MOD_BPSK</key> <opt>val:dtv.MOD_BPSK</opt> + <opt>hide_dvb:</opt> </option> <option> <name>PI/2 BPSK-SF2</name> <key>MOD_BPSK_SF2</key> <opt>val:dtv.MOD_BPSK_SF2</opt> + <opt>hide_dvb:</opt> + </option> + <option> + <name>8VSB (ATSC)</name> + <key>MOD_8VSB</key> + <opt>val:dtv.MOD_8VSB</opt> + <opt>hide_dvb:all</opt> </option> </param> <param> diff --git a/gr-dtv/include/gnuradio/dtv/dvb_config.h b/gr-dtv/include/gnuradio/dtv/dvb_config.h index 601fd5c569..68010e43b6 100644 --- a/gr-dtv/include/gnuradio/dtv/dvb_config.h +++ b/gr-dtv/include/gnuradio/dtv/dvb_config.h @@ -107,6 +107,7 @@ namespace gr { MOD_256APSK, MOD_BPSK, MOD_BPSK_SF2, + MOD_8VSB, MOD_OTHER, }; diff --git a/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc b/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc index 844359333d..ca4c6a6099 100644 --- a/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc +++ b/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc @@ -1732,6 +1732,16 @@ namespace gr { m_64apsk[62] = gr_complex( 7.0, -7.0); m_64apsk[63] = gr_complex( 7.0, 7.0); break; + case MOD_8VSB: + m_8psk[0] = gr_complex(-7.0 + 1.25, 0.0); + m_8psk[1] = gr_complex(-5.0 + 1.25, 0.0); + m_8psk[2] = gr_complex(-3.0 + 1.25, 0.0); + m_8psk[3] = gr_complex(-1.0 + 1.25, 0.0); + m_8psk[4] = gr_complex( 1.0 + 1.25, 0.0); + m_8psk[5] = gr_complex( 3.0 + 1.25, 0.0); + m_8psk[6] = gr_complex( 5.0 + 1.25, 0.0); + m_8psk[7] = gr_complex( 7.0 + 1.25, 0.0); + break; default: m_qpsk[0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); m_qpsk[1] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); @@ -1791,6 +1801,7 @@ namespace gr { } break; case MOD_8PSK: + case MOD_8VSB: case MOD_8APSK: for (int i = 0; i < noutput_items; i++) { index = *in++; |