diff options
author | Nao Pross <np@0hm.ch> | 2021-11-12 20:17:16 +0100 |
---|---|---|
committer | Nao Pross <np@0hm.ch> | 2021-11-12 20:17:16 +0100 |
commit | 0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9 (patch) | |
tree | f29df54b1b14dbd655f2eb4f9a3ed8ffe66ba562 /simulation/QAM_Fading | |
parent | Create (a new) OOT (diff) | |
parent | Fading Angepasst (diff) | |
download | Fading-0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9.tar.gz Fading-0a29a23bb6a266ea14ce3fb15e6e8b2070fe99f9.zip |
Merge branch 'master' of github.com:NaoPross/Fading
Diffstat (limited to '')
-rw-r--r-- | simulation/QAM_Fading/qam_fading.grc | 4 | ||||
-rwxr-xr-x | simulation/QAM_Fading/qam_fading.py | 84 | ||||
-rw-r--r-- | simulation/QAM_Fading/qam_fading_V2.grc | 1479 | ||||
-rw-r--r-- | simulation/QAM_Fading/qam_fading_frequency_selectiv.grc | 6 | ||||
-rw-r--r-- | simulation/QAM_Fading/qam_fading_frequency_selectiv_copy.grc | 1445 |
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 |