aboutsummaryrefslogtreecommitdiffstats
path: root/simulation/QAM_Fading
diff options
context:
space:
mode:
authorsara <sara.halter@gmx.ch>2021-11-20 16:19:36 +0100
committersara <sara.halter@gmx.ch>2021-11-20 16:19:36 +0100
commit306f5ac8c75d3946d0d43e45754df9d98433a1ee (patch)
treeafff5502a3f1b5dfc9bbf896a0efb2e859b2e796 /simulation/QAM_Fading
parentFrames (diff)
downloadFading-306f5ac8c75d3946d0d43e45754df9d98433a1ee.tar.gz
Fading-306f5ac8c75d3946d0d43e45754df9d98433a1ee.zip
FIR filter eigerner Block angefangen
Diffstat (limited to 'simulation/QAM_Fading')
-rw-r--r--simulation/QAM_Fading/epy_block_0.py50
-rwxr-xr-xsimulation/QAM_Fading/qam_fading.py84
-rw-r--r--simulation/QAM_Fading/qam_fading_V2.grc6
-rw-r--r--simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc1646
-rw-r--r--simulation/QAM_Fading/qam_fading_V2_mehrere.grc8
5 files changed, 1715 insertions, 79 deletions
diff --git a/simulation/QAM_Fading/epy_block_0.py b/simulation/QAM_Fading/epy_block_0.py
new file mode 100644
index 0000000..8c7e300
--- /dev/null
+++ b/simulation/QAM_Fading/epy_block_0.py
@@ -0,0 +1,50 @@
+"""
+Embedded Python Blocks:
+
+Each time this file is saved, GRC will instantiate the first class it finds
+to get ports and parameters of your block. The arguments to __init__ will
+be the parameters. All of them are required to have default values!
+"""
+
+import numpy as np
+from gnuradio import gr
+
+
+class blk(gr.sync_block): # other base classes are basic_block, decim_block, interp_block
+ """Embedded Python Block example - a simple multiply const"""
+
+ def __init__(self, amplitudes=[], delays=[]): # only default arguments here
+ """arguments to this function show up as parameters in GRC"""
+ gr.sync_block.__init__(
+ self,
+ name='Embedded Python Block', # will show up in GRC
+ in_sig=[np.complex64],
+ out_sig=[np.complex64]
+ )
+ # if an attribute with the same name as a parameter is found,
+ # a callback is registered (properties work, too).
+ self.amplitues = amplitudes
+ self.delays = delays
+
+ #self.fir =
+
+ def work(self, input_items, output_items):
+ """example: multiply with constant"""
+ inp = input_items[0]
+ oup = output_items[0]
+ amplitudes = [0.2, 0.5 ,0.8]
+ delays = [3,5,2]
+ i = len(amplitudes)
+
+ outp[:] = [([1]+[0 for n in range (0,delays[i])]+[amplitudes[i]]) for i in range(0,i)]
+
+ return len(output_items[0])
+
+
+if __name__ == '__main__':
+ ampl = [0.2, 0.5 ,0.8]
+ delays = [3,5,2]
+ i = len(ampl)
+ [([1]+[0 for n in range (0,delays[i])]+[ampl[i]]) for i in range(0,i)]
+
+
diff --git a/simulation/QAM_Fading/qam_fading.py b/simulation/QAM_Fading/qam_fading.py
index f8c72b1..ac1106c 100755
--- a/simulation/QAM_Fading/qam_fading.py
+++ b/simulation/QAM_Fading/qam_fading.py
@@ -87,16 +87,12 @@ 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_3 = fading_3 = 0
- self.fading_2 = fading_2 = 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_16qam().base()
self.chn_taps = chn_taps = [1.0 + 0.0j, ]
- self.amp_3 = amp_3 = 0
- self.amp_2 = amp_2 = 0
self.amp_1 = amp_1 = 0.2
self.LOS_NLOS = LOS_NLOS = 1
@@ -172,20 +168,6 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.params_grid_layout_0.setRowStretch(r, 1)
for c in range(0, 1):
self.params_grid_layout_0.setColumnStretch(c, 1)
- self._fading_2_range = Range(0, 30, 1, 0, 200)
- self._fading_2_win = RangeWidget(self._fading_2_range, self.set_fading_2, 'Fading 2', "counter_slider", int)
- self.params_grid_layout_2.addWidget(self._fading_2_win, 2, 0, 1, 1)
- for r in range(2, 3):
- self.params_grid_layout_2.setRowStretch(r, 1)
- for c in range(0, 1):
- self.params_grid_layout_2.setColumnStretch(c, 1)
- self._fading_1_range = Range(1, 30, 1, 2, 200)
- self._fading_1_win = RangeWidget(self._fading_1_range, self.set_fading_1, 'Fading', "counter_slider", int)
- self.params_grid_layout_2.addWidget(self._fading_1_win, 1, 0, 1, 1)
- for r in range(1, 2):
- self.params_grid_layout_2.setRowStretch(r, 1)
- for c in range(0, 1):
- self.params_grid_layout_2.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)
@@ -193,25 +175,11 @@ 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._amp_2_range = Range(0, 5, 0.1, 0, 200)
- self._amp_2_win = RangeWidget(self._amp_2_range, self.set_amp_2, 'Ampliude 2', "counter_slider", float)
- self.params_grid_layout_2.addWidget(self._amp_2_win, 2, 1, 1, 1)
- for r in range(2, 3):
- self.params_grid_layout_2.setRowStretch(r, 1)
- for c in range(1, 2):
- self.params_grid_layout_2.setColumnStretch(c, 1)
self._amp_1_range = Range(0, 5, 0.1, 0.2, 200)
self._amp_1_win = RangeWidget(self._amp_1_range, self.set_amp_1, 'Ampliude', "counter_slider", float)
- self.params_grid_layout_2.addWidget(self._amp_1_win, 1, 1, 1, 1)
+ self.params_grid_layout_2.addWidget(self._amp_1_win, 1, 0, 1, 1)
for r in range(1, 2):
self.params_grid_layout_2.setRowStretch(r, 1)
- for c in range(1, 2):
- self.params_grid_layout_2.setColumnStretch(c, 1)
- self._LOS_NLOS_range = Range(0, 1, 1, 1, 200)
- self._LOS_NLOS_win = RangeWidget(self._LOS_NLOS_range, self.set_LOS_NLOS, 'LOS_NLOS', "counter_slider", int)
- self.params_grid_layout_2.addWidget(self._LOS_NLOS_win, 0, 0, 1, 1)
- for r in range(0, 1):
- self.params_grid_layout_2.setRowStretch(r, 1)
for c in range(0, 1):
self.params_grid_layout_2.setColumnStretch(c, 1)
self.qtgui_time_sink_x_0 = qtgui.time_sink_f(
@@ -530,12 +498,12 @@ 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.interp_fir_filter_xxx_0 = filter.interp_fir_filter_ccc(1, [LOS_NLOS]+(([0]*fading_1)+[amp_1])+(([0]*fading_2)+[amp_2]))
- self.interp_fir_filter_xxx_0.declare_sample_delay(0)
- self._fading_3_range = Range(0, 30, 1, 0, 200)
- self._fading_3_win = RangeWidget(self._fading_3_range, self.set_fading_3, 'Fading 3', "counter_slider", int)
- self.params_grid_layout_2.addWidget(self._fading_3_win, 3, 0, 1, 1)
- for r in range(3, 4):
+ self.interp_fir_filter_xxx_0 = filter.interp_fir_filter_ccc(1, [amp_1])
+ self.interp_fir_filter_xxx_0.declare_sample_delay(2)
+ self._fading_1_range = Range(1, 30, 1, 2, 200)
+ self._fading_1_win = RangeWidget(self._fading_1_range, self.set_fading_1, 'Fading', "counter_slider", int)
+ self.params_grid_layout_2.addWidget(self._fading_1_win, 0, 0, 1, 1)
+ for r in range(0, 1):
self.params_grid_layout_2.setRowStretch(r, 1)
for c in range(0, 1):
self.params_grid_layout_2.setColumnStretch(c, 1)
@@ -575,10 +543,10 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.blocks_char_to_float_0_0 = blocks.char_to_float(1, 1)
self.blocks_char_to_float_0 = blocks.char_to_float(1, 1)
self.analog_random_source_x_0 = blocks.vector_source_b(list(map(int, numpy.random.randint(0, 256, 1000))), True)
- self._amp_3_range = Range(0, 5, 0.1, 0, 200)
- self._amp_3_win = RangeWidget(self._amp_3_range, self.set_amp_3, 'Ampliude 3', "counter_slider", float)
- self.params_grid_layout_2.addWidget(self._amp_3_win, 3, 1, 1, 1)
- for r in range(3, 4):
+ self._LOS_NLOS_range = Range(0, 1, 1, 1, 200)
+ self._LOS_NLOS_win = RangeWidget(self._LOS_NLOS_range, self.set_LOS_NLOS, 'LOS_NLOS', "counter_slider", int)
+ self.params_grid_layout_2.addWidget(self._LOS_NLOS_win, 0, 1, 1, 1)
+ for r in range(0, 1):
self.params_grid_layout_2.setRowStretch(r, 1)
for c in range(1, 2):
self.params_grid_layout_2.setColumnStretch(c, 1)
@@ -709,25 +677,11 @@ 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_3(self):
- return self.fading_3
-
- def set_fading_3(self, fading_3):
- self.fading_3 = fading_3
-
- def get_fading_2(self):
- return self.fading_2
-
- def set_fading_2(self, fading_2):
- self.fading_2 = fading_2
- self.interp_fir_filter_xxx_0.set_taps([self.LOS_NLOS]+(([0]*self.fading_1)+[self.amp_1])+(([0]*self.fading_2)+[self.amp_2]))
-
def get_fading_1(self):
return self.fading_1
def set_fading_1(self, fading_1):
self.fading_1 = fading_1
- self.interp_fir_filter_xxx_0.set_taps([self.LOS_NLOS]+(([0]*self.fading_1)+[self.amp_1])+(([0]*self.fading_2)+[self.amp_2]))
def get_eq_ntaps(self):
return self.eq_ntaps
@@ -764,32 +718,18 @@ class qam_fading(gr.top_block, Qt.QWidget):
self.chn_taps = chn_taps
self.channels_channel_model_0.set_taps(self.chn_taps)
- def get_amp_3(self):
- return self.amp_3
-
- def set_amp_3(self, amp_3):
- self.amp_3 = amp_3
-
- def get_amp_2(self):
- return self.amp_2
-
- def set_amp_2(self, amp_2):
- self.amp_2 = amp_2
- self.interp_fir_filter_xxx_0.set_taps([self.LOS_NLOS]+(([0]*self.fading_1)+[self.amp_1])+(([0]*self.fading_2)+[self.amp_2]))
-
def get_amp_1(self):
return self.amp_1
def set_amp_1(self, amp_1):
self.amp_1 = amp_1
- self.interp_fir_filter_xxx_0.set_taps([self.LOS_NLOS]+(([0]*self.fading_1)+[self.amp_1])+(([0]*self.fading_2)+[self.amp_2]))
+ self.interp_fir_filter_xxx_0.set_taps([self.amp_1])
def get_LOS_NLOS(self):
return self.LOS_NLOS
def set_LOS_NLOS(self, LOS_NLOS):
self.LOS_NLOS = LOS_NLOS
- self.interp_fir_filter_xxx_0.set_taps([self.LOS_NLOS]+(([0]*self.fading_1)+[self.amp_1])+(([0]*self.fading_2)+[self.amp_2]))
diff --git a/simulation/QAM_Fading/qam_fading_V2.grc b/simulation/QAM_Fading/qam_fading_V2.grc
index eaadab5..5ab2545 100644
--- a/simulation/QAM_Fading/qam_fading_V2.grc
+++ b/simulation/QAM_Fading/qam_fading_V2.grc
@@ -790,14 +790,14 @@ blocks:
interp: '1'
maxoutbuf: '0'
minoutbuf: '0'
- samp_delay: '0'
- taps: '[LOS_NLOS]+([0]*fading_1)+[amp_1]'
+ samp_delay: '2'
+ taps: '[amp_1]'
type: ccc
states:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [952, 332.0]
+ coordinate: [1000, 340.0]
rotation: 0
state: enabled
- name: params
diff --git a/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc b/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc
new file mode 100644
index 0000000..359e3d0
--- /dev/null
+++ b/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc
@@ -0,0 +1,1646 @@
+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: LOS_NLOS
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 0,0,1,1'
+ label: LOS_NLOS
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: int
+ start: '0'
+ step: '1'
+ stop: '1'
+ value: '1'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [944, 444.0]
+ rotation: 0
+ state: true
+- name: amp_1
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 1,1,1,1'
+ label: Ampliude
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '0.1'
+ stop: '5'
+ value: '0.2'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1056, 580.0]
+ rotation: 0
+ state: true
+- name: amp_2
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 2,1,1,1'
+ label: Ampliude 2
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '0.1'
+ stop: '5'
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1064, 716.0]
+ rotation: 0
+ state: true
+- name: amp_3
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 3,1,1,1'
+ label: Ampliude 3
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0'
+ step: '0.1'
+ stop: '5'
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1064, 852.0]
+ rotation: 0
+ state: true
+- 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: [1744, 452.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: [1744, 376.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: [1824, 376.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@2: 1,0,1,1'
+ label: Fading
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: int
+ start: '1'
+ step: '1'
+ stop: '30'
+ value: '2'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [944, 580.0]
+ rotation: 0
+ state: true
+- name: fading_2
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 2,0,1,1'
+ label: Fading 2
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: int
+ start: '0'
+ step: '1'
+ stop: '30'
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [944, 716.0]
+ rotation: 0
+ state: true
+- name: fading_3
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 'params@2: 3,0,1,1'
+ label: Fading 3
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: int
+ start: '0'
+ step: '1'
+ stop: '30'
+ value: '0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [944, 852.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: [1408, 104.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: [2048, 420.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: [1488, 104.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: [1408, 164.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: [2688, 272.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: [2640, 672.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: [2736, 1360.0]
+ rotation: 0
+ state: true
+- name: blocks_file_sink_0
+ id: blocks_file_sink
+ parameters:
+ affinity: ''
+ alias: ''
+ append: 'False'
+ comment: ''
+ file: /home/sara/Documents/Fading/simulation/QAM_Fading/qam_fading_V2_output.grc
+ type: float
+ unbuffered: 'False'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2880, 84.0]
+ rotation: 0
+ state: disabled
+- 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: [2608, 432.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: [2544, 848.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: [1744, 276.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: [1664, 932.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: [2384, 272.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: [2320, 656.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: [2048, 264.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: [1984, 928.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: [2384, 336.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: [2352, 736.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: [2400, 432.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: [2368, 848.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: [1408, 300.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: [1016, 1204.0]
+ rotation: 0
+ state: true
+- name: epy_block_0
+ id: epy_block
+ parameters:
+ _source_code: "\"\"\"\nEmbedded Python Blocks:\n\nEach time this file is saved,\
+ \ GRC will instantiate the first class it finds\nto get ports and parameters\
+ \ of your block. The arguments to __init__ will\nbe the parameters. All of\
+ \ them are required to have default values!\n\"\"\"\n\nimport numpy as np\n\
+ from gnuradio import gr\n\n\nclass blk(gr.sync_block): # other base classes\
+ \ are basic_block, decim_block, interp_block\n \"\"\"Embedded Python Block\
+ \ example - a simple multiply const\"\"\"\n\n def __init__(self, amplitudes=[],\
+ \ delays=[]): # only default arguments here\n \"\"\"arguments to this\
+ \ function show up as parameters in GRC\"\"\"\n gr.sync_block.__init__(\n\
+ \ self,\n name='Embedded Python Block', # will show\
+ \ up in GRC\n in_sig=[np.complex64],\n out_sig=[np.complex64]\n\
+ \ )\n # if an attribute with the same name as a parameter is found,\n\
+ \ # a callback is registered (properties work, too).\n self.amplitues\
+ \ = amplitudes\n self.delays = delays\n\n #self.fir = \n\n \
+ \ def work(self, input_items, output_items):\n \"\"\"example: multiply\
+ \ with constant\"\"\"\n inp = input_items[0]\n oup = output_items[0]\n\
+ \ amplitudes = [0.2, 0.5 ,0.8]\n delays = [3,5,2]\n i =\
+ \ len(amplitudes)\n\n outp[:] = [([1]+[0 for n in range (0,delays[i])]+[amplitudes[i]])\
+ \ for i in range(0,i)]\n\n return len(output_items[0])\n\n\nif __name__\
+ \ == '__main__':\n ampl = [0.2, 0.5 ,0.8]\n delays = [3,5,2]\n i =\
+ \ len(ampl)\n [([1]+[0 for n in range (0,delays[i])]+[ampl[i]]) for i in\
+ \ range(0,i)]\n\n\n"
+ affinity: ''
+ alias: ''
+ amplitudes: '[0.2, 0.5 ,0.8]'
+ comment: ''
+ delays: '[3,5,2]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ _io_cache: ('Embedded Python Block', 'blk', [('amplitudes', '[]'), ('delays',
+ '[]')], [('0', 'complex', 1)], [('0', 'complex', 1)], 'Embedded Python Block
+ example - a simple multiply const', ['delays'])
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [992, 340.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: Fading
+ 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: [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: normal
+ 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: [1004.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: normal
+ 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: [1656.0, 56]
+ 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: normal
+ 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: [1896.0, 24]
+ 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: normal
+ 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: [2280.0, -24]
+ 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: [1256.0, 560]
+ 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: [2944, 456.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: [2912, 260.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', blocks_file_sink_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', epy_block_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']
+- [epy_block_0, '0', digital_pfb_clock_sync_xxx_0, '0']
+- [epy_block_0, '0', qtgui_const_sink_x_0, '0']
+- [epy_block_0, '0', qtgui_freq_sink_x_0, '0']
+
+metadata:
+ file_format: 1
diff --git a/simulation/QAM_Fading/qam_fading_V2_mehrere.grc b/simulation/QAM_Fading/qam_fading_V2_mehrere.grc
index 5135b3b..d5444ad 100644
--- a/simulation/QAM_Fading/qam_fading_V2_mehrere.grc
+++ b/simulation/QAM_Fading/qam_fading_V2_mehrere.grc
@@ -71,7 +71,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1056, 588.0]
+ coordinate: [1056, 580.0]
rotation: 0
state: true
- name: amp_2
@@ -113,7 +113,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1072, 852.0]
+ coordinate: [1064, 852.0]
rotation: 0
state: true
- name: chn_taps
@@ -875,13 +875,13 @@ blocks:
maxoutbuf: '0'
minoutbuf: '0'
samp_delay: '0'
- taps: '[LOS_NLOS]+(([0]*fading_1)+[amp_1])+(([0]*fading_2)+[amp_2])'
+ taps: '[LOS_NLOS]+(([0]*fading_1)+[amp_1])+(([0]*fading_2)+[amp_2])+(([0]*fading_3)+[amp_3])'
type: ccc
states:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [936, 340.0]
+ coordinate: [992, 340.0]
rotation: 0
state: enabled
- name: params