diff --git a/examples/pu_tx_1_channel.grc b/examples/pu_tx_1_channel.grc new file mode 100644 index 0000000000000000000000000000000000000000..abf0c360ff470f93c547e1809b2adcd1e41b85fd --- /dev/null +++ b/examples/pu_tx_1_channel.grc @@ -0,0 +1,579 @@ +options: + parameters: + author: '' + catch_exceptions: 'True' + category: '[GRC Hier Blocks]' + cmake_opt: '' + comment: '' + copyright: University of Melbourne + description: '' + gen_cmake: 'On' + gen_linking: dynamic + generate_options: qt_gui + hier_block_src_path: '.:' + id: pu_tx_1_channel + max_nouts: '0' + output_language: python + placement: (0,0) + qt_qss_theme: '' + realtime_scheduling: '' + run: 'True' + run_command: '{python} -u {filename}' + run_options: prompt + sizing_mode: fixed + thread_safe_setters: '' + title: DSA Primary User Tx - 1 Channel + window_size: '' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [8, 8] + rotation: 0 + state: enabled + +blocks: +- name: duration_ms + id: variable_qtgui_entry + parameters: + comment: '' + gui_hint: '' + label: Scenario Duration (ms) + type: real + value: '50' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [840, 12.0] + rotation: 0 + state: true +- name: fft_len + id: variable + parameters: + comment: '' + value: '64' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [184, 68.0] + rotation: 0 + state: enabled +- name: pdu_size + id: variable + parameters: + comment: '' + value: '64' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [256, 68.0] + rotation: 0 + state: enabled +- name: randomize + id: variable_qtgui_chooser + parameters: + comment: '' + gui_hint: '' + label: Randomize + label0: 'False' + label1: 'True' + label2: '' + label3: '' + label4: '' + labels: '[]' + num_opts: '2' + option0: '0' + option1: 'True' + option2: '2' + option3: '3' + option4: '4' + options: '[0, 1, 2]' + orient: Qt.QVBoxLayout + type: raw + value: 'False' + widget: combo_box + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [704, 8] + rotation: 0 + state: true +- name: rf_freq + id: variable_qtgui_range + parameters: + comment: '' + gui_hint: '' + label: RF Frequency + min_len: '200' + orient: QtCore.Qt.Horizontal + rangeType: float + start: 70e6 + step: 1e3 + stop: 6e9 + value: 2.45e9 + widget: counter + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [336, 12.0] + rotation: 0 + state: true +- name: samp_rate + id: variable + parameters: + comment: '' + value: '1000000' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [182, 8] + rotation: 0 + state: enabled +- name: scenario + id: variable_qtgui_range + parameters: + comment: '' + gui_hint: '' + label: Scenario + min_len: '200' + orient: QtCore.Qt.Horizontal + rangeType: int + start: '0' + step: '1' + stop: '1' + value: '1' + widget: counter + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [591, 9] + rotation: 0 + state: true +- name: tx_gain + id: variable_qtgui_range + parameters: + comment: '' + gui_hint: '' + label: Tx Gain + min_len: '200' + orient: QtCore.Qt.Horizontal + rangeType: float + start: '-23' + step: '1' + stop: '66' + value: '0' + widget: counter + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [472, 8] + 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, 236.0] + rotation: 0 + state: true +- name: bladeRF_sink_0 + id: bladeRF_sink + parameters: + affinity: '' + alias: '' + bias_tee0: 'False' + bias_tee1: 'False' + bw: '0' + comment: '' + dac: '10000' + dc_calibration: LPF_TUNING + device_id: '0' + fpga_image: '' + fpga_reload: 'False' + freq: rf_freq + gain0: tx_gain + gain1: '10' + if_gain0: '0' + if_gain1: '20' + in_clk: ONBOARD + lpf_mode: disabled + maxoutbuf: '0' + metadata: 'True' + minoutbuf: '0' + nchan: '1' + out_clk: 'False' + ref_clk: '0' + sample_rate: samp_rate + sampling: internal + show_pmic: 'False' + smb: '0' + tamer: internal + trigger0: 'False' + trigger1: 'False' + trigger_role0: master + trigger_role1: master + trigger_signal0: J51_1 + trigger_signal1: J51_1 + tsb_tag_name: packet_len + use_dac: 'False' + verbosity: warning + xb200: none + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [440, 492.0] + rotation: 0 + state: disabled +- name: blocks_multiply_const_vxx_0 + id: blocks_multiply_const_vxx + parameters: + affinity: '' + alias: '' + comment: '' + const: '0.025' + maxoutbuf: '0' + minoutbuf: '0' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [224, 436.0] + rotation: 0 + state: true +- name: blocks_stream_to_tagged_stream_0 + id: blocks_stream_to_tagged_stream + parameters: + affinity: '' + alias: '' + comment: '' + len_tag_key: '"packet_len"' + maxoutbuf: '0' + minoutbuf: '0' + packet_len: pdu_size + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [216, 252.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: [448, 436.0] + rotation: 0 + state: enabled +- name: digital_ofdm_tx_0 + id: digital_ofdm_tx + parameters: + affinity: '' + alias: '' + comment: '' + cp_len: fft_len // 4 + fft_len: fft_len + header_mod: '"BPSK"' + log: 'False' + maxoutbuf: '0' + minoutbuf: '0' + occupied_carriers: ([ii for ii in range(-26, 27) if ii not in (-21, -7, 7, 21)],) + packet_len_key: packet_len + payload_mod: '"QPSK"' + pilot_carriers: ((-21, -7, 7, 21,),) + pilot_symbols: ((1, 1, 1, -1,),) + rolloff: '0' + scramble_bits: 'False' + sync_word1: '[0., 0., 0., 0., 0., 0., 0., 1.41421356, 0., -1.41421356, 0., 1.41421356, + 0., -1.41421356, 0., -1.41421356, 0., -1.41421356, 0., 1.41421356, 0., -1.41421356, + 0., 1.41421356, 0., -1.41421356, 0., -1.41421356, 0., -1.41421356, 0., -1.41421356, + 0., 1.41421356, 0., -1.41421356, 0., 1.41421356, 0., 1.41421356, 0., 1.41421356, + 0., -1.41421356, 0., 1.41421356, 0., 1.41421356, 0., 1.41421356, 0., -1.41421356, + 0., 1.41421356, 0., 1.41421356, 0., 1.41421356, 0., 0., 0., 0., 0., 0.]' + sync_word2: '[0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, + 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 0, 1, -1, 1, 1, 1, -1, 1, 1, + 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 0, 0, 0, 0, + 0] ' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [448, 172.0] + rotation: 0 + state: true +- name: elen90089_dsa_pu_scenario_cc_0 + id: elen90089_dsa_pu_scenario_cc + parameters: + affinity: '' + alias: '' + comment: '' + duration_ms: duration_ms + maxoutbuf: '0' + minoutbuf: '0' + num_channels: '1' + random: randomize + samp_rate: samp_rate + scenario: scenario + seed: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [688, 220.0] + rotation: 0 + 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: '' + label: Relative Gain + label1: '' + label10: '''''' + label2: '''''' + label3: '''''' + label4: '''''' + label5: '''''' + label6: '''''' + label7: '''''' + label8: '''''' + label9: '''''' + legend: 'True' + maxoutbuf: '0' + minoutbuf: '0' + name: '""' + nconnections: '1' + norm_window: 'False' + 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: window.WIN_BLACKMAN_hARRIS + ymax: '10' + ymin: '-140' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [688, 500.0] + rotation: 0 + state: enabled +- 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 + 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.1' + 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' + ylabel: Amplitude + ymax: '1' + ymin: '-1' + yunit: '""' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [688, 420.0] + rotation: 0 + state: enabled +- name: virtual_sink_1 + id: virtual_sink + parameters: + alias: '' + comment: '' + stream_id: waveform0 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [936, 244.0] + rotation: 0 + state: true +- name: virtual_source_1 + id: virtual_source + parameters: + alias: '' + comment: '' + stream_id: waveform0 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [24, 436.0] + rotation: 0 + state: true + +connections: +- [analog_random_source_x_0, '0', blocks_stream_to_tagged_stream_0, '0'] +- [blocks_multiply_const_vxx_0, '0', bladeRF_sink_0, '0'] +- [blocks_multiply_const_vxx_0, '0', blocks_throttle_0, '0'] +- [blocks_stream_to_tagged_stream_0, '0', digital_ofdm_tx_0, '0'] +- [blocks_throttle_0, '0', qtgui_freq_sink_x_0, '0'] +- [blocks_throttle_0, '0', qtgui_time_sink_x_0, '0'] +- [digital_ofdm_tx_0, '0', elen90089_dsa_pu_scenario_cc_0, '0'] +- [elen90089_dsa_pu_scenario_cc_0, '0', virtual_sink_1, '0'] +- [virtual_source_1, '0', blocks_multiply_const_vxx_0, '0'] + +metadata: + file_format: 1