diff options
-rw-r--r-- | flowgraphs/qam_sim.grc | 932 | ||||
-rwxr-xr-x | flowgraphs/qam_sim.py | 352 | ||||
-rw-r--r-- | notebooks/FrameSynchronization.ipynb | 29 |
3 files changed, 1298 insertions, 15 deletions
diff --git a/flowgraphs/qam_sim.grc b/flowgraphs/qam_sim.grc new file mode 100644 index 0000000..c5f407b --- /dev/null +++ b/flowgraphs/qam_sim.grc @@ -0,0 +1,932 @@ +options: + parameters: + author: Naoki Sean Pross, Sara Cinzia Halter + 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_sim + max_nouts: '0' + output_language: python + placement: (0,0) + qt_qss_theme: '' + realtime_scheduling: '1' + run: 'True' + run_command: '{python} -u {filename}' + run_options: run + sizing_mode: fixed + thread_safe_setters: '' + title: QAM Sim + window_size: '' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [24, 12.0] + rotation: 0 + state: enabled + +blocks: +- name: access_code_symbols + id: variable + parameters: + comment: '' + value: '[(-0.31622776601683794-0.31622776601683794j), (-0.31622776601683794+0.31622776601683794j), + (-0.9486832980505138-0.9486832980505138j), (-0.9486832980505138-0.31622776601683794j)]' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [792, 1092.0] + rotation: 0 + state: true +- name: carrier_freq + id: variable + parameters: + comment: '' + value: 2.4e9 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [472, 572.0] + rotation: 0 + state: true +- name: excess_bw + id: variable + parameters: + comment: '' + value: '0.35' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [336, 1156.0] + rotation: 0 + state: true +- name: frame + id: fadingui_frame_obj + parameters: + alias: '' + comment: '' + payload_len: '4096' + preamble: '[0xbe, 0xef]' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 612.0] + rotation: 0 + state: disabled +- name: frame_len + id: variable + parameters: + comment: '' + value: len(testvec) +4 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [184, 252.0] + rotation: 0 + state: true +- name: nfilts + id: variable + parameters: + comment: '' + value: '32' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [256, 1156.0] + rotation: 0 + state: true +- name: qam_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: [472, 356.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: [432, 1156.0] + rotation: 0 + state: true +- name: samp_rate + id: variable + parameters: + comment: '' + value: 1e6 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [24, 148.0] + rotation: 0 + state: enabled +- name: sps + id: variable + parameters: + comment: '' + value: '4' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [144, 148.0] + rotation: 0 + state: true +- name: testvec + id: variable + parameters: + comment: '' + value: '[0x1f, 0x35] + [0x12, 0x48] ' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 252.0] + rotation: 0 + state: true +- name: analog_random_source_x_0 + id: analog_random_source_x + parameters: + affinity: '' + alias: '' + comment: '' + max: '255' + maxoutbuf: '0' + min: '0' + minoutbuf: '0' + num_samps: '400' + repeat: 'True' + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 420.0] + rotation: 0 + state: true +- name: blocks_complex_to_mag_0 + id: blocks_complex_to_mag + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1088, 1080.0] + rotation: 0 + state: true +- name: blocks_null_source_0 + id: blocks_null_source + parameters: + affinity: '' + alias: '' + bus_structure_source: '[[0,],]' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + num_outputs: '1' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 528.0] + rotation: 0 + state: true +- name: blocks_repack_bits_bb_0 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_LSB_FIRST + k: '2' + l: '8' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [768, 1300.0] + rotation: 0 + state: true +- name: blocks_stream_mux_0 + id: blocks_stream_mux + parameters: + affinity: '' + alias: '' + comment: '' + lengths: '[len(testvec), 4, 0]' + maxoutbuf: '0' + minoutbuf: '0' + num_inputs: '3' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [272, 416.0] + rotation: 0 + state: true +- name: blocks_stream_to_vector_0 + id: blocks_stream_to_vector + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + num_items: frame_len + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [992, 1312.0] + rotation: 0 + state: true +- name: blocks_tagged_stream_align_0 + id: blocks_tagged_stream_align + parameters: + affinity: '' + alias: '' + comment: '' + lengthtagname: frame_start + maxoutbuf: '0' + minoutbuf: '0' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [496, 1308.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: [744, 444.0] + rotation: 0 + state: true +- name: blocks_vector_source_x_0 + id: blocks_vector_source_x + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + repeat: 'True' + tags: '[]' + type: byte + vector: testvec + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 324.0] + rotation: 0 + state: true +- name: channels_channel_model_0 + id: channels_channel_model + parameters: + affinity: '' + alias: '' + block_tags: 'False' + comment: '' + epsilon: '1.0' + freq_offset: '0' + maxoutbuf: '0' + minoutbuf: '0' + noise_voltage: 100e-3 + seed: '243' + taps: np.exp(1j * 30 / 180 * np.pi) + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [312, 716.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,1.8) + fDTs: ((4*carrier_freq)/(3*10e8))/samp_rate + mags: (1,0.12) + maxoutbuf: '0' + minoutbuf: '0' + ntaps: '8' + seed: '21' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [600, 572.0] + rotation: 0 + state: disabled +- name: digital_constellation_decoder_cb_0 + id: digital_constellation_decoder_cb + parameters: + affinity: '' + alias: '' + comment: '' + constellation: qam_const + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [256, 1308.0] + rotation: 0 + state: true +- name: digital_constellation_modulator_0 + id: digital_constellation_modulator + parameters: + affinity: '' + alias: '' + comment: '' + constellation: qam_const + differential: 'False' + 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: [472, 420.0] + rotation: 0 + state: true +- name: digital_corr_est_cc_0 + id: digital_corr_est_cc + parameters: + affinity: '' + alias: '' + comment: '' + mark_delay: len(access_code_symbols) // 2 + maxoutbuf: '0' + minoutbuf: '0' + sps: '1' + symbols: access_code_symbols + threshold: '0.9' + threshold_method: digital.THRESHOLD_ABSOLUTE + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [792, 972.0] + rotation: 0 + state: true +- name: digital_lms_dd_equalizer_cc_0 + id: digital_lms_dd_equalizer_cc + parameters: + affinity: '' + alias: '' + cnst: qam_const + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + mu: 5e-3 + num_taps: '2' + sps: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [520, 980.0] + rotation: 0 + state: true +- name: digital_pfb_clock_sync_xxx_0 + id: digital_pfb_clock_sync_xxx + parameters: + affinity: '' + alias: '' + comment: '' + filter_size: '32' + init_phase: '16' + loop_bw: 2 * np.pi / 100 + 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: [248, 1004.0] + rotation: 0 + state: true +- name: fadingui_ber_0 + id: fadingui_ber + parameters: + affinity: '' + alias: '' + comment: '' + vgl: testvec + list(np.zeros(4)) + vlen: frame_len + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1184, 1300.0] + rotation: 0 + state: true +- name: fadingui_datasource_0 + id: fadingui_datasource + parameters: + affinity: '' + alias: '' + comment: '' + fname: '' + frame_obj: '' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [208, 612.0] + rotation: 0 + state: disabled +- name: fadingui_multipath_fading_0 + id: fadingui_multipath_fading + parameters: + affinity: '' + alias: '' + amplitudes: '[0.12]' + comment: '' + delays: '[1.8]' + los: 'True' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [648, 740.0] + rotation: 0 + state: enabled +- name: fadingui_netsink_0 + id: fadingui_netsink + parameters: + address: udp://localhost:31415 + affinity: '' + alias: '' + comment: '' + type: complex + veclen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [704, 316.0] + rotation: 0 + state: disabled +- name: fadingui_netsink_1 + id: fadingui_netsink + parameters: + address: udp://localhost:31415 + affinity: '' + alias: '' + comment: '' + type: complex + veclen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [768, 916.0] + rotation: 0 + state: disabled +- name: fadingui_netsink_3 + id: fadingui_netsink + parameters: + address: udp://localhost:31415 + affinity: '' + alias: '' + comment: '' + type: complex + veclen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1280, 916.0] + rotation: 0 + state: disabled +- name: fadingui_netsink_4 + id: fadingui_netsink + parameters: + address: udp://localhost:31415 + affinity: '' + alias: '' + comment: '' + type: complex + veclen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [528, 916.0] + rotation: 0 + state: disabled +- name: fadingui_phasecorrection_0 + id: fadingui_phasecorrection + parameters: + affinity: '' + alias: '' + comment: '' + frame_len: frame_len + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1032, 988.0] + rotation: 0 + state: enabled +- name: import_0 + id: import + parameters: + alias: '' + comment: '' + imports: import numpy as np + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [224, 12.0] + rotation: 0 + state: enabled +- 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: '' + 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: '""' + nconnections: '3' + 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: [1304, 800.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: '' + label1: Signal 1 + label10: Signal 10 + label2: Signal 2 + 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: '""' + nconnections: '1' + size: '1024' + srate: samp_rate / sps + 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: '10' + ymin: '0' + yunit: '""' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1272, 1060.0] + rotation: 0 + state: true +- name: virtual_sink_0 + id: virtual_sink + parameters: + alias: '' + comment: '' + stream_id: modulated + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [952, 444.0] + rotation: 0 + state: true +- name: virtual_sink_1 + id: virtual_sink + parameters: + alias: '' + comment: '' + stream_id: envelope + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1000, 756.0] + rotation: 0 + state: true +- name: virtual_sink_2 + id: virtual_sink + parameters: + alias: '' + comment: '' + stream_id: symbols + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1336, 988.0] + rotation: 0 + state: true +- name: virtual_source_0 + id: virtual_source + parameters: + alias: '' + comment: '' + stream_id: symbols + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 1308.0] + rotation: 0 + state: true +- name: virtual_source_1 + id: virtual_source + parameters: + alias: '' + comment: '' + stream_id: envelope + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 1052.0] + rotation: 0 + state: true +- name: virtual_source_2 + id: virtual_source + parameters: + alias: '' + comment: '' + stream_id: modulated + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [56, 756.0] + rotation: 0 + state: true + +connections: +- [analog_random_source_x_0, '0', blocks_stream_mux_0, '1'] +- [blocks_complex_to_mag_0, '0', qtgui_time_sink_x_0, '0'] +- [blocks_null_source_0, '0', blocks_stream_mux_0, '2'] +- [blocks_repack_bits_bb_0, '0', blocks_stream_to_vector_0, '0'] +- [blocks_stream_mux_0, '0', digital_constellation_modulator_0, '0'] +- [blocks_stream_to_vector_0, '0', fadingui_ber_0, '0'] +- [blocks_tagged_stream_align_0, '0', blocks_repack_bits_bb_0, '0'] +- [blocks_throttle_0, '0', virtual_sink_0, '0'] +- [blocks_vector_source_x_0, '0', blocks_stream_mux_0, '0'] +- [channels_channel_model_0, '0', channels_selective_fading_model_0, '0'] +- [channels_channel_model_0, '0', fadingui_multipath_fading_0, '0'] +- [channels_selective_fading_model_0, '0', virtual_sink_1, '0'] +- [digital_constellation_decoder_cb_0, '0', blocks_tagged_stream_align_0, '0'] +- [digital_constellation_modulator_0, '0', blocks_throttle_0, '0'] +- [digital_constellation_modulator_0, '0', fadingui_netsink_0, '0'] +- [digital_corr_est_cc_0, '0', fadingui_phasecorrection_0, '0'] +- [digital_corr_est_cc_0, '1', blocks_complex_to_mag_0, '0'] +- [digital_lms_dd_equalizer_cc_0, '0', digital_corr_est_cc_0, '0'] +- [digital_lms_dd_equalizer_cc_0, '0', qtgui_const_sink_x_0, '1'] +- [digital_pfb_clock_sync_xxx_0, '0', digital_lms_dd_equalizer_cc_0, '0'] +- [digital_pfb_clock_sync_xxx_0, '0', fadingui_netsink_4, '0'] +- [digital_pfb_clock_sync_xxx_0, '0', qtgui_const_sink_x_0, '0'] +- [fadingui_datasource_0, '0', digital_constellation_modulator_0, '0'] +- [fadingui_multipath_fading_0, '0', virtual_sink_1, '0'] +- [fadingui_phasecorrection_0, '0', fadingui_netsink_3, '0'] +- [fadingui_phasecorrection_0, '0', qtgui_const_sink_x_0, '2'] +- [fadingui_phasecorrection_0, '0', virtual_sink_2, '0'] +- [virtual_source_0, '0', digital_constellation_decoder_cb_0, '0'] +- [virtual_source_1, '0', digital_pfb_clock_sync_xxx_0, '0'] +- [virtual_source_2, '0', channels_channel_model_0, '0'] + +metadata: + file_format: 1 diff --git a/flowgraphs/qam_sim.py b/flowgraphs/qam_sim.py new file mode 100755 index 0000000..9f22572 --- /dev/null +++ b/flowgraphs/qam_sim.py @@ -0,0 +1,352 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# +# SPDX-License-Identifier: GPL-3.0 +# +# GNU Radio Python Flow Graph +# Title: QAM Sim +# Author: Naoki Sean Pross, Sara Cinzia Halter +# GNU Radio version: 3.8.2.0 + +from distutils.version import StrictVersion + +if __name__ == '__main__': + import ctypes + import sys + if sys.platform.startswith('linux'): + try: + x11 = ctypes.cdll.LoadLibrary('libX11.so') + x11.XInitThreads() + except: + print("Warning: failed to XInitThreads()") + +from PyQt5 import Qt +from gnuradio import qtgui +from gnuradio.filter import firdes +import sip +from gnuradio import blocks +import numpy +from gnuradio import channels +from gnuradio import digital +from gnuradio import gr +import sys +import signal +from argparse import ArgumentParser +from gnuradio.eng_arg import eng_float, intx +from gnuradio import eng_notation +import fadingui +import numpy as np + +from gnuradio import qtgui + +class qam_sim(gr.top_block, Qt.QWidget): + + def __init__(self): + gr.top_block.__init__(self, "QAM Sim") + Qt.QWidget.__init__(self) + self.setWindowTitle("QAM Sim") + qtgui.util.check_set_qss() + try: + self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc')) + except: + pass + self.top_scroll_layout = Qt.QVBoxLayout() + self.setLayout(self.top_scroll_layout) + self.top_scroll = Qt.QScrollArea() + self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame) + self.top_scroll_layout.addWidget(self.top_scroll) + self.top_scroll.setWidgetResizable(True) + self.top_widget = Qt.QWidget() + self.top_scroll.setWidget(self.top_widget) + self.top_layout = Qt.QVBoxLayout(self.top_widget) + self.top_grid_layout = Qt.QGridLayout() + self.top_layout.addLayout(self.top_grid_layout) + + self.settings = Qt.QSettings("GNU Radio", "qam_sim") + + try: + if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): + self.restoreGeometry(self.settings.value("geometry").toByteArray()) + else: + self.restoreGeometry(self.settings.value("geometry")) + except: + pass + + ################################################## + # Variables + ################################################## + self.testvec = testvec = [0x1f, 0x35] + [0x12, 0x48] + self.sps = sps = 4 + self.nfilts = nfilts = 32 + self.excess_bw = excess_bw = 0.35 + self.samp_rate = samp_rate = 1e6 + 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_16qam().base() + self.frame_len = frame_len = len(testvec) +4 + self.carrier_freq = carrier_freq = 2.4e9 + self.access_code_symbols = access_code_symbols = [(-0.31622776601683794-0.31622776601683794j), (-0.31622776601683794+0.31622776601683794j), (-0.9486832980505138-0.9486832980505138j), (-0.9486832980505138-0.31622776601683794j)] + + ################################################## + # Blocks + ################################################## + self.qtgui_time_sink_x_0 = qtgui.time_sink_f( + 1024, #size + samp_rate / sps, #samp_rate + "", #name + 1 #number of inputs + ) + self.qtgui_time_sink_x_0.set_update_time(0.10) + self.qtgui_time_sink_x_0.set_y_axis(0, 10) + + self.qtgui_time_sink_x_0.set_y_label('Amplitude', "") + + self.qtgui_time_sink_x_0.enable_tags(True) + self.qtgui_time_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, qtgui.TRIG_SLOPE_POS, 0.0, 0, 0, "") + self.qtgui_time_sink_x_0.enable_autoscale(False) + self.qtgui_time_sink_x_0.enable_grid(False) + self.qtgui_time_sink_x_0.enable_axis_labels(True) + self.qtgui_time_sink_x_0.enable_control_panel(False) + self.qtgui_time_sink_x_0.enable_stem_plot(False) + + + labels = ['Signal 1', 'Signal 2', 'Signal 3', 'Signal 4', 'Signal 5', + 'Signal 6', 'Signal 7', 'Signal 8', 'Signal 9', 'Signal 10'] + widths = [1, 1, 1, 1, 1, + 1, 1, 1, 1, 1] + colors = ['blue', 'red', 'green', 'black', 'cyan', + 'magenta', 'yellow', 'dark red', 'dark green', 'dark blue'] + alphas = [1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0] + styles = [1, 1, 1, 1, 1, + 1, 1, 1, 1, 1] + markers = [-1, -1, -1, -1, -1, + -1, -1, -1, -1, -1] + + + for i in range(1): + if len(labels[i]) == 0: + self.qtgui_time_sink_x_0.set_line_label(i, "Data {0}".format(i)) + else: + self.qtgui_time_sink_x_0.set_line_label(i, labels[i]) + self.qtgui_time_sink_x_0.set_line_width(i, widths[i]) + self.qtgui_time_sink_x_0.set_line_color(i, colors[i]) + self.qtgui_time_sink_x_0.set_line_style(i, styles[i]) + self.qtgui_time_sink_x_0.set_line_marker(i, markers[i]) + self.qtgui_time_sink_x_0.set_line_alpha(i, alphas[i]) + + self._qtgui_time_sink_x_0_win = sip.wrapinstance(self.qtgui_time_sink_x_0.pyqwidget(), Qt.QWidget) + self.top_grid_layout.addWidget(self._qtgui_time_sink_x_0_win) + self.qtgui_const_sink_x_0 = qtgui.const_sink_c( + 1024, #size + "", #name + 3 #number of inputs + ) + self.qtgui_const_sink_x_0.set_update_time(0.10) + self.qtgui_const_sink_x_0.set_y_axis(-2, 2) + self.qtgui_const_sink_x_0.set_x_axis(-2, 2) + self.qtgui_const_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, qtgui.TRIG_SLOPE_POS, 0.0, 0, "") + self.qtgui_const_sink_x_0.enable_autoscale(False) + self.qtgui_const_sink_x_0.enable_grid(False) + self.qtgui_const_sink_x_0.enable_axis_labels(True) + + + labels = ['', '', '', '', '', + '', '', '', '', ''] + widths = [1, 1, 1, 1, 1, + 1, 1, 1, 1, 1] + colors = ["blue", "red", "red", "red", "red", + "red", "red", "red", "red", "red"] + styles = [0, 0, 0, 0, 0, + 0, 0, 0, 0, 0] + markers = [0, 0, 0, 0, 0, + 0, 0, 0, 0, 0] + alphas = [1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0] + + for i in range(3): + if len(labels[i]) == 0: + self.qtgui_const_sink_x_0.set_line_label(i, "Data {0}".format(i)) + else: + self.qtgui_const_sink_x_0.set_line_label(i, labels[i]) + self.qtgui_const_sink_x_0.set_line_width(i, widths[i]) + self.qtgui_const_sink_x_0.set_line_color(i, colors[i]) + self.qtgui_const_sink_x_0.set_line_style(i, styles[i]) + self.qtgui_const_sink_x_0.set_line_marker(i, markers[i]) + self.qtgui_const_sink_x_0.set_line_alpha(i, alphas[i]) + + self._qtgui_const_sink_x_0_win = sip.wrapinstance(self.qtgui_const_sink_x_0.pyqwidget(), Qt.QWidget) + self.top_grid_layout.addWidget(self._qtgui_const_sink_x_0_win) + self.fadingui_phasecorrection_0 = fadingui.phasecorrection(frame_len) + self.fadingui_multipath_fading_0 = fadingui.multipath_fading(amplitudes=[0.12], delays=[1.8], los =True) + self.fadingui_ber_0 = fadingui.ber(vgl=testvec + list(np.zeros(4)), vlen=frame_len) + self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, 2 * np.pi / 100, rrc_taps, 32, 16, 1.5, 1) + self.digital_lms_dd_equalizer_cc_0 = digital.lms_dd_equalizer_cc(2, 5e-3, 1, qam_const) + self.digital_corr_est_cc_0 = digital.corr_est_cc(access_code_symbols, 1, len(access_code_symbols) // 2, 0.9, digital.THRESHOLD_ABSOLUTE) + self.digital_constellation_modulator_0 = digital.generic_mod( + constellation=qam_const, + differential=False, + samples_per_symbol=sps, + pre_diff_code=True, + excess_bw=excess_bw, + verbose=False, + log=False) + self.digital_constellation_decoder_cb_0 = digital.constellation_decoder_cb(qam_const) + self.channels_channel_model_0 = channels.channel_model( + noise_voltage=100e-3, + frequency_offset=0, + epsilon=1.0, + taps=[np.exp(1j * 30 / 180 * np.pi)], + noise_seed=243, + block_tags=False) + self.blocks_vector_source_x_0 = blocks.vector_source_b(testvec, True, 1, []) + self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, samp_rate,True) + self.blocks_tagged_stream_align_0 = blocks.tagged_stream_align(gr.sizeof_char*1, 'frame_start') + self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_char*1, frame_len) + self.blocks_stream_mux_0 = blocks.stream_mux(gr.sizeof_char*1, [len(testvec), 4, 0]) + self.blocks_repack_bits_bb_0 = blocks.repack_bits_bb(2, 8, "", False, gr.GR_LSB_FIRST) + self.blocks_null_source_0 = blocks.null_source(gr.sizeof_char*1) + self.blocks_complex_to_mag_0 = blocks.complex_to_mag(1) + self.analog_random_source_x_0 = blocks.vector_source_b(list(map(int, numpy.random.randint(0, 255, 400))), True) + + + + ################################################## + # Connections + ################################################## + self.connect((self.analog_random_source_x_0, 0), (self.blocks_stream_mux_0, 1)) + self.connect((self.blocks_complex_to_mag_0, 0), (self.qtgui_time_sink_x_0, 0)) + self.connect((self.blocks_null_source_0, 0), (self.blocks_stream_mux_0, 2)) + self.connect((self.blocks_repack_bits_bb_0, 0), (self.blocks_stream_to_vector_0, 0)) + self.connect((self.blocks_stream_mux_0, 0), (self.digital_constellation_modulator_0, 0)) + self.connect((self.blocks_stream_to_vector_0, 0), (self.fadingui_ber_0, 0)) + self.connect((self.blocks_tagged_stream_align_0, 0), (self.blocks_repack_bits_bb_0, 0)) + self.connect((self.blocks_throttle_0, 0), (self.channels_channel_model_0, 0)) + self.connect((self.blocks_vector_source_x_0, 0), (self.blocks_stream_mux_0, 0)) + self.connect((self.channels_channel_model_0, 0), (self.fadingui_multipath_fading_0, 0)) + self.connect((self.digital_constellation_decoder_cb_0, 0), (self.blocks_tagged_stream_align_0, 0)) + self.connect((self.digital_constellation_modulator_0, 0), (self.blocks_throttle_0, 0)) + self.connect((self.digital_corr_est_cc_0, 1), (self.blocks_complex_to_mag_0, 0)) + self.connect((self.digital_corr_est_cc_0, 0), (self.fadingui_phasecorrection_0, 0)) + self.connect((self.digital_lms_dd_equalizer_cc_0, 0), (self.digital_corr_est_cc_0, 0)) + self.connect((self.digital_lms_dd_equalizer_cc_0, 0), (self.qtgui_const_sink_x_0, 1)) + self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.digital_lms_dd_equalizer_cc_0, 0)) + self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.qtgui_const_sink_x_0, 0)) + self.connect((self.fadingui_multipath_fading_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0)) + self.connect((self.fadingui_phasecorrection_0, 0), (self.digital_constellation_decoder_cb_0, 0)) + self.connect((self.fadingui_phasecorrection_0, 0), (self.qtgui_const_sink_x_0, 2)) + + + def closeEvent(self, event): + self.settings = Qt.QSettings("GNU Radio", "qam_sim") + self.settings.setValue("geometry", self.saveGeometry()) + event.accept() + + def get_testvec(self): + return self.testvec + + def set_testvec(self, testvec): + self.testvec = testvec + self.set_frame_len(len(self.testvec) +4) + self.blocks_vector_source_x_0.set_data(self.testvec, []) + + def get_sps(self): + return self.sps + + 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.qtgui_time_sink_x_0.set_samp_rate(self.samp_rate / self.sps) + + def get_nfilts(self): + return self.nfilts + + def set_nfilts(self, nfilts): + self.nfilts = nfilts + self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.sps), self.excess_bw, 45*self.nfilts)) + + def get_excess_bw(self): + return self.excess_bw + + def set_excess_bw(self, excess_bw): + self.excess_bw = excess_bw + self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.sps), self.excess_bw, 45*self.nfilts)) + + def get_samp_rate(self): + return self.samp_rate + + def set_samp_rate(self, samp_rate): + self.samp_rate = samp_rate + self.blocks_throttle_0.set_sample_rate(self.samp_rate) + self.qtgui_time_sink_x_0.set_samp_rate(self.samp_rate / self.sps) + + def get_rrc_taps(self): + return self.rrc_taps + + def set_rrc_taps(self, rrc_taps): + 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_frame_len(self): + return self.frame_len + + def set_frame_len(self, frame_len): + self.frame_len = frame_len + + def get_carrier_freq(self): + return self.carrier_freq + + def set_carrier_freq(self, carrier_freq): + self.carrier_freq = carrier_freq + + def get_access_code_symbols(self): + return self.access_code_symbols + + def set_access_code_symbols(self, access_code_symbols): + self.access_code_symbols = access_code_symbols + self.digital_corr_est_cc_0.set_mark_delay(len(self.access_code_symbols) // 2) + + + + + +def main(top_block_cls=qam_sim, options=None): + if gr.enable_realtime_scheduling() != gr.RT_OK: + print("Error: failed to enable real-time scheduling.") + + if StrictVersion("4.5.0") <= StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): + style = gr.prefs().get_string('qtgui', 'style', 'raster') + Qt.QApplication.setGraphicsSystem(style) + qapp = Qt.QApplication(sys.argv) + + tb = top_block_cls() + + tb.start() + + tb.show() + + def sig_handler(sig=None, frame=None): + Qt.QApplication.quit() + + signal.signal(signal.SIGINT, sig_handler) + signal.signal(signal.SIGTERM, sig_handler) + + timer = Qt.QTimer() + timer.start(500) + timer.timeout.connect(lambda: None) + + def quitting(): + tb.stop() + tb.wait() + + qapp.aboutToQuit.connect(quitting) + qapp.exec_() + +if __name__ == '__main__': + main() diff --git a/notebooks/FrameSynchronization.ipynb b/notebooks/FrameSynchronization.ipynb index 9902c18..c3f1059 100644 --- a/notebooks/FrameSynchronization.ipynb +++ b/notebooks/FrameSynchronization.ipynb @@ -68,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "id": "515891a9-dbd2-4088-9a41-b792d878f0fc", "metadata": {}, "outputs": [], @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "id": "3a4c834f-7012-4e22-b9f3-865527d09c02", "metadata": {}, "outputs": [ @@ -121,7 +121,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 1440x288 with 2 Axes>" ] @@ -154,7 +154,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 1440x288 with 2 Axes>" ] @@ -188,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 7, "id": "b56d782d-fcea-4fb9-b0c1-9c3933d5ce6c", "metadata": {}, "outputs": [], @@ -218,19 +218,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 8, "id": "2fb687aa-0061-4626-bf6b-3ec7d628d739", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { - "ename": "NameError", - "evalue": "name 'np' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/tmp/ipykernel_2456/3352720696.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# convert into chunks of 4 bits for QPSK\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mchunks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mac_pad\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0msyms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodulate_16qam\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 10, 3, 4]\n", + "[(-0.31622776601683794-0.31622776601683794j), (-0.31622776601683794+0.31622776601683794j), (-0.9486832980505138-0.9486832980505138j), (-0.9486832980505138-0.31622776601683794j)]\n" ] } ], |