1255 lines
29 KiB
Plaintext
1255 lines
29 KiB
Plaintext
options:
|
|
parameters:
|
|
author: Mike Markowski
|
|
catch_exceptions: 'True'
|
|
category: '[GRC Hier Blocks]'
|
|
cmake_opt: ''
|
|
comment: ''
|
|
copyright: ''
|
|
description: ''
|
|
gen_cmake: 'On'
|
|
gen_linking: dynamic
|
|
generate_options: qt_gui
|
|
hier_block_src_path: '.:'
|
|
id: amRadio
|
|
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: AM Receiver
|
|
window_size: ''
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [16, 146]
|
|
rotation: 0
|
|
state: enabled
|
|
|
|
blocks:
|
|
- name: audio_Hz
|
|
id: variable
|
|
parameters:
|
|
comment: ''
|
|
value: '48000'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [193, 145]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: fine_daHz
|
|
id: variable_qtgui_range
|
|
parameters:
|
|
comment: ''
|
|
gui_hint: 1,1,1,1
|
|
label: Fine (daHz)
|
|
min_len: '200'
|
|
orient: QtCore.Qt.Horizontal
|
|
rangeType: float
|
|
start: '-400'
|
|
step: '10'
|
|
stop: '400'
|
|
value: '190'
|
|
widget: counter_slider
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [625, 283]
|
|
rotation: 0
|
|
state: true
|
|
- name: freq_kHz
|
|
id: variable_qtgui_range
|
|
parameters:
|
|
comment: ''
|
|
gui_hint: 0,1,1,1
|
|
label: Freq (kHz)
|
|
min_len: '200'
|
|
orient: QtCore.Qt.Horizontal
|
|
rangeType: float
|
|
start: '530'
|
|
step: '10'
|
|
stop: '1700'
|
|
value: '1060'
|
|
widget: counter_slider
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [623, 148]
|
|
rotation: 0
|
|
state: true
|
|
- name: mute
|
|
id: variable_qtgui_check_box
|
|
parameters:
|
|
comment: ''
|
|
'false': 'False'
|
|
gui_hint: 0,2,1,1
|
|
label: ''
|
|
'true': 'True'
|
|
type: bool
|
|
value: 'False'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [761, 146]
|
|
rotation: 0
|
|
state: true
|
|
- name: rfGain_dB
|
|
id: variable_qtgui_range
|
|
parameters:
|
|
comment: ''
|
|
gui_hint: 1,0,1,1
|
|
label: RF Gain (dB)
|
|
min_len: '200'
|
|
orient: QtCore.Qt.Horizontal
|
|
rangeType: int
|
|
start: '10'
|
|
step: '1'
|
|
stop: '90'
|
|
value: '45'
|
|
widget: counter_slider
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [489, 283]
|
|
rotation: 0
|
|
state: true
|
|
- name: sa_Hz
|
|
id: variable
|
|
parameters:
|
|
comment: 8 Sa/cycle
|
|
value: '8'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [290, 144]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: samp_rate
|
|
id: variable
|
|
parameters:
|
|
comment: ''
|
|
value: audio_Hz * sa_Hz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [371, 146]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: up0_Hz
|
|
id: variable
|
|
parameters:
|
|
comment: 'Up-converter start frequency.
|
|
|
|
|
|
My SDR requires an
|
|
|
|
up-converterfor
|
|
|
|
frequencies < 70 MHz.
|
|
|
|
|
|
Set this to 0 if you don''t
|
|
|
|
need an up-converter.'
|
|
value: int(125e6)
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [193, 233]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: volume
|
|
id: variable_qtgui_range
|
|
parameters:
|
|
comment: ''
|
|
gui_hint: 0,0,1,1
|
|
label: Audio Gain
|
|
min_len: '200'
|
|
orient: QtCore.Qt.Horizontal
|
|
rangeType: float
|
|
start: '0'
|
|
step: 500e-3
|
|
stop: '1'
|
|
value: '0.2'
|
|
widget: counter_slider
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [475, 147]
|
|
rotation: 0
|
|
state: true
|
|
- name: analog_agc_xx_0
|
|
id: analog_agc_xx
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: 'Counter AM
|
|
|
|
rises and falls.'
|
|
gain: '1.0'
|
|
max_gain: '65536'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
rate: 1e-4
|
|
reference: '1.0'
|
|
type: complex
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [238, 1439]
|
|
rotation: 0
|
|
state: true
|
|
- name: audio_sink_0_0
|
|
id: audio_sink
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: Soundcard.
|
|
device_name: ''
|
|
num_inputs: '1'
|
|
ok_to_block: 'False'
|
|
samp_rate: int(audio_Hz)
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [964, 1455]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: blocks_add_const_vxx_0
|
|
id: blocks_add_const_vxx
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: '1 is added during
|
|
|
|
modulation so that
|
|
|
|
a carrier exists even
|
|
|
|
without audio.'
|
|
const: '-1'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
type: float
|
|
vlen: '1'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [594, 1463]
|
|
rotation: 0
|
|
state: true
|
|
- name: blocks_complex_to_mag_0
|
|
id: blocks_complex_to_mag
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: Amplitude of sample.
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
vlen: '1'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [413, 1467]
|
|
rotation: 0
|
|
state: true
|
|
- name: blocks_msgpair_to_var_0
|
|
id: blocks_msgpair_to_var
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: ''
|
|
target: freq_kHz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [1352, 852.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: blocks_multiply_const_vxx_0
|
|
id: blocks_multiply_const_vxx
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: Volume.
|
|
const: volume
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
type: float
|
|
vlen: '1'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [791, 1463]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: blocks_mute_xx_0
|
|
id: blocks_mute_xx
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: ''
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
mute: mute
|
|
type: complex
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [584, 736]
|
|
rotation: 0
|
|
state: true
|
|
- name: epy_block_0
|
|
id: epy_block
|
|
parameters:
|
|
_source_code: "'''Convert an arbitrary frequency in the AM broadcast band to the\
|
|
\ frequency\nof the nearest radio station frequency.\n\nMike Markowski, mike.ab3ap@gmail.com\n\
|
|
Feb 2021\n'''\n\nimport numpy as np\nfrom gnuradio import gr\nimport pmt\n\n\
|
|
class snapBlock(gr.basic_block):\n\n\tdef __init__(self):\n\t\tgr.basic_block.__init__(\n\
|
|
\t\t\tself,\n\t\t\tname=\"Snap to Station\",\n\t\t\tin_sig=None,\n\t\t\tout_sig=None)\n\
|
|
\n\t\t# User input that is only somewhere near a station frequency.\n\t\tself.message_port_register_in(pmt.intern('raw_Hz_in'))\n\
|
|
\t\tself.set_msg_handler(pmt.intern('raw_Hz_in'), self.stationSnap)\n\n\t\t\
|
|
# Output in Hz and kHz that is exactly a station frequency.\n\t\tself.message_port_register_out(pmt.intern('snapped_Hz_out'))\n\
|
|
\t\tself.message_port_register_out(pmt.intern('snapped_kHz_out'))\n\n\tdef stationSnap(self,\
|
|
\ msg):\n\n\t\t'''Accept a pmt pair with user selected frequency information\
|
|
\ and\n\t\tadjust it to the nearest broadcast AM frequency.\n\n\t\tInputs:\n\
|
|
\t\t msg (dictionary) : assumed to contain only: (freq . <float>)\n\n\t\tOutputs:\n\
|
|
\t\t freq_Hz_out (pmt.dict) : (freq . snappedFreq) where snappedFreq\n\t\t\
|
|
\ is input frequency in Hz moved to nearest broadcast frequency.\n\t\t freq_kHz_out\
|
|
\ (pmt.dict) : (freq . snappedFreq) where snappedFreq\n\t\t is input frequency\
|
|
\ in kHz moved to nearest broadcast frequency.\n\t\t'''\n\n\t\t# Disassemble\
|
|
\ pmt pair.\n\t\tcmd = pmt.car(msg)\n\t\tfreq = pmt.cdr(msg)\n\t\tfreqRaw_kHz\
|
|
\ = pmt.to_python(freq) / 1e3 # Easier to work in kHz.\n\n\t\t# Snap user-clicked\
|
|
\ freq to nearest AM station.\n\t\tspacing = 10 # N. American broadcast AM spacing\
|
|
\ in kHz.\n\t\tfreq_kHz = float(round(freqRaw_kHz / spacing) * spacing)\n\t\t\
|
|
freq_Hz = freq_kHz * 1e3\n\n\t\t# Generate output message, (freq . freq_Hz).\n\
|
|
\t\tpair = pmt.cons(cmd, pmt.to_pmt(freq_Hz))\n\t\tself.message_port_pub(pmt.intern('snapped_Hz_out'),\
|
|
\ pair)\n\n\t\t# Generate output message, (freq . freq_kHz).\n\t\tpair2 = pmt.cons(cmd,\
|
|
\ pmt.to_pmt(freq_kHz))\n\t\tself.message_port_pub(pmt.intern('snapped_kHz_out'),\
|
|
\ pair2)\n"
|
|
affinity: ''
|
|
alias: ''
|
|
comment: 'Snap user choice
|
|
|
|
to nearest station.'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
states:
|
|
_io_cache: ('Snap to Station', 'snapBlock', [], [('raw_Hz_in', 'message', 1)],
|
|
[('snapped_kHz_out', 'message', 1), ('snapped_Hz_out', 'message', 1)], '', [])
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [1072, 920.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: epy_block_1
|
|
id: epy_block
|
|
parameters:
|
|
_source_code: "'''Convert a pmt pair (freq . f_Hz) to (freq . f_kHz).\n\nMike\
|
|
\ Markowski, mike.ab3ap@gmail.com\nFeb 2021\n'''\n\nimport numpy as np\nfrom\
|
|
\ gnuradio import gr\nimport pmt\n\ndelta_Hz = 0\n\nclass cvtBlock(gr.basic_block):\n\
|
|
\n\tdef __init__(self, offset_Hz=0):\n\t\t\"\"\"arguments to this function show\
|
|
\ up as parameters in GRC\"\"\"\n\n\t\tglobal delta_Hz\n\n\t\tgr.basic_block.__init__(\n\
|
|
\t\t\tself,\n\t\t\tname='kHz to Hz',\n\t\t\tin_sig=None,\n\t\t\tout_sig=None\n\
|
|
\t\t)\n\t\tdelta_Hz = offset_Hz\n\n\t\tself.message_port_register_in(pmt.intern('freq_kHz_in'))\n\
|
|
\t\tself.set_msg_handler(pmt.intern('freq_kHz_in'), self.kHzToHz)\n\n\t\tself.message_port_register_out(pmt.intern('freq_Hz_out'))\n\
|
|
\t\tself.message_port_register_out(pmt.intern('upConv_Hz_out'))\n\n\tdef kHzToHz(self,\
|
|
\ msg):\n\t\t'''msg expected to be pmt pair (freq . val).'''\n\n\t\tglobal delta_Hz\n\
|
|
\n\t\tcmd = pmt.car(msg)\n\t\tfreq_Hz = 1e3 * pmt.to_python(pmt.cdr(msg))\n\t\
|
|
\tupConv_Hz = freq_Hz + delta_Hz\n\n\t\thzDict = pmt.make_dict()\n\t\thzDict\
|
|
\ = pmt.dict_add(hzDict, cmd, pmt.to_pmt(freq_Hz))\n\t\tself.message_port_pub(pmt.intern('freq_Hz_out'),\
|
|
\ hzDict)\n\n\t\thzDict = pmt.make_dict()\n\t\thzDict = pmt.dict_add(hzDict,\
|
|
\ cmd, pmt.to_pmt(upConv_Hz))\n\t\tself.message_port_pub(pmt.intern('upConv_Hz_out'),\
|
|
\ hzDict)\n\n"
|
|
affinity: ''
|
|
alias: ''
|
|
comment: 'kHz is easier to work with,
|
|
|
|
but SDR needs Hz.'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
offset_Hz: up0_Hz + (fine_daHz * 10)
|
|
states:
|
|
_io_cache: ('kHz to Hz', 'cvtBlock', [('offset_Hz', '0')], [('freq_kHz_in', 'message',
|
|
1)], [('upConv_Hz_out', 'message', 1), ('freq_Hz_out', 'message', 1)], 'arguments
|
|
to this function show up as parameters in GRC', [])
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [1056, 1120.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: fosphor_qt_sink_c_0
|
|
id: fosphor_qt_sink_c
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: ''
|
|
freq_center: freq_kHz * 1e3
|
|
freq_span: samp_rate
|
|
gui_hint: spectra@0:0,0,1,1
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
wintype: window.WIN_BLACKMAN_hARRIS
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [736, 820.0]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: low_pass_filter_0
|
|
id: low_pass_filter
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
beta: '6.76'
|
|
comment: "Baseband output:\n 48 kSa/s\n bw=5 kHz"
|
|
cutoff_freq: 5e3
|
|
decim: int(samp_rate / audio_Hz)
|
|
gain: '1'
|
|
interp: '1'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
samp_rate: samp_rate
|
|
type: fir_filter_ccf
|
|
width: '500'
|
|
win: window.WIN_HAMMING
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [736, 604.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: note_0_0
|
|
id: note
|
|
parameters:
|
|
alias: ''
|
|
comment: ''
|
|
note: Receive chain
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [16, 254]
|
|
rotation: 0
|
|
state: true
|
|
- name: note_1
|
|
id: note
|
|
parameters:
|
|
alias: ''
|
|
comment: 'Mike Markowski
|
|
|
|
mike.ab3ap@gmail.com
|
|
|
|
11 Feb 2021'
|
|
note: AM Receiver
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [22, 18]
|
|
rotation: 0
|
|
state: true
|
|
- name: note_1_0
|
|
id: note
|
|
parameters:
|
|
alias: ''
|
|
comment: ''
|
|
note: GUI Niceties
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [412, 931]
|
|
rotation: 0
|
|
state: true
|
|
- name: qtgui_edit_box_msg_0
|
|
id: qtgui_edit_box_msg
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
comment: ''
|
|
gui_hint: 1,2, 1,1
|
|
is_pair: 'True'
|
|
is_static: 'True'
|
|
key: freq
|
|
label: Freq (kHz)
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
type: float
|
|
value: '1060'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [744, 1092.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: qtgui_sink_x_0
|
|
id: qtgui_sink_x
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
bw: audio_Hz
|
|
comment: ''
|
|
fc: freq_kHz * 1e3
|
|
fftsize: '1024'
|
|
gui_hint: 'spectra@2: 0,0,1,1'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
name: Audio, Frequency
|
|
plotconst: 'True'
|
|
plotfreq: 'True'
|
|
plottime: 'True'
|
|
plotwaterfall: 'True'
|
|
rate: '10'
|
|
showports: 'False'
|
|
showrf: 'False'
|
|
type: float
|
|
wintype: window.WIN_BLACKMAN_hARRIS
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [795, 1545]
|
|
rotation: 0
|
|
state: true
|
|
- name: qtgui_sink_x_0_0
|
|
id: qtgui_sink_x
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
bw: samp_rate
|
|
comment: ''
|
|
fc: freq_kHz * 1e3
|
|
fftsize: '1024'
|
|
gui_hint: 'spectra@1 : 0,0,1,1'
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
name: Full Spectrum
|
|
plotconst: 'True'
|
|
plotfreq: 'True'
|
|
plottime: 'True'
|
|
plotwaterfall: 'True'
|
|
rate: '10'
|
|
showports: 'True'
|
|
showrf: 'True'
|
|
type: complex
|
|
wintype: window.WIN_BLACKMAN_hARRIS
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [736, 900.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: 'True'
|
|
entags: 'False'
|
|
grid: 'True'
|
|
gui_hint: spectra@3:0,0,1,1
|
|
label1: Audio
|
|
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: Audio, Time
|
|
nconnections: '1'
|
|
size: '1024'
|
|
srate: audio_Hz
|
|
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: [790, 1353]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: spectra
|
|
id: qtgui_tab_widget
|
|
parameters:
|
|
alias: ''
|
|
comment: ''
|
|
gui_hint: 2,0,1,3
|
|
label0: RTSA
|
|
label1: Full RF Spectrum
|
|
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: Station, Freq
|
|
label3: Station, Time
|
|
label4: Tab 4
|
|
label5: Tab 5
|
|
label6: Tab 6
|
|
label7: Tab 7
|
|
label8: Tab 8
|
|
label9: Tab 9
|
|
num_tabs: '4'
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [624, 420]
|
|
rotation: 0
|
|
state: true
|
|
- name: uhd_usrp_source_0
|
|
id: uhd_usrp_source
|
|
parameters:
|
|
affinity: ''
|
|
alias: ''
|
|
ant0: TX/RX
|
|
ant1: RX2
|
|
ant10: RX2
|
|
ant11: RX2
|
|
ant12: RX2
|
|
ant13: RX2
|
|
ant14: RX2
|
|
ant15: RX2
|
|
ant16: RX2
|
|
ant17: RX2
|
|
ant18: RX2
|
|
ant19: RX2
|
|
ant2: RX2
|
|
ant20: RX2
|
|
ant21: RX2
|
|
ant22: RX2
|
|
ant23: RX2
|
|
ant24: RX2
|
|
ant25: RX2
|
|
ant26: RX2
|
|
ant27: RX2
|
|
ant28: RX2
|
|
ant29: RX2
|
|
ant3: RX2
|
|
ant30: RX2
|
|
ant31: RX2
|
|
ant4: RX2
|
|
ant5: RX2
|
|
ant6: RX2
|
|
ant7: RX2
|
|
ant8: RX2
|
|
ant9: RX2
|
|
bw0: samp_rate
|
|
bw1: '0'
|
|
bw10: '0'
|
|
bw11: '0'
|
|
bw12: '0'
|
|
bw13: '0'
|
|
bw14: '0'
|
|
bw15: '0'
|
|
bw16: '0'
|
|
bw17: '0'
|
|
bw18: '0'
|
|
bw19: '0'
|
|
bw2: '0'
|
|
bw20: '0'
|
|
bw21: '0'
|
|
bw22: '0'
|
|
bw23: '0'
|
|
bw24: '0'
|
|
bw25: '0'
|
|
bw26: '0'
|
|
bw27: '0'
|
|
bw28: '0'
|
|
bw29: '0'
|
|
bw3: '0'
|
|
bw30: '0'
|
|
bw31: '0'
|
|
bw4: '0'
|
|
bw5: '0'
|
|
bw6: '0'
|
|
bw7: '0'
|
|
bw8: '0'
|
|
bw9: '0'
|
|
center_freq0: up0_Hz + (freq_kHz * 1e3) + (fine_daHz * 10)
|
|
center_freq1: '0'
|
|
center_freq10: '0'
|
|
center_freq11: '0'
|
|
center_freq12: '0'
|
|
center_freq13: '0'
|
|
center_freq14: '0'
|
|
center_freq15: '0'
|
|
center_freq16: '0'
|
|
center_freq17: '0'
|
|
center_freq18: '0'
|
|
center_freq19: '0'
|
|
center_freq2: '0'
|
|
center_freq20: '0'
|
|
center_freq21: '0'
|
|
center_freq22: '0'
|
|
center_freq23: '0'
|
|
center_freq24: '0'
|
|
center_freq25: '0'
|
|
center_freq26: '0'
|
|
center_freq27: '0'
|
|
center_freq28: '0'
|
|
center_freq29: '0'
|
|
center_freq3: '0'
|
|
center_freq30: '0'
|
|
center_freq31: '0'
|
|
center_freq4: '0'
|
|
center_freq5: '0'
|
|
center_freq6: '0'
|
|
center_freq7: '0'
|
|
center_freq8: '0'
|
|
center_freq9: '0'
|
|
clock_rate: 0e0
|
|
clock_source0: ''
|
|
clock_source1: ''
|
|
clock_source2: ''
|
|
clock_source3: ''
|
|
clock_source4: ''
|
|
clock_source5: ''
|
|
clock_source6: ''
|
|
clock_source7: ''
|
|
comment: ''
|
|
dc_offs0: 0+0j
|
|
dc_offs1: 0+0j
|
|
dc_offs10: 0+0j
|
|
dc_offs11: 0+0j
|
|
dc_offs12: 0+0j
|
|
dc_offs13: 0+0j
|
|
dc_offs14: 0+0j
|
|
dc_offs15: 0+0j
|
|
dc_offs16: 0+0j
|
|
dc_offs17: 0+0j
|
|
dc_offs18: 0+0j
|
|
dc_offs19: 0+0j
|
|
dc_offs2: 0+0j
|
|
dc_offs20: 0+0j
|
|
dc_offs21: 0+0j
|
|
dc_offs22: 0+0j
|
|
dc_offs23: 0+0j
|
|
dc_offs24: 0+0j
|
|
dc_offs25: 0+0j
|
|
dc_offs26: 0+0j
|
|
dc_offs27: 0+0j
|
|
dc_offs28: 0+0j
|
|
dc_offs29: 0+0j
|
|
dc_offs3: 0+0j
|
|
dc_offs30: 0+0j
|
|
dc_offs31: 0+0j
|
|
dc_offs4: 0+0j
|
|
dc_offs5: 0+0j
|
|
dc_offs6: 0+0j
|
|
dc_offs7: 0+0j
|
|
dc_offs8: 0+0j
|
|
dc_offs9: 0+0j
|
|
dc_offs_enb0: default
|
|
dc_offs_enb1: default
|
|
dc_offs_enb10: default
|
|
dc_offs_enb11: default
|
|
dc_offs_enb12: default
|
|
dc_offs_enb13: default
|
|
dc_offs_enb14: default
|
|
dc_offs_enb15: default
|
|
dc_offs_enb16: default
|
|
dc_offs_enb17: default
|
|
dc_offs_enb18: default
|
|
dc_offs_enb19: default
|
|
dc_offs_enb2: default
|
|
dc_offs_enb20: default
|
|
dc_offs_enb21: default
|
|
dc_offs_enb22: default
|
|
dc_offs_enb23: default
|
|
dc_offs_enb24: default
|
|
dc_offs_enb25: default
|
|
dc_offs_enb26: default
|
|
dc_offs_enb27: default
|
|
dc_offs_enb28: default
|
|
dc_offs_enb29: default
|
|
dc_offs_enb3: default
|
|
dc_offs_enb30: default
|
|
dc_offs_enb31: default
|
|
dc_offs_enb4: default
|
|
dc_offs_enb5: default
|
|
dc_offs_enb6: default
|
|
dc_offs_enb7: default
|
|
dc_offs_enb8: default
|
|
dc_offs_enb9: default
|
|
dev_addr: '""'
|
|
dev_args: '""'
|
|
gain0: rfGain_dB
|
|
gain1: '0'
|
|
gain10: '0'
|
|
gain11: '0'
|
|
gain12: '0'
|
|
gain13: '0'
|
|
gain14: '0'
|
|
gain15: '0'
|
|
gain16: '0'
|
|
gain17: '0'
|
|
gain18: '0'
|
|
gain19: '0'
|
|
gain2: '0'
|
|
gain20: '0'
|
|
gain21: '0'
|
|
gain22: '0'
|
|
gain23: '0'
|
|
gain24: '0'
|
|
gain25: '0'
|
|
gain26: '0'
|
|
gain27: '0'
|
|
gain28: '0'
|
|
gain29: '0'
|
|
gain3: '0'
|
|
gain30: '0'
|
|
gain31: '0'
|
|
gain4: '0'
|
|
gain5: '0'
|
|
gain6: '0'
|
|
gain7: '0'
|
|
gain8: '0'
|
|
gain9: '0'
|
|
gain_type0: default
|
|
gain_type1: default
|
|
gain_type10: default
|
|
gain_type11: default
|
|
gain_type12: default
|
|
gain_type13: default
|
|
gain_type14: default
|
|
gain_type15: default
|
|
gain_type16: default
|
|
gain_type17: default
|
|
gain_type18: default
|
|
gain_type19: default
|
|
gain_type2: default
|
|
gain_type20: default
|
|
gain_type21: default
|
|
gain_type22: default
|
|
gain_type23: default
|
|
gain_type24: default
|
|
gain_type25: default
|
|
gain_type26: default
|
|
gain_type27: default
|
|
gain_type28: default
|
|
gain_type29: default
|
|
gain_type3: default
|
|
gain_type30: default
|
|
gain_type31: default
|
|
gain_type4: default
|
|
gain_type5: default
|
|
gain_type6: default
|
|
gain_type7: default
|
|
gain_type8: default
|
|
gain_type9: default
|
|
iq_imbal0: 0+0j
|
|
iq_imbal1: 0+0j
|
|
iq_imbal10: 0+0j
|
|
iq_imbal11: 0+0j
|
|
iq_imbal12: 0+0j
|
|
iq_imbal13: 0+0j
|
|
iq_imbal14: 0+0j
|
|
iq_imbal15: 0+0j
|
|
iq_imbal16: 0+0j
|
|
iq_imbal17: 0+0j
|
|
iq_imbal18: 0+0j
|
|
iq_imbal19: 0+0j
|
|
iq_imbal2: 0+0j
|
|
iq_imbal20: 0+0j
|
|
iq_imbal21: 0+0j
|
|
iq_imbal22: 0+0j
|
|
iq_imbal23: 0+0j
|
|
iq_imbal24: 0+0j
|
|
iq_imbal25: 0+0j
|
|
iq_imbal26: 0+0j
|
|
iq_imbal27: 0+0j
|
|
iq_imbal28: 0+0j
|
|
iq_imbal29: 0+0j
|
|
iq_imbal3: 0+0j
|
|
iq_imbal30: 0+0j
|
|
iq_imbal31: 0+0j
|
|
iq_imbal4: 0+0j
|
|
iq_imbal5: 0+0j
|
|
iq_imbal6: 0+0j
|
|
iq_imbal7: 0+0j
|
|
iq_imbal8: 0+0j
|
|
iq_imbal9: 0+0j
|
|
iq_imbal_enb0: default
|
|
iq_imbal_enb1: default
|
|
iq_imbal_enb10: default
|
|
iq_imbal_enb11: default
|
|
iq_imbal_enb12: default
|
|
iq_imbal_enb13: default
|
|
iq_imbal_enb14: default
|
|
iq_imbal_enb15: default
|
|
iq_imbal_enb16: default
|
|
iq_imbal_enb17: default
|
|
iq_imbal_enb18: default
|
|
iq_imbal_enb19: default
|
|
iq_imbal_enb2: default
|
|
iq_imbal_enb20: default
|
|
iq_imbal_enb21: default
|
|
iq_imbal_enb22: default
|
|
iq_imbal_enb23: default
|
|
iq_imbal_enb24: default
|
|
iq_imbal_enb25: default
|
|
iq_imbal_enb26: default
|
|
iq_imbal_enb27: default
|
|
iq_imbal_enb28: default
|
|
iq_imbal_enb29: default
|
|
iq_imbal_enb3: default
|
|
iq_imbal_enb30: default
|
|
iq_imbal_enb31: default
|
|
iq_imbal_enb4: default
|
|
iq_imbal_enb5: default
|
|
iq_imbal_enb6: default
|
|
iq_imbal_enb7: default
|
|
iq_imbal_enb8: default
|
|
iq_imbal_enb9: default
|
|
lo_export0: 'False'
|
|
lo_export1: 'False'
|
|
lo_export10: 'False'
|
|
lo_export11: 'False'
|
|
lo_export12: 'False'
|
|
lo_export13: 'False'
|
|
lo_export14: 'False'
|
|
lo_export15: 'False'
|
|
lo_export16: 'False'
|
|
lo_export17: 'False'
|
|
lo_export18: 'False'
|
|
lo_export19: 'False'
|
|
lo_export2: 'False'
|
|
lo_export20: 'False'
|
|
lo_export21: 'False'
|
|
lo_export22: 'False'
|
|
lo_export23: 'False'
|
|
lo_export24: 'False'
|
|
lo_export25: 'False'
|
|
lo_export26: 'False'
|
|
lo_export27: 'False'
|
|
lo_export28: 'False'
|
|
lo_export29: 'False'
|
|
lo_export3: 'False'
|
|
lo_export30: 'False'
|
|
lo_export31: 'False'
|
|
lo_export4: 'False'
|
|
lo_export5: 'False'
|
|
lo_export6: 'False'
|
|
lo_export7: 'False'
|
|
lo_export8: 'False'
|
|
lo_export9: 'False'
|
|
lo_source0: internal
|
|
lo_source1: internal
|
|
lo_source10: internal
|
|
lo_source11: internal
|
|
lo_source12: internal
|
|
lo_source13: internal
|
|
lo_source14: internal
|
|
lo_source15: internal
|
|
lo_source16: internal
|
|
lo_source17: internal
|
|
lo_source18: internal
|
|
lo_source19: internal
|
|
lo_source2: internal
|
|
lo_source20: internal
|
|
lo_source21: internal
|
|
lo_source22: internal
|
|
lo_source23: internal
|
|
lo_source24: internal
|
|
lo_source25: internal
|
|
lo_source26: internal
|
|
lo_source27: internal
|
|
lo_source28: internal
|
|
lo_source29: internal
|
|
lo_source3: internal
|
|
lo_source30: internal
|
|
lo_source31: internal
|
|
lo_source4: internal
|
|
lo_source5: internal
|
|
lo_source6: internal
|
|
lo_source7: internal
|
|
lo_source8: internal
|
|
lo_source9: internal
|
|
maxoutbuf: '0'
|
|
minoutbuf: '0'
|
|
nchan: '1'
|
|
num_mboards: '1'
|
|
otw: ''
|
|
rx_agc0: Disabled
|
|
rx_agc1: Default
|
|
rx_agc10: Default
|
|
rx_agc11: Default
|
|
rx_agc12: Default
|
|
rx_agc13: Default
|
|
rx_agc14: Default
|
|
rx_agc15: Default
|
|
rx_agc16: Default
|
|
rx_agc17: Default
|
|
rx_agc18: Default
|
|
rx_agc19: Default
|
|
rx_agc2: Default
|
|
rx_agc20: Default
|
|
rx_agc21: Default
|
|
rx_agc22: Default
|
|
rx_agc23: Default
|
|
rx_agc24: Default
|
|
rx_agc25: Default
|
|
rx_agc26: Default
|
|
rx_agc27: Default
|
|
rx_agc28: Default
|
|
rx_agc29: Default
|
|
rx_agc3: Default
|
|
rx_agc30: Default
|
|
rx_agc31: Default
|
|
rx_agc4: Default
|
|
rx_agc5: Default
|
|
rx_agc6: Default
|
|
rx_agc7: Default
|
|
rx_agc8: Default
|
|
rx_agc9: Default
|
|
samp_rate: samp_rate
|
|
sd_spec0: ''
|
|
sd_spec1: ''
|
|
sd_spec2: ''
|
|
sd_spec3: ''
|
|
sd_spec4: ''
|
|
sd_spec5: ''
|
|
sd_spec6: ''
|
|
sd_spec7: ''
|
|
show_lo_controls: 'False'
|
|
start_time: '-1.0'
|
|
stream_args: ''
|
|
stream_chans: '[]'
|
|
sync: none
|
|
time_source0: ''
|
|
time_source1: ''
|
|
time_source2: ''
|
|
time_source3: ''
|
|
time_source4: ''
|
|
time_source5: ''
|
|
time_source6: ''
|
|
time_source7: ''
|
|
type: fc32
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [296, 684.0]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: virtual_sink_0
|
|
id: virtual_sink
|
|
parameters:
|
|
alias: ''
|
|
comment: "Tuned station.\n\nBaseband output:\n 48 kSa/s\n bw=5 kHz"
|
|
stream_id: baseband
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [928, 652.0]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: virtual_sink_2_0
|
|
id: virtual_sink
|
|
parameters:
|
|
alias: ''
|
|
comment: 'Station chosen
|
|
|
|
by clicking gui.'
|
|
stream_id: amStation_kHz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [1344, 916.0]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: virtual_sink_2_1
|
|
id: virtual_sink
|
|
parameters:
|
|
alias: ''
|
|
comment: 'Station chosen by user
|
|
|
|
via QT Gui Sink and
|
|
|
|
up-converted.'
|
|
stream_id: upConv_Hz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [1328, 1116.0]
|
|
rotation: 0
|
|
state: true
|
|
- name: virtual_source_0
|
|
id: virtual_source
|
|
parameters:
|
|
alias: ''
|
|
comment: '48 kSa/s
|
|
|
|
bw=5 kHz'
|
|
stream_id: baseband
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [42, 1463]
|
|
rotation: 0
|
|
state: true
|
|
- name: virtual_source_2_0
|
|
id: virtual_source
|
|
parameters:
|
|
alias: ''
|
|
comment: 'Station chosen
|
|
|
|
by clicking gui.'
|
|
stream_id: amStation_kHz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [504, 1132.0]
|
|
rotation: 0
|
|
state: enabled
|
|
- name: virtual_source_2_1_0
|
|
id: virtual_source
|
|
parameters:
|
|
alias: ''
|
|
comment: 'Station message from
|
|
|
|
QT Gui Message Edit Box.'
|
|
stream_id: upConv_Hz
|
|
states:
|
|
bus_sink: false
|
|
bus_source: false
|
|
bus_structure: null
|
|
coordinate: [48, 732.0]
|
|
rotation: 0
|
|
state: enabled
|
|
|
|
connections:
|
|
- [analog_agc_xx_0, '0', blocks_complex_to_mag_0, '0']
|
|
- [blocks_add_const_vxx_0, '0', blocks_multiply_const_vxx_0, '0']
|
|
- [blocks_add_const_vxx_0, '0', qtgui_sink_x_0, '0']
|
|
- [blocks_add_const_vxx_0, '0', qtgui_time_sink_x_0, '0']
|
|
- [blocks_complex_to_mag_0, '0', blocks_add_const_vxx_0, '0']
|
|
- [blocks_multiply_const_vxx_0, '0', audio_sink_0_0, '0']
|
|
- [blocks_mute_xx_0, '0', fosphor_qt_sink_c_0, '0']
|
|
- [blocks_mute_xx_0, '0', low_pass_filter_0, '0']
|
|
- [blocks_mute_xx_0, '0', qtgui_sink_x_0_0, '0']
|
|
- [epy_block_0, snapped_Hz_out, qtgui_sink_x_0_0, freq]
|
|
- [epy_block_0, snapped_kHz_out, blocks_msgpair_to_var_0, inpair]
|
|
- [epy_block_0, snapped_kHz_out, virtual_sink_2_0, '0']
|
|
- [epy_block_1, upConv_Hz_out, virtual_sink_2_1, '0']
|
|
- [fosphor_qt_sink_c_0, freq, epy_block_0, raw_Hz_in]
|
|
- [low_pass_filter_0, '0', virtual_sink_0, '0']
|
|
- [qtgui_edit_box_msg_0, msg, epy_block_1, freq_kHz_in]
|
|
- [qtgui_sink_x_0_0, freq, epy_block_0, raw_Hz_in]
|
|
- [uhd_usrp_source_0, '0', blocks_mute_xx_0, '0']
|
|
- [virtual_source_0, '0', analog_agc_xx_0, '0']
|
|
- [virtual_source_2_0, '0', qtgui_edit_box_msg_0, val]
|
|
- [virtual_source_2_1_0, '0', uhd_usrp_source_0, command]
|
|
|
|
metadata:
|
|
file_format: 1
|