diff options
author | Nao Pross <np@0hm.ch> | 2021-11-22 20:00:15 +0100 |
---|---|---|
committer | Nao Pross <np@0hm.ch> | 2021-11-22 20:00:15 +0100 |
commit | 918981ab045dc30c2ad7b2d43201c87e9b5674f4 (patch) | |
tree | 9fe0ce1b48a7fc76c85affa7b6c9784247f9816d /simulation/QAM | |
parent | Implement frame synchronization (diff) | |
download | Fading-918981ab045dc30c2ad7b2d43201c87e9b5674f4.tar.gz Fading-918981ab045dc30c2ad7b2d43201c87e9b5674f4.zip |
Rename files (they had flipped names)
Diffstat (limited to 'simulation/QAM')
-rw-r--r-- | simulation/QAM/qam.grc | 805 | ||||
-rwxr-xr-x | simulation/QAM/qam.py | 8 | ||||
-rw-r--r-- | simulation/QAM/qam_nogui.grc | 805 |
3 files changed, 805 insertions, 813 deletions
diff --git a/simulation/QAM/qam.grc b/simulation/QAM/qam.grc index e1d0277..037c20f 100644 --- a/simulation/QAM/qam.grc +++ b/simulation/QAM/qam.grc @@ -8,9 +8,9 @@ options: description: '' gen_cmake: 'On' gen_linking: dynamic - generate_options: no_gui + generate_options: qt_gui hier_block_src_path: '.:' - id: qam_nogui + id: qam max_nouts: '0' output_language: python placement: (0,0) @@ -59,19 +59,28 @@ blocks: bus_sink: false bus_source: false bus_structure: null - coordinate: [224, 604.0] + coordinate: [224, 436.0] rotation: 0 state: true - name: eq_gain - id: variable + id: variable_qtgui_range parameters: comment: '' - value: 10e-3 + 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: [1336, 212.0] + coordinate: [1336, 460.0] rotation: 0 state: true - name: eq_mod @@ -111,15 +120,24 @@ blocks: rotation: 0 state: true - name: freq_offset - id: variable + 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: [736, 180.0] + coordinate: [640, 460.0] rotation: 0 state: true - name: nfilts @@ -135,48 +153,45 @@ blocks: rotation: 0 state: true - name: noise_volt - id: variable + id: variable_qtgui_range parameters: comment: '' - value: 100e-6 + 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: [640, 180.0] + coordinate: [504, 460.0] rotation: 0 state: true - name: phase_bw - id: variable + 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: [1640, 188.0] - rotation: 0 - state: true -- name: qam_const - id: variable_constellation_rect - parameters: - comment: '' - const_points: '[(-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), - (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)]' - imag_sect: '1' - precision: '4' - real_sect: '1' - rot_sym: '4' - soft_dec_lut: None - sym_map: '[0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]' - w_imag_sect: '1' - w_real_sect: '1' - states: - bus_sink: false - bus_source: false - bus_structure: null - coordinate: [224, 436.0] + coordinate: [1640, 428.0] rotation: 0 state: true - name: rrc_taps @@ -216,27 +231,45 @@ blocks: rotation: 0 state: true - name: time_offset - id: variable + id: variable_qtgui_range parameters: comment: '' - value: '1' + 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: [736, 252.0] + coordinate: [504, 604.0] rotation: 0 state: true - name: timing_loop_bw - id: variable + 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: [1000, 228.0] + coordinate: [1008, 548.0] rotation: 0 state: true - name: analog_random_source_x_0 @@ -276,23 +309,60 @@ blocks: coordinate: [2272, 276.0] rotation: 0 state: true -- name: blocks_null_sink_0 - id: blocks_null_sink +- 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: [408, 840.0] + rotation: 0 + state: true +- name: blocks_delay_0 + id: blocks_delay parameters: affinity: '' alias: '' - bus_structure_sink: '[[0,],]' comment: '' - num_inputs: '1' + delay: '50' + maxoutbuf: '0' + minoutbuf: '0' + num_ports: '1' type: float vlen: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [2488, 280.0] + coordinate: [2264, 844.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/doc/thesis/figures/data/SImulation + type: float + unbuffered: 'False' + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [2432, 108.0] + rotation: 0 + state: disabled - name: blocks_throttle_0 id: blocks_throttle parameters: @@ -328,6 +398,22 @@ blocks: coordinate: [2192, 436.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: [232, 840.0] + rotation: 0 + state: true - name: channels_channel_model_0 id: channels_channel_model parameters: @@ -360,7 +446,7 @@ blocks: modulus: eq_mod mu: eq_gain num_taps: eq_ntaps - sps: sps + sps: '1' states: bus_sink: false bus_source: false @@ -467,8 +553,8 @@ blocks: max_dev: '1.5' maxoutbuf: '0' minoutbuf: '0' - osps: sps - sps: sps * 1.001 + osps: '1' + sps: 'sps ' taps: rrc_taps type: ccf states: @@ -478,20 +564,643 @@ blocks: coordinate: [1000, 308.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: '' + 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: '1' + 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: [836.0, 128] + 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: '' + 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: '1' + 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: [1228.0, 88] + 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: '' + 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: '1' + 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: [1524.0, 88] + 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: '' + 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: '1' + 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: [1860.0, 64] + 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: '' + label10: '''''' + label2: '''''' + label3: '''''' + label4: '''''' + label5: '''''' + label6: '''''' + label7: '''''' + label8: '''''' + label9: '''''' + legend: 'True' + maxoutbuf: '0' + minoutbuf: '0' + name: '"Channel"' + nconnections: '1' + 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: [856.0, 472] + rotation: 270 + 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: '2' + 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: [2504, 268.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_null_sink_0, '0'] +- [blocks_char_to_float_0, '0', blocks_file_sink_0, '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_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'] - [channels_channel_model_0, '0', digital_pfb_clock_sync_xxx_0, '0'] +- [channels_channel_model_0, '0', qtgui_const_sink_x_0, '0'] +- [channels_channel_model_0, '0', qtgui_freq_sink_x_0, '0'] - [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_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_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_diff_decoder_bb_0, '0', digital_map_bb_0, '0'] - [digital_map_bb_0, '0', blocks_unpack_k_bits_bb_0, '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'] metadata: file_format: 1 diff --git a/simulation/QAM/qam.py b/simulation/QAM/qam.py index bf6b82d..2c96d0e 100755 --- a/simulation/QAM/qam.py +++ b/simulation/QAM/qam.py @@ -82,8 +82,6 @@ class qam(gr.top_block, Qt.QWidget): self.time_offset = time_offset = 1.0 self.samp_rate = samp_rate = 32000 self.rrc_taps = rrc_taps = firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), excess_bw, 45*nfilts) - self.qam_const = qam_const = digital.constellation_rect([(-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)], [0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10], - 4, 1, 1, 1, 1).base() self.phase_bw = phase_bw = 2 * 3.141592653589793 / 100 self.noise_volt = noise_volt = 0.0001 self.freq_offset = freq_offset = 0 @@ -551,12 +549,6 @@ class qam(gr.top_block, Qt.QWidget): self.rrc_taps = rrc_taps self.digital_pfb_clock_sync_xxx_0.update_taps(self.rrc_taps) - def get_qam_const(self): - return self.qam_const - - def set_qam_const(self, qam_const): - self.qam_const = qam_const - def get_phase_bw(self): return self.phase_bw diff --git a/simulation/QAM/qam_nogui.grc b/simulation/QAM/qam_nogui.grc index 037c20f..e1d0277 100644 --- a/simulation/QAM/qam_nogui.grc +++ b/simulation/QAM/qam_nogui.grc @@ -8,9 +8,9 @@ options: description: '' gen_cmake: 'On' gen_linking: dynamic - generate_options: qt_gui + generate_options: no_gui hier_block_src_path: '.:' - id: qam + id: qam_nogui max_nouts: '0' output_language: python placement: (0,0) @@ -59,28 +59,19 @@ blocks: bus_sink: false bus_source: false bus_structure: null - coordinate: [224, 436.0] + coordinate: [224, 604.0] rotation: 0 state: true - name: eq_gain - id: variable_qtgui_range + id: variable 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 + value: 10e-3 states: bus_sink: false bus_source: false bus_structure: null - coordinate: [1336, 460.0] + coordinate: [1336, 212.0] rotation: 0 state: true - name: eq_mod @@ -120,24 +111,15 @@ blocks: rotation: 0 state: true - name: freq_offset - id: variable_qtgui_range + id: variable 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: [640, 460.0] + coordinate: [736, 180.0] rotation: 0 state: true - name: nfilts @@ -153,45 +135,48 @@ blocks: rotation: 0 state: true - name: noise_volt - id: variable_qtgui_range + id: variable 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 + value: 100e-6 states: bus_sink: false bus_source: false bus_structure: null - coordinate: [504, 460.0] + coordinate: [640, 180.0] rotation: 0 state: true - name: phase_bw - id: variable_qtgui_range + id: variable 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: [1640, 428.0] + coordinate: [1640, 188.0] + rotation: 0 + state: true +- name: qam_const + id: variable_constellation_rect + parameters: + comment: '' + const_points: '[(-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), + (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)]' + imag_sect: '1' + precision: '4' + real_sect: '1' + rot_sym: '4' + soft_dec_lut: None + sym_map: '[0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]' + w_imag_sect: '1' + w_real_sect: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [224, 436.0] rotation: 0 state: true - name: rrc_taps @@ -231,45 +216,27 @@ blocks: rotation: 0 state: true - name: time_offset - id: variable_qtgui_range + id: variable 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 + value: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [504, 604.0] + coordinate: [736, 252.0] rotation: 0 state: true - name: timing_loop_bw - id: variable_qtgui_range + id: variable 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: [1008, 548.0] + coordinate: [1000, 228.0] rotation: 0 state: true - name: analog_random_source_x_0 @@ -309,60 +276,23 @@ blocks: coordinate: [2272, 276.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: [408, 840.0] - rotation: 0 - state: true -- name: blocks_delay_0 - id: blocks_delay +- name: blocks_null_sink_0 + id: blocks_null_sink parameters: affinity: '' alias: '' + bus_structure_sink: '[[0,],]' comment: '' - delay: '50' - maxoutbuf: '0' - minoutbuf: '0' - num_ports: '1' + num_inputs: '1' type: float vlen: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [2264, 844.0] + coordinate: [2488, 280.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/doc/thesis/figures/data/SImulation - type: float - unbuffered: 'False' - vlen: '1' - states: - bus_sink: false - bus_source: false - bus_structure: null - coordinate: [2432, 108.0] - rotation: 0 - state: disabled - name: blocks_throttle_0 id: blocks_throttle parameters: @@ -398,22 +328,6 @@ blocks: coordinate: [2192, 436.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: [232, 840.0] - rotation: 0 - state: true - name: channels_channel_model_0 id: channels_channel_model parameters: @@ -446,7 +360,7 @@ blocks: modulus: eq_mod mu: eq_gain num_taps: eq_ntaps - sps: '1' + sps: sps states: bus_sink: false bus_source: false @@ -553,8 +467,8 @@ blocks: max_dev: '1.5' maxoutbuf: '0' minoutbuf: '0' - osps: '1' - sps: 'sps ' + osps: sps + sps: sps * 1.001 taps: rrc_taps type: ccf states: @@ -564,643 +478,20 @@ blocks: coordinate: [1000, 308.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: '' - 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: '1' - 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: [836.0, 128] - 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: '' - 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: '1' - 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: [1228.0, 88] - 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: '' - 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: '1' - 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: [1524.0, 88] - 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: '' - 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: '1' - 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: [1860.0, 64] - 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: '' - label10: '''''' - label2: '''''' - label3: '''''' - label4: '''''' - label5: '''''' - label6: '''''' - label7: '''''' - label8: '''''' - label9: '''''' - legend: 'True' - maxoutbuf: '0' - minoutbuf: '0' - name: '"Channel"' - nconnections: '1' - 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: [856.0, 472] - rotation: 270 - 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: '2' - 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: [2504, 268.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_time_sink_x_0, '0'] -- [blocks_char_to_float_0_0, '0', blocks_delay_0, '0'] -- [blocks_delay_0, '0', qtgui_time_sink_x_0, '1'] +- [blocks_char_to_float_0, '0', blocks_null_sink_0, '0'] - [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'] - [channels_channel_model_0, '0', digital_pfb_clock_sync_xxx_0, '0'] -- [channels_channel_model_0, '0', qtgui_const_sink_x_0, '0'] -- [channels_channel_model_0, '0', qtgui_freq_sink_x_0, '0'] - [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_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_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_diff_decoder_bb_0, '0', digital_map_bb_0, '0'] - [digital_map_bb_0, '0', blocks_unpack_k_bits_bb_0, '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'] metadata: file_format: 1 |