aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-11-12 20:17:16 +0100
committerNao Pross <np@0hm.ch>2021-11-12 20:17:16 +0100
commit0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9 (patch)
treef29df54b1b14dbd655f2eb4f9a3ed8ffe66ba562
parentCreate (a new) OOT (diff)
parentFading Angepasst (diff)
downloadFading-0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9.tar.gz
Fading-0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9.zip
Merge branch 'master' of github.com:NaoPross/Fading
-rw-r--r--simulation/QAM_Fading/qam_fading.grc4
-rwxr-xr-xsimulation/QAM_Fading/qam_fading.py84
-rw-r--r--simulation/QAM_Fading/qam_fading_V2.grc1479
-rw-r--r--simulation/QAM_Fading/qam_fading_frequency_selectiv.grc6
-rw-r--r--simulation/QAM_Fading/qam_fading_frequency_selectiv_copy.grc1445
5 files changed, 2984 insertions, 34 deletions
diff --git a/simulation/QAM_Fading/qam_fading.grc b/simulation/QAM_Fading/qam_fading.grc
index c05d747..4911cce 100644
--- a/simulation/QAM_Fading/qam_fading.grc
+++ b/simulation/QAM_Fading/qam_fading.grc
@@ -54,7 +54,7 @@ blocks:
rot_sym: '4'
soft_dec_lut: None
sym_map: '[0, 1, 3, 2]'
- type: qpsk
+ type: 16qam
states:
bus_sink: false
bus_source: false
@@ -449,7 +449,7 @@ blocks:
bus_structure: null
coordinate: [648, 316.0]
rotation: 0
- state: bypassed
+ state: enabled
- name: digital_cma_equalizer_cc_0
id: digital_cma_equalizer_cc
parameters:
diff --git a/simulation/QAM_Fading/qam_fading.py b/simulation/QAM_Fading/qam_fading.py
index c24bd4d..d6ace52 100755
--- a/simulation/QAM_Fading/qam_fading.py
+++ b/simulation/QAM_Fading/qam_fading.py
@@ -86,10 +86,11 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.phase_bw = phase_bw = 2 * 3.141592653589793 / 100
self.noise_volt = noise_volt = 0.0001
self.freq_offset = freq_offset = 0
+ self.fading_1 = fading_1 = 2
self.eq_ntaps = eq_ntaps = 15
self.eq_mod = eq_mod = 1
self.eq_gain = eq_gain = .01
- self.const = const = digital.constellation_qpsk().base()
+ self.const = const = digital.constellation_16qam().base()
self.chn_taps = chn_taps = [1.0 + 0.0j, ]
##################################################
@@ -114,6 +115,13 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.params_grid_layout_0.setRowStretch(r, 1)
for c in range(1, 2):
self.params_grid_layout_0.setColumnStretch(c, 1)
+ self._time_offset_range = Range(0.999, 1.001, 0.0001, 1.0, 200)
+ self._time_offset_win = RangeWidget(self._time_offset_range, self.set_time_offset, 'Timing Offset', "counter_slider", float)
+ self.params_grid_layout_0.addWidget(self._time_offset_win, 0, 1, 1, 1)
+ for r in range(0, 1):
+ self.params_grid_layout_0.setRowStretch(r, 1)
+ for c in range(1, 2):
+ self.params_grid_layout_0.setColumnStretch(c, 1)
self.plots = Qt.QTabWidget()
self.plots_widget_0 = Qt.QWidget()
self.plots_layout_0 = Qt.QBoxLayout(Qt.QBoxLayout.TopToBottom, self.plots_widget_0)
@@ -138,6 +146,27 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.params_grid_layout_1.setRowStretch(r, 1)
for c in range(0, 1):
self.params_grid_layout_1.setColumnStretch(c, 1)
+ self._noise_volt_range = Range(0, 1, 0.01, 0.0001, 200)
+ self._noise_volt_win = RangeWidget(self._noise_volt_range, self.set_noise_volt, 'Noise Voltage', "counter_slider", float)
+ self.params_grid_layout_0.addWidget(self._noise_volt_win, 0, 0, 1, 1)
+ for r in range(0, 1):
+ self.params_grid_layout_0.setRowStretch(r, 1)
+ for c in range(0, 1):
+ self.params_grid_layout_0.setColumnStretch(c, 1)
+ self._freq_offset_range = Range(-100e-3, 100e-3, 1e-3, 0, 200)
+ self._freq_offset_win = RangeWidget(self._freq_offset_range, self.set_freq_offset, 'Frequency Offset', "counter_slider", float)
+ self.params_grid_layout_0.addWidget(self._freq_offset_win, 1, 0, 1, 1)
+ for r in range(1, 2):
+ self.params_grid_layout_0.setRowStretch(r, 1)
+ for c in range(0, 1):
+ self.params_grid_layout_0.setColumnStretch(c, 1)
+ self._fading_1_range = Range(1, 10, 1, 2, 200)
+ self._fading_1_win = RangeWidget(self._fading_1_range, self.set_fading_1, 'Fading', "counter_slider", int)
+ self.params_grid_layout_0.addWidget(self._fading_1_win, 2, 0, 1, 1)
+ for r in range(2, 3):
+ self.params_grid_layout_0.setRowStretch(r, 1)
+ for c in range(0, 1):
+ self.params_grid_layout_0.setColumnStretch(c, 1)
self._eq_gain_range = Range(0, .1, .001, .01, 200)
self._eq_gain_win = RangeWidget(self._eq_gain_range, self.set_eq_gain, 'Equalizer Rate', "counter_slider", float)
self.params_grid_layout_1.addWidget(self._eq_gain_win, 0, 0, 1, 1)
@@ -145,13 +174,6 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.params_grid_layout_1.setRowStretch(r, 1)
for c in range(0, 1):
self.params_grid_layout_1.setColumnStretch(c, 1)
- self._time_offset_range = Range(0.999, 1.001, 0.0001, 1.0, 200)
- self._time_offset_win = RangeWidget(self._time_offset_range, self.set_time_offset, 'Timing Offset', "counter_slider", float)
- self.params_grid_layout_0.addWidget(self._time_offset_win, 0, 1, 1, 1)
- for r in range(0, 1):
- self.params_grid_layout_0.setRowStretch(r, 1)
- for c in range(1, 2):
- self.params_grid_layout_0.setColumnStretch(c, 1)
self.qtgui_time_sink_x_0 = qtgui.time_sink_f(
1024, #size
samp_rate, #samp_rate
@@ -243,7 +265,11 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.qtgui_freq_sink_x_2_1.set_line_alpha(i, alphas[i])
self._qtgui_freq_sink_x_2_1_win = sip.wrapinstance(self.qtgui_freq_sink_x_2_1.pyqwidget(), Qt.QWidget)
- self.top_grid_layout.addWidget(self._qtgui_freq_sink_x_2_1_win)
+ self.plots_grid_layout_1.addWidget(self._qtgui_freq_sink_x_2_1_win, 1, 0, 1, 1)
+ for r in range(1, 2):
+ self.plots_grid_layout_1.setRowStretch(r, 1)
+ for c in range(0, 1):
+ self.plots_grid_layout_1.setColumnStretch(c, 1)
self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c(
1024, #size
firdes.WIN_BLACKMAN_hARRIS, #wintype
@@ -464,21 +490,7 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.plots_grid_layout_0.setRowStretch(r, 1)
for c in range(0, 1):
self.plots_grid_layout_0.setColumnStretch(c, 1)
- self._noise_volt_range = Range(0, 1, 0.01, 0.0001, 200)
- self._noise_volt_win = RangeWidget(self._noise_volt_range, self.set_noise_volt, 'Noise Voltage', "counter_slider", float)
- self.params_grid_layout_0.addWidget(self._noise_volt_win, 0, 0, 1, 1)
- for r in range(0, 1):
- self.params_grid_layout_0.setRowStretch(r, 1)
- for c in range(0, 1):
- self.params_grid_layout_0.setColumnStretch(c, 1)
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(1, [1]+[0 for n in range(0, 2*sps-1)]+[0.2], 0, samp_rate)
- self._freq_offset_range = Range(-100e-3, 100e-3, 1e-3, 0, 200)
- self._freq_offset_win = RangeWidget(self._freq_offset_range, self.set_freq_offset, 'Frequency Offset', "counter_slider", float)
- self.params_grid_layout_0.addWidget(self._freq_offset_win, 1, 0, 1, 1)
- for r in range(1, 2):
- self.params_grid_layout_0.setRowStretch(r, 1)
- for c in range(0, 1):
- self.params_grid_layout_0.setColumnStretch(c, 1)
+ self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(1, [1]+([0]*fading_1)+[0.2], 0, samp_rate)
self.digital_pfb_clock_sync_xxx_0_0 = digital.pfb_clock_sync_ccf(sps , timing_loop_bw, rrc_taps, nfilts, nfilts/2, 1.5, 1)
self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, timing_loop_bw, rrc_taps, nfilts, nfilts/2, 1.5, 1)
self.digital_map_bb_0_0 = digital.map_bb([0, 1, 3, 2])
@@ -499,6 +511,13 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.digital_constellation_decoder_cb_0 = digital.constellation_decoder_cb(const)
self.digital_cma_equalizer_cc_0_0 = digital.cma_equalizer_cc(eq_ntaps, eq_mod, eq_gain, 2)
self.digital_cma_equalizer_cc_0 = digital.cma_equalizer_cc(eq_ntaps, eq_mod, eq_gain, 2)
+ self.channels_channel_model_0 = channels.channel_model(
+ noise_voltage=noise_volt,
+ frequency_offset=freq_offset,
+ epsilon=time_offset,
+ taps=chn_taps,
+ noise_seed=0,
+ block_tags=False)
self.blocks_unpack_k_bits_bb_0_1 = blocks.unpack_k_bits_bb(2)
self.blocks_unpack_k_bits_bb_0_0 = blocks.unpack_k_bits_bb(2)
self.blocks_unpack_k_bits_bb_0 = blocks.unpack_k_bits_bb(2)
@@ -522,13 +541,14 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.connect((self.blocks_char_to_float_0_1, 0), (self.qtgui_freq_sink_x_2_1, 1))
self.connect((self.blocks_char_to_float_0_1, 0), (self.qtgui_time_sink_x_0, 2))
self.connect((self.blocks_delay_0, 0), (self.qtgui_time_sink_x_0, 1))
- self.connect((self.blocks_throttle_0, 0), (self.digital_pfb_clock_sync_xxx_0_0, 0))
- self.connect((self.blocks_throttle_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
- self.connect((self.blocks_throttle_0, 0), (self.qtgui_const_sink_x_0, 1))
- self.connect((self.blocks_throttle_0, 0), (self.qtgui_freq_sink_x_0, 1))
+ self.connect((self.blocks_throttle_0, 0), (self.channels_channel_model_0, 0))
self.connect((self.blocks_unpack_k_bits_bb_0, 0), (self.blocks_char_to_float_0, 0))
self.connect((self.blocks_unpack_k_bits_bb_0_0, 0), (self.blocks_char_to_float_0_0, 0))
self.connect((self.blocks_unpack_k_bits_bb_0_1, 0), (self.blocks_char_to_float_0_1, 0))
+ self.connect((self.channels_channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0_0, 0))
+ self.connect((self.channels_channel_model_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
+ self.connect((self.channels_channel_model_0, 0), (self.qtgui_const_sink_x_0, 1))
+ self.connect((self.channels_channel_model_0, 0), (self.qtgui_freq_sink_x_0, 1))
self.connect((self.digital_cma_equalizer_cc_0, 0), (self.digital_costas_loop_cc_0, 0))
self.connect((self.digital_cma_equalizer_cc_0, 0), (self.qtgui_const_sink_x_1, 0))
self.connect((self.digital_cma_equalizer_cc_0_0, 0), (self.digital_costas_loop_cc_0_0, 0))
@@ -564,7 +584,6 @@ class qam_fading(gr.top_block, Qt.QWidget):
def set_sps(self, sps):
self.sps = sps
self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.sps), self.excess_bw, 45*self.nfilts))
- self.freq_xlating_fir_filter_xxx_0.set_taps([1]+[0 for n in range(0, 2*self.sps-1)]+[0.2])
def get_nfilts(self):
return self.nfilts
@@ -635,6 +654,13 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.freq_offset = freq_offset
self.channels_channel_model_0.set_frequency_offset(self.freq_offset)
+ def get_fading_1(self):
+ return self.fading_1
+
+ def set_fading_1(self, fading_1):
+ self.fading_1 = fading_1
+ self.freq_xlating_fir_filter_xxx_0.set_taps([1]+([0]*self.fading_1)+[0.2])
+
def get_eq_ntaps(self):
return self.eq_ntaps
diff --git a/simulation/QAM_Fading/qam_fading_V2.grc b/simulation/QAM_Fading/qam_fading_V2.grc
new file mode 100644
index 0000000..ab70648
--- /dev/null
+++ b/simulation/QAM_Fading/qam_fading_V2.grc
@@ -0,0 +1,1479 @@
+options:
+ parameters:
+ author: Pross Naoki, Halter Sara Cinzia
+ category: '[GRC Hier Blocks]'
+ cmake_opt: ''
+ comment: ''
+ copyright: ''
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: qt_gui
+ hier_block_src_path: '.:'
+ id: qam_fading
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: '1'
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: QAM mit Fading
+ window_size: ''
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [8, 8]
+ rotation: 0
+ state: enabled
+
+blocks:
+- name: chn_taps
+ id: variable
+ parameters:
+ comment: ''
+ value: '[1.0 + 0.0j, ]'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [672, 236.0]
+ rotation: 0
+ state: true
+- name: const
+ id: variable_constellation
+ parameters:
+ comment: ''
+ const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]'
+ dims: '1'
+ precision: '8'
+ rot_sym: '4'
+ soft_dec_lut: None
+ sym_map: '[0, 1, 3, 2]'
+ type: 16qam
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 428.0]
+ rotation: 0
+ state: true
+- name: eq_gain
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@1: 0,0,1,1'
+ label: Equalizer Rate
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '.001'
+ stop: '.1'
+ value: '.01'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 476.0]
+ rotation: 0
+ state: true
+- name: eq_mod
+ id: variable
+ parameters:
+ comment: ''
+ value: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 400.0]
+ rotation: 0
+ state: true
+- name: eq_ntaps
+ id: variable
+ parameters:
+ comment: ''
+ value: '15'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1728, 400.0]
+ rotation: 0
+ state: true
+- name: excess_bw
+ id: variable
+ parameters:
+ comment: ''
+ value: 350e-3
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [320, 268.0]
+ rotation: 0
+ state: true
+- name: fading_1
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 2,0,1,1'
+ label: Fading
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: int
+ start: '1'
+ step: '1'
+ stop: '10'
+ value: '2'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [976, 308.0]
+ rotation: 0
+ state: true
+- name: freq_offset
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 1,0,1,1'
+ label: Frequency Offset
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: -100e-3
+ step: 1e-3
+ stop: 100e-3
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [712, 476.0]
+ rotation: 0
+ state: true
+- name: nfilts
+ id: variable
+ parameters:
+ comment: ''
+ value: '32'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 132.0]
+ rotation: 0
+ state: true
+- name: noise_volt
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 0,0,1,1'
+ label: Noise Voltage
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '0.01'
+ stop: '1'
+ value: '0.0001'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [576, 476.0]
+ rotation: 0
+ state: true
+- name: phase_bw
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@1: 1,0,1,1'
+ label: Phase Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '.01'
+ stop: '1'
+ value: 2 * 3.141592653589793 / 100
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1952, 444.0]
+ rotation: 0
+ state: true
+- name: rrc_taps
+ id: variable
+ parameters:
+ comment: ''
+ value: firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), excess_bw, 45*nfilts)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1392, 132.0]
+ rotation: 0
+ state: true
+- name: samp_rate
+ id: variable
+ parameters:
+ comment: ''
+ value: '32000'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [192, 12.0]
+ rotation: 0
+ state: enabled
+- name: sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 268.0]
+ rotation: 0
+ state: true
+- name: time_offset
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 0,1,1,1'
+ label: Timing Offset
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.999'
+ step: '0.0001'
+ stop: '1.001'
+ value: '1.0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [576, 620.0]
+ rotation: 0
+ state: true
+- name: timing_loop_bw
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 1,1,1,1'
+ label: Time Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: 10e-3
+ stop: 200e-3
+ value: 2 * 3.141592653589793 / 100
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 196.0]
+ rotation: 0
+ state: true
+- name: analog_random_source_x_0
+ id: analog_random_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ max: '256'
+ maxoutbuf: '0'
+ min: '0'
+ minoutbuf: '0'
+ num_samps: '1000'
+ repeat: 'True'
+ type: byte
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [32, 332.0]
+ rotation: 0
+ state: enabled
+- name: blocks_char_to_float_0
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2592, 296.0]
+ rotation: 0
+ state: true
+- name: blocks_char_to_float_0_0
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [424, 1336.0]
+ rotation: 0
+ state: true
+- name: blocks_char_to_float_0_1
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2544, 692.0]
+ rotation: 0
+ state: true
+- name: blocks_delay_0
+ id: blocks_delay
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ delay: '50'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_ports: '1'
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2624, 1352.0]
+ rotation: 0
+ state: true
+- name: blocks_throttle_0
+ id: blocks_throttle
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ ignoretag: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_second: samp_rate
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [464, 356.0]
+ rotation: 0
+ state: enabled
+- name: blocks_unpack_k_bits_bb_0
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2512, 456.0]
+ rotation: 0
+ state: true
+- name: blocks_unpack_k_bits_bb_0_0
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [248, 1336.0]
+ rotation: 0
+ state: true
+- name: blocks_unpack_k_bits_bb_0_1
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2448, 868.0]
+ rotation: 0
+ state: true
+- name: channels_channel_model_0
+ id: channels_channel_model
+ parameters:
+ affinity: ''
+ alias: ''
+ block_tags: 'False'
+ comment: ''
+ epsilon: time_offset
+ freq_offset: freq_offset
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ noise_voltage: noise_volt
+ seed: '0'
+ taps: chn_taps
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [648, 316.0]
+ rotation: 0
+ state: enabled
+- name: digital_cma_equalizer_cc_0
+ id: digital_cma_equalizer_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: eq_mod
+ mu: eq_gain
+ num_taps: eq_ntaps
+ sps: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 304.0]
+ rotation: 0
+ state: true
+- name: digital_cma_equalizer_cc_0_0
+ id: digital_cma_equalizer_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: eq_mod
+ mu: eq_gain
+ num_taps: eq_ntaps
+ sps: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1544, 824.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_decoder_cb_0
+ id: digital_constellation_decoder_cb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2288, 296.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_decoder_cb_0_0
+ id: digital_constellation_decoder_cb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2224, 684.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_modulator_0
+ id: digital_constellation_modulator
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ differential: 'True'
+ excess_bw: excess_bw
+ log: 'False'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_symbol: sps
+ verbose: 'False'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 332.0]
+ rotation: 0
+ state: enabled
+- name: digital_costas_loop_cc_0
+ id: digital_costas_loop_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ order: '4'
+ use_snr: 'False'
+ w: phase_bw
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1952, 296.0]
+ rotation: 0
+ state: true
+- name: digital_costas_loop_cc_0_0
+ id: digital_costas_loop_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ order: '4'
+ use_snr: 'False'
+ w: phase_bw
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1872, 824.0]
+ rotation: 0
+ state: true
+- name: digital_diff_decoder_bb_0
+ id: digital_diff_decoder_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2288, 360.0]
+ rotation: 180
+ state: true
+- name: digital_diff_decoder_bb_0_0
+ id: digital_diff_decoder_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2264, 764.0]
+ rotation: 180
+ state: true
+- name: digital_map_bb_0
+ id: digital_map_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ map: '[0, 1, 3, 2]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2304, 456.0]
+ rotation: 0
+ state: true
+- name: digital_map_bb_0_0
+ id: digital_map_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ map: '[0, 1, 3, 2]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2272, 868.0]
+ rotation: 0
+ state: true
+- name: digital_pfb_clock_sync_xxx_0
+ id: digital_pfb_clock_sync_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ filter_size: nfilts
+ init_phase: nfilts/2
+ loop_bw: timing_loop_bw
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ osps: '1'
+ sps: sps
+ taps: rrc_taps
+ type: ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 324.0]
+ rotation: 0
+ state: true
+- name: digital_pfb_clock_sync_xxx_0_0
+ id: digital_pfb_clock_sync_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ filter_size: nfilts
+ init_phase: nfilts/2
+ loop_bw: timing_loop_bw
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ osps: '1'
+ sps: 'sps '
+ taps: rrc_taps
+ type: ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1096, 812.0]
+ rotation: 0
+ state: true
+- name: freq_xlating_fir_filter_xxx_0
+ id: freq_xlating_fir_filter_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ center_freq: '0'
+ comment: ''
+ decim: '1'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samp_rate: samp_rate
+ taps: '[1]+([0]*fading_1)+[0.2]'
+ type: ccc
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [976, 204.0]
+ rotation: 0
+ state: true
+- name: import_0
+ id: import
+ parameters:
+ alias: ''
+ comment: ''
+ imports: import numpy as np
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [600, 20.0]
+ rotation: 0
+ state: true
+- name: params
+ id: qtgui_tab_widget
+ parameters:
+ alias: ''
+ comment: ''
+ gui_hint: ''
+ label0: Channel
+ label1: Receiver
+ label10: Tab 10
+ label11: Tab 11
+ label12: Tab 12
+ label13: Tab 13
+ label14: Tab 14
+ label15: Tab 15
+ label16: Tab 16
+ label17: Tab 17
+ label18: Tab 18
+ label19: Tab 19
+ label2: Tab 2
+ label3: Tab 3
+ label4: Tab 4
+ label5: Tab 5
+ label6: Tab 6
+ label7: Tab 7
+ label8: Tab 8
+ label9: Tab 9
+ num_tabs: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [296, 12.0]
+ rotation: 0
+ state: true
+- name: plots
+ id: qtgui_tab_widget
+ parameters:
+ alias: ''
+ comment: ''
+ gui_hint: ''
+ label0: Constellations
+ label1: Frequency
+ label10: Tab 10
+ label11: Tab 11
+ label12: Tab 12
+ label13: Tab 13
+ label14: Tab 14
+ label15: Tab 15
+ label16: Tab 16
+ label17: Tab 17
+ label18: Tab 18
+ label19: Tab 19
+ label2: Time
+ label3: Tab 3
+ label4: Tab 4
+ label5: Tab 5
+ label6: Tab 6
+ label7: Tab 7
+ label8: Tab 8
+ label9: Tab 9
+ num_tabs: '3'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [448, 12.0]
+ rotation: 0
+ state: true
+- name: qtgui_const_sink_x_0
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 0,0,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Channel"'
+ nconnections: '2'
+ size: '2048'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [812.0, -96]
+ rotation: 90
+ state: enabled
+- name: qtgui_const_sink_x_0_0
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 0,1,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Synchronized"'
+ nconnections: '2'
+ size: '2048'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1572.0, 80]
+ rotation: 90
+ state: enabled
+- name: qtgui_const_sink_x_1
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 1,0,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Equalized"'
+ nconnections: '2'
+ size: '1024'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1812.0, 56]
+ rotation: 90
+ state: true
+- name: qtgui_const_sink_x_2
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 1,1,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Locked"'
+ nconnections: '2'
+ size: '1024'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2188.0, 0]
+ rotation: 90
+ state: true
+- name: qtgui_freq_sink_x_0
+ id: qtgui_freq_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ average: '1.0'
+ axislabels: 'True'
+ bw: samp_rate
+ color1: '"blue"'
+ color10: '"dark blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"cyan"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ fc: '0'
+ fftsize: '1024'
+ freqhalf: 'True'
+ grid: 'False'
+ gui_hint: 'plots@1: 0,0,1,1'
+ label: Relative Gain
+ label1: Fading
+ label10: ''''''
+ label2: ''''''
+ label3: ''''''
+ label4: ''''''
+ label5: ''''''
+ label6: ''''''
+ label7: ''''''
+ label8: ''''''
+ label9: ''''''
+ legend: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ name: '"Channel"'
+ nconnections: '2'
+ showports: 'False'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_tag: '""'
+ type: complex
+ units: dB
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ wintype: firdes.WIN_BLACKMAN_hARRIS
+ ymax: '10'
+ ymin: '-140'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1200.0, 624]
+ rotation: 270
+ state: true
+- name: qtgui_freq_sink_x_2_1
+ id: qtgui_freq_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ average: '1.0'
+ axislabels: 'True'
+ bw: samp_rate
+ color1: '"blue"'
+ color10: '"dark blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"cyan"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ fc: '0'
+ fftsize: '1024'
+ freqhalf: 'True'
+ grid: 'False'
+ gui_hint: 'plots@1: 1,0,1,1'
+ label: Relative Gain
+ label1: Fading
+ label10: ''''''
+ label2: ''''''
+ label3: ''''''
+ label4: ''''''
+ label5: ''''''
+ label6: ''''''
+ label7: ''''''
+ label8: ''''''
+ label9: ''''''
+ legend: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ name: '""'
+ nconnections: '2'
+ showports: 'False'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_tag: '""'
+ type: float
+ units: dB
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ wintype: firdes.WIN_BLACKMAN_hARRIS
+ ymax: '10'
+ ymin: '-140'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2848, 488.0]
+ rotation: 0
+ state: true
+- name: qtgui_time_sink_x_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: blue
+ color10: dark blue
+ color2: red
+ color3: green
+ color4: black
+ color5: cyan
+ color6: magenta
+ color7: yellow
+ color8: dark red
+ color9: dark green
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'False'
+ gui_hint: 'plots@2: 0,0,1,1'
+ label1: Received
+ label10: Signal 10
+ label2: Sent
+ label3: Signal 3
+ label4: Signal 4
+ label5: Signal 5
+ label6: Signal 6
+ label7: Signal 7
+ label8: Signal 8
+ label9: Signal 9
+ legend: 'True'
+ marker1: '-1'
+ marker10: '-1'
+ marker2: '-1'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: '"Decoded"'
+ nconnections: '3'
+ size: '1024'
+ srate: samp_rate
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '1'
+ style7: '1'
+ style8: '1'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: float
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: '1'
+ ymin: '-1'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2816, 288.0]
+ rotation: 0
+ state: true
+
+connections:
+- [analog_random_source_x_0, '0', blocks_unpack_k_bits_bb_0_0, '0']
+- [analog_random_source_x_0, '0', digital_constellation_modulator_0, '0']
+- [blocks_char_to_float_0, '0', qtgui_freq_sink_x_2_1, '0']
+- [blocks_char_to_float_0, '0', qtgui_time_sink_x_0, '0']
+- [blocks_char_to_float_0_0, '0', blocks_delay_0, '0']
+- [blocks_char_to_float_0_1, '0', qtgui_freq_sink_x_2_1, '1']
+- [blocks_char_to_float_0_1, '0', qtgui_time_sink_x_0, '2']
+- [blocks_delay_0, '0', qtgui_time_sink_x_0, '1']
+- [blocks_throttle_0, '0', channels_channel_model_0, '0']
+- [blocks_unpack_k_bits_bb_0, '0', blocks_char_to_float_0, '0']
+- [blocks_unpack_k_bits_bb_0_0, '0', blocks_char_to_float_0_0, '0']
+- [blocks_unpack_k_bits_bb_0_1, '0', blocks_char_to_float_0_1, '0']
+- [channels_channel_model_0, '0', digital_pfb_clock_sync_xxx_0_0, '0']
+- [channels_channel_model_0, '0', freq_xlating_fir_filter_xxx_0, '0']
+- [channels_channel_model_0, '0', qtgui_const_sink_x_0, '1']
+- [channels_channel_model_0, '0', qtgui_freq_sink_x_0, '1']
+- [digital_cma_equalizer_cc_0, '0', digital_costas_loop_cc_0, '0']
+- [digital_cma_equalizer_cc_0, '0', qtgui_const_sink_x_1, '0']
+- [digital_cma_equalizer_cc_0_0, '0', digital_costas_loop_cc_0_0, '0']
+- [digital_cma_equalizer_cc_0_0, '0', qtgui_const_sink_x_1, '1']
+- [digital_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_0, '0']
+- [digital_constellation_decoder_cb_0_0, '0', digital_diff_decoder_bb_0_0, '0']
+- [digital_constellation_modulator_0, '0', blocks_throttle_0, '0']
+- [digital_costas_loop_cc_0, '0', digital_constellation_decoder_cb_0, '0']
+- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_2, '0']
+- [digital_costas_loop_cc_0_0, '0', digital_constellation_decoder_cb_0_0, '0']
+- [digital_costas_loop_cc_0_0, '0', qtgui_const_sink_x_2, '1']
+- [digital_diff_decoder_bb_0, '0', digital_map_bb_0, '0']
+- [digital_diff_decoder_bb_0_0, '0', digital_map_bb_0_0, '0']
+- [digital_map_bb_0, '0', blocks_unpack_k_bits_bb_0, '0']
+- [digital_map_bb_0_0, '0', blocks_unpack_k_bits_bb_0_1, '0']
+- [digital_pfb_clock_sync_xxx_0, '0', digital_cma_equalizer_cc_0, '0']
+- [digital_pfb_clock_sync_xxx_0, '0', qtgui_const_sink_x_0_0, '0']
+- [digital_pfb_clock_sync_xxx_0_0, '0', digital_cma_equalizer_cc_0_0, '0']
+- [digital_pfb_clock_sync_xxx_0_0, '0', qtgui_const_sink_x_0_0, '1']
+- [freq_xlating_fir_filter_xxx_0, '0', digital_pfb_clock_sync_xxx_0, '0']
+- [freq_xlating_fir_filter_xxx_0, '0', qtgui_const_sink_x_0, '0']
+- [freq_xlating_fir_filter_xxx_0, '0', qtgui_freq_sink_x_0, '0']
+
+metadata:
+ file_format: 1
diff --git a/simulation/QAM_Fading/qam_fading_frequency_selectiv.grc b/simulation/QAM_Fading/qam_fading_frequency_selectiv.grc
index d2e3c51..fc3cebd 100644
--- a/simulation/QAM_Fading/qam_fading_frequency_selectiv.grc
+++ b/simulation/QAM_Fading/qam_fading_frequency_selectiv.grc
@@ -464,7 +464,7 @@ blocks:
mags: (1,0.99,0.97)
maxoutbuf: '0'
minoutbuf: '0'
- ntaps: '8'
+ ntaps: '4'
seed: '0'
states:
bus_sink: false
@@ -676,7 +676,7 @@ blocks:
max_dev: '1.5'
maxoutbuf: '0'
minoutbuf: '0'
- osps: '2'
+ osps: '1'
sps: sps * 1.001
taps: rrc_taps
type: ccf
@@ -699,7 +699,7 @@ blocks:
max_dev: '1.5'
maxoutbuf: '0'
minoutbuf: '0'
- osps: '2'
+ osps: '1'
sps: sps * 1.001
taps: rrc_taps
type: ccf
diff --git a/simulation/QAM_Fading/qam_fading_frequency_selectiv_copy.grc b/simulation/QAM_Fading/qam_fading_frequency_selectiv_copy.grc
new file mode 100644
index 0000000..2a5bafb
--- /dev/null
+++ b/simulation/QAM_Fading/qam_fading_frequency_selectiv_copy.grc
@@ -0,0 +1,1445 @@
+options:
+ parameters:
+ author: Pross Naoki, Halter Sara Cinzia
+ category: '[GRC Hier Blocks]'
+ cmake_opt: ''
+ comment: ''
+ copyright: ''
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: qt_gui
+ hier_block_src_path: '.:'
+ id: qam_fading
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: '1'
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: QAM mit Fading
+ window_size: ''
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [8, 8]
+ rotation: 0
+ state: enabled
+
+blocks:
+- name: chn_taps
+ id: variable
+ parameters:
+ comment: ''
+ value: '[1.0 + 0.0j, ]'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [672, 236.0]
+ rotation: 0
+ state: true
+- name: const
+ id: variable_constellation
+ parameters:
+ comment: ''
+ const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]'
+ dims: '1'
+ precision: '8'
+ rot_sym: '4'
+ soft_dec_lut: None
+ sym_map: '[0, 1, 3, 2]'
+ type: qpsk
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 428.0]
+ rotation: 0
+ state: true
+- name: eq_gain
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@1: 0,0,1,1'
+ label: Equalizer Rate
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '.001'
+ stop: '.1'
+ value: '.01'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 476.0]
+ rotation: 0
+ state: true
+- name: eq_mod
+ id: variable
+ parameters:
+ comment: ''
+ value: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 400.0]
+ rotation: 0
+ state: true
+- name: eq_ntaps
+ id: variable
+ parameters:
+ comment: ''
+ value: '15'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1728, 400.0]
+ rotation: 0
+ state: true
+- name: excess_bw
+ id: variable
+ parameters:
+ comment: ''
+ value: 350e-3
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [320, 268.0]
+ rotation: 0
+ state: true
+- name: freq_offset
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 1,0,1,1'
+ label: Frequency Offset
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: -100e-3
+ step: 1e-3
+ stop: 100e-3
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [712, 476.0]
+ rotation: 0
+ state: true
+- name: nfilts
+ id: variable
+ parameters:
+ comment: ''
+ value: '32'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 132.0]
+ rotation: 0
+ state: true
+- name: noise_volt
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 0,0,1,1'
+ label: Noise Voltage
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '0.01'
+ stop: '1'
+ value: '0.0001'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [576, 476.0]
+ rotation: 0
+ state: true
+- name: phase_bw
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@1: 1,0,1,1'
+ label: Phase Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '.01'
+ stop: '1'
+ value: 2 * 3.141592653589793 / 100
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1952, 444.0]
+ rotation: 0
+ state: true
+- name: rrc_taps
+ id: variable
+ parameters:
+ comment: ''
+ value: firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), excess_bw, 45*nfilts)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1376, 132.0]
+ rotation: 0
+ state: true
+- name: samp_rate
+ id: variable
+ parameters:
+ comment: ''
+ value: '32000'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [192, 12.0]
+ rotation: 0
+ state: enabled
+- name: sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 268.0]
+ rotation: 0
+ state: true
+- name: time_offset
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 0,1,1,1'
+ label: Timing Offset
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.999'
+ step: '0.0001'
+ stop: '1.001'
+ value: '1.0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [576, 620.0]
+ rotation: 0
+ state: true
+- name: timing_loop_bw
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@0: 1,1,1,1'
+ label: Time Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: 10e-3
+ stop: 200e-3
+ value: 2 * 3.141592653589793 / 100
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 196.0]
+ rotation: 0
+ state: true
+- name: analog_random_source_x_0
+ id: analog_random_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ max: '256'
+ maxoutbuf: '0'
+ min: '0'
+ minoutbuf: '0'
+ num_samps: '1000'
+ repeat: 'True'
+ type: byte
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [32, 332.0]
+ rotation: 0
+ state: enabled
+- name: blocks_char_to_float_0
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2592, 296.0]
+ rotation: 0
+ state: true
+- name: blocks_char_to_float_0_0
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [424, 1336.0]
+ rotation: 0
+ state: true
+- name: blocks_char_to_float_0_1
+ id: blocks_char_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2544, 692.0]
+ rotation: 0
+ state: true
+- name: blocks_delay_0
+ id: blocks_delay
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ delay: '50'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_ports: '1'
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2624, 1352.0]
+ rotation: 0
+ state: true
+- name: blocks_throttle_0
+ id: blocks_throttle
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ ignoretag: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_second: samp_rate
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [464, 356.0]
+ rotation: 0
+ state: enabled
+- name: blocks_unpack_k_bits_bb_0
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2512, 456.0]
+ rotation: 0
+ state: true
+- name: blocks_unpack_k_bits_bb_0_0
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [248, 1336.0]
+ rotation: 0
+ state: true
+- name: blocks_unpack_k_bits_bb_0_1
+ id: blocks_unpack_k_bits_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ k: '2'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2448, 868.0]
+ rotation: 0
+ state: true
+- name: channels_channel_model_0
+ id: channels_channel_model
+ parameters:
+ affinity: ''
+ alias: ''
+ block_tags: 'False'
+ comment: ''
+ epsilon: time_offset
+ freq_offset: freq_offset
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ noise_voltage: noise_volt
+ seed: '0'
+ taps: chn_taps
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [648, 316.0]
+ rotation: 0
+ state: enabled
+- name: channels_selective_fading_model_0
+ id: channels_selective_fading_model
+ parameters:
+ K: '4.0'
+ LOS: 'False'
+ N: '8'
+ affinity: ''
+ alias: ''
+ comment: ''
+ delays: (0.0,0.1,1.3)
+ fDTs: 10.0/samp_rate
+ mags: (1,0.99,0.97)
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ ntaps: '8'
+ seed: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [912, 308.0]
+ rotation: 0
+ state: true
+- name: digital_cma_equalizer_cc_0
+ id: digital_cma_equalizer_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: eq_mod
+ mu: eq_gain
+ num_taps: eq_ntaps
+ sps: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1648, 304.0]
+ rotation: 0
+ state: true
+- name: digital_cma_equalizer_cc_0_0
+ id: digital_cma_equalizer_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: eq_mod
+ mu: eq_gain
+ num_taps: eq_ntaps
+ sps: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1600, 724.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_decoder_cb_0
+ id: digital_constellation_decoder_cb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2288, 296.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_decoder_cb_0_0
+ id: digital_constellation_decoder_cb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2224, 684.0]
+ rotation: 0
+ state: true
+- name: digital_constellation_modulator_0
+ id: digital_constellation_modulator
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: const
+ differential: 'True'
+ excess_bw: excess_bw
+ log: 'False'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_symbol: sps
+ verbose: 'False'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [224, 332.0]
+ rotation: 0
+ state: enabled
+- name: digital_costas_loop_cc_0
+ id: digital_costas_loop_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ order: '4'
+ use_snr: 'False'
+ w: phase_bw
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1952, 296.0]
+ rotation: 0
+ state: true
+- name: digital_costas_loop_cc_0_0
+ id: digital_costas_loop_cc
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ order: '4'
+ use_snr: 'False'
+ w: phase_bw
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1936, 688.0]
+ rotation: 0
+ state: true
+- name: digital_diff_decoder_bb_0
+ id: digital_diff_decoder_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2288, 360.0]
+ rotation: 180
+ state: true
+- name: digital_diff_decoder_bb_0_0
+ id: digital_diff_decoder_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ modulus: '4'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2264, 764.0]
+ rotation: 180
+ state: true
+- name: digital_map_bb_0
+ id: digital_map_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ map: '[0, 1, 3, 2]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2304, 456.0]
+ rotation: 0
+ state: true
+- name: digital_map_bb_0_0
+ id: digital_map_bb
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ map: '[0, 1, 3, 2]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2272, 868.0]
+ rotation: 0
+ state: true
+- name: digital_pfb_clock_sync_xxx_0
+ id: digital_pfb_clock_sync_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ filter_size: nfilts
+ init_phase: nfilts/2
+ loop_bw: timing_loop_bw
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ osps: '1'
+ sps: sps * 1.001
+ taps: rrc_taps
+ type: ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1312, 324.0]
+ rotation: 0
+ state: true
+- name: digital_pfb_clock_sync_xxx_0_0
+ id: digital_pfb_clock_sync_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ filter_size: nfilts
+ init_phase: nfilts/2
+ loop_bw: timing_loop_bw
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ osps: '1'
+ sps: sps * 1.001
+ taps: rrc_taps
+ type: ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1088, 868.0]
+ rotation: 0
+ state: true
+- name: params
+ id: qtgui_tab_widget
+ parameters:
+ alias: ''
+ comment: ''
+ gui_hint: ''
+ label0: Channel
+ label1: Receiver
+ label10: Tab 10
+ label11: Tab 11
+ label12: Tab 12
+ label13: Tab 13
+ label14: Tab 14
+ label15: Tab 15
+ label16: Tab 16
+ label17: Tab 17
+ label18: Tab 18
+ label19: Tab 19
+ label2: Tab 2
+ label3: Tab 3
+ label4: Tab 4
+ label5: Tab 5
+ label6: Tab 6
+ label7: Tab 7
+ label8: Tab 8
+ label9: Tab 9
+ num_tabs: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [296, 12.0]
+ rotation: 0
+ state: true
+- name: plots
+ id: qtgui_tab_widget
+ parameters:
+ alias: ''
+ comment: ''
+ gui_hint: ''
+ label0: Constellations
+ label1: Frequency
+ label10: Tab 10
+ label11: Tab 11
+ label12: Tab 12
+ label13: Tab 13
+ label14: Tab 14
+ label15: Tab 15
+ label16: Tab 16
+ label17: Tab 17
+ label18: Tab 18
+ label19: Tab 19
+ label2: Time
+ label3: Tab 3
+ label4: Tab 4
+ label5: Tab 5
+ label6: Tab 6
+ label7: Tab 7
+ label8: Tab 8
+ label9: Tab 9
+ num_tabs: '3'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [448, 12.0]
+ rotation: 0
+ state: true
+- name: qtgui_const_sink_x_0
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 0,0,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Channel"'
+ nconnections: '2'
+ size: '2048'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1044.0, -48]
+ rotation: 90
+ state: enabled
+- name: qtgui_const_sink_x_0_0
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 0,1,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Synchronized"'
+ nconnections: '2'
+ size: '2048'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1572.0, 80]
+ rotation: 90
+ state: enabled
+- name: qtgui_const_sink_x_1
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 1,0,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Equalized"'
+ nconnections: '2'
+ size: '1024'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1828.0, 96]
+ rotation: 90
+ state: true
+- name: qtgui_const_sink_x_2
+ id: qtgui_const_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"red"'
+ color2: '"red"'
+ color3: '"red"'
+ color4: '"red"'
+ color5: '"red"'
+ color6: '"red"'
+ color7: '"red"'
+ color8: '"red"'
+ color9: '"red"'
+ comment: ''
+ grid: 'False'
+ gui_hint: 'plots@0: 1,1,1,1'
+ label1: Fading
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '0'
+ marker2: '0'
+ marker3: '0'
+ marker4: '0'
+ marker5: '0'
+ marker6: '0'
+ marker7: '0'
+ marker8: '0'
+ marker9: '0'
+ name: '"Locked"'
+ nconnections: '2'
+ size: '1024'
+ style1: '0'
+ style10: '0'
+ style2: '0'
+ style3: '0'
+ style4: '0'
+ style5: '0'
+ style6: '0'
+ style7: '0'
+ style8: '0'
+ style9: '0'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ xmax: '2'
+ xmin: '-2'
+ ymax: '2'
+ ymin: '-2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2188.0, 0]
+ rotation: 90
+ state: true
+- name: qtgui_freq_sink_x_0
+ id: qtgui_freq_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ average: '1.0'
+ axislabels: 'True'
+ bw: samp_rate
+ color1: '"blue"'
+ color10: '"dark blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"cyan"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ fc: '0'
+ fftsize: '1024'
+ freqhalf: 'True'
+ grid: 'False'
+ gui_hint: 'plots@1: 0,0,1,1'
+ label: Relative Gain
+ label1: Fading
+ label10: ''''''
+ label2: ''''''
+ label3: ''''''
+ label4: ''''''
+ label5: ''''''
+ label6: ''''''
+ label7: ''''''
+ label8: ''''''
+ label9: ''''''
+ legend: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ name: '"Channel"'
+ nconnections: '2'
+ showports: 'False'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_tag: '""'
+ type: complex
+ units: dB
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ wintype: firdes.WIN_BLACKMAN_hARRIS
+ ymax: '10'
+ ymin: '-140'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1144.0, 568]
+ rotation: 270
+ state: true
+- name: qtgui_freq_sink_x_2_1
+ id: qtgui_freq_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ average: '1.0'
+ axislabels: 'True'
+ bw: samp_rate
+ color1: '"blue"'
+ color10: '"dark blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"cyan"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ fc: '0'
+ fftsize: '1024'
+ freqhalf: 'True'
+ grid: 'False'
+ gui_hint: ''
+ label: Relative Gain
+ label1: Fading
+ label10: ''''''
+ label2: ''''''
+ label3: ''''''
+ label4: ''''''
+ label5: ''''''
+ label6: ''''''
+ label7: ''''''
+ label8: ''''''
+ label9: ''''''
+ legend: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ name: '""'
+ nconnections: '2'
+ showports: 'False'
+ tr_chan: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_tag: '""'
+ type: float
+ units: dB
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ wintype: firdes.WIN_BLACKMAN_hARRIS
+ ymax: '10'
+ ymin: '-140'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2848, 488.0]
+ rotation: 0
+ state: true
+- name: qtgui_time_sink_x_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: blue
+ color10: dark blue
+ color2: red
+ color3: green
+ color4: black
+ color5: cyan
+ color6: magenta
+ color7: yellow
+ color8: dark red
+ color9: dark green
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'False'
+ gui_hint: 'plots@2: 0,0,1,1'
+ label1: Received
+ label10: Signal 10
+ label2: Sent
+ label3: Signal 3
+ label4: Signal 4
+ label5: Signal 5
+ label6: Signal 6
+ label7: Signal 7
+ label8: Signal 8
+ label9: Signal 9
+ legend: 'True'
+ marker1: '-1'
+ marker10: '-1'
+ marker2: '-1'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: '"Decoded"'
+ nconnections: '3'
+ size: '1024'
+ srate: samp_rate
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '1'
+ style7: '1'
+ style8: '1'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0'
+ tr_level: '0.0'
+ tr_mode: qtgui.TRIG_MODE_FREE
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '""'
+ type: float
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: '1'
+ ymin: '-1'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2816, 288.0]
+ rotation: 0
+ state: true
+
+connections:
+- [analog_random_source_x_0, '0', blocks_unpack_k_bits_bb_0_0, '0']
+- [analog_random_source_x_0, '0', digital_constellation_modulator_0, '0']
+- [blocks_char_to_float_0, '0', qtgui_freq_sink_x_2_1, '0']
+- [blocks_char_to_float_0, '0', qtgui_time_sink_x_0, '0']
+- [blocks_char_to_float_0_0, '0', blocks_delay_0, '0']
+- [blocks_char_to_float_0_1, '0', qtgui_freq_sink_x_2_1, '1']
+- [blocks_char_to_float_0_1, '0', qtgui_time_sink_x_0, '2']
+- [blocks_delay_0, '0', qtgui_time_sink_x_0, '1']
+- [blocks_throttle_0, '0', channels_channel_model_0, '0']
+- [blocks_unpack_k_bits_bb_0, '0', blocks_char_to_float_0, '0']
+- [blocks_unpack_k_bits_bb_0_0, '0', blocks_char_to_float_0_0, '0']
+- [blocks_unpack_k_bits_bb_0_1, '0', blocks_char_to_float_0_1, '0']
+- [channels_channel_model_0, '0', channels_selective_fading_model_0, '0']
+- [channels_channel_model_0, '0', digital_pfb_clock_sync_xxx_0_0, '0']
+- [channels_channel_model_0, '0', qtgui_const_sink_x_0, '1']
+- [channels_channel_model_0, '0', qtgui_freq_sink_x_0, '1']
+- [digital_cma_equalizer_cc_0, '0', digital_costas_loop_cc_0, '0']
+- [digital_cma_equalizer_cc_0, '0', qtgui_const_sink_x_1, '0']
+- [digital_cma_equalizer_cc_0_0, '0', digital_costas_loop_cc_0_0, '0']
+- [digital_cma_equalizer_cc_0_0, '0', qtgui_const_sink_x_1, '1']
+- [digital_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_0, '0']
+- [digital_constellation_decoder_cb_0_0, '0', digital_diff_decoder_bb_0_0, '0']
+- [digital_constellation_modulator_0, '0', blocks_throttle_0, '0']
+- [digital_costas_loop_cc_0, '0', digital_constellation_decoder_cb_0, '0']
+- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_2, '0']
+- [digital_costas_loop_cc_0_0, '0', digital_constellation_decoder_cb_0_0, '0']
+- [digital_costas_loop_cc_0_0, '0', qtgui_const_sink_x_2, '1']
+- [digital_diff_decoder_bb_0, '0', digital_map_bb_0, '0']
+- [digital_diff_decoder_bb_0_0, '0', digital_map_bb_0_0, '0']
+- [digital_map_bb_0, '0', blocks_unpack_k_bits_bb_0, '0']
+- [digital_map_bb_0_0, '0', blocks_unpack_k_bits_bb_0_1, '0']
+- [digital_pfb_clock_sync_xxx_0, '0', digital_cma_equalizer_cc_0, '0']
+- [digital_pfb_clock_sync_xxx_0, '0', qtgui_const_sink_x_0_0, '0']
+- [digital_pfb_clock_sync_xxx_0_0, '0', digital_cma_equalizer_cc_0_0, '0']
+- [digital_pfb_clock_sync_xxx_0_0, '0', qtgui_const_sink_x_0_0, '1']
+
+metadata:
+ file_format: 1