mirror of
https://github.com/dj0abr/SSB_HighSpeed_Modem.git
synced 2026-06-02 05:54:39 -04:00
update
This commit is contained in:
+919
@@ -0,0 +1,919 @@
|
||||
options:
|
||||
parameters:
|
||||
author: kurt
|
||||
category: '[GRC Hier Blocks]'
|
||||
cmake_opt: ''
|
||||
comment: 'requires GNU Radio 3.8xxx
|
||||
|
||||
does NOT work with 3.7x'
|
||||
copyright: ''
|
||||
description: requires GNU Radio 3.8xxx
|
||||
gen_cmake: 'Off'
|
||||
gen_linking: dynamic
|
||||
generate_options: no_gui
|
||||
hier_block_src_path: '.:'
|
||||
id: rx_8psk
|
||||
max_nouts: '0'
|
||||
output_language: python
|
||||
placement: (0,0)
|
||||
qt_qss_theme: ''
|
||||
realtime_scheduling: ''
|
||||
run: 'True'
|
||||
run_command: '{python} -u {filename}'
|
||||
run_options: run
|
||||
sizing_mode: fixed
|
||||
thread_safe_setters: ''
|
||||
title: 8PSK Modem DJ0ABR
|
||||
window_size: ''
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [16, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
|
||||
blocks:
|
||||
- name: mixf
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'mid frequency
|
||||
|
||||
in the audio
|
||||
|
||||
spectrum. Set to get
|
||||
|
||||
lowest and highest
|
||||
|
||||
frequency within the
|
||||
|
||||
transceiver filter range.'
|
||||
value: '1500'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [336, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: nfilts
|
||||
id: variable
|
||||
parameters:
|
||||
comment: ''
|
||||
value: '32'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1112, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: outputsps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'Samples/Symbol
|
||||
|
||||
fixed value,
|
||||
|
||||
do not change.
|
||||
|
||||
Used to adjust
|
||||
|
||||
bitrate vs. bandwidth'
|
||||
value: '7'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [40, 180.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: rrc_taps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: ''
|
||||
value: firdes.root_raised_cosine(nfilts, nfilts, 1.1/float(sps), 0.2, 11*sps*nfilts)
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1184, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: sps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'Samples/Symbol
|
||||
|
||||
fixed value,
|
||||
|
||||
do not change'
|
||||
value: '4'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [488, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_agc2_xx_0_0
|
||||
id: analog_agc2_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
attack_rate: 1e-2
|
||||
comment: Costas loop needs AGC (loop gain depends on input level)
|
||||
decay_rate: '0.2'
|
||||
gain: '2'
|
||||
max_gain: '3'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
reference: '1'
|
||||
type: complex
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [400, 620.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_const_source_x_0
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'Marker to find the start
|
||||
|
||||
of the values'
|
||||
const: '1000'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: int
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [472, 916.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_const_source_x_0_0
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'Marker to find the start
|
||||
|
||||
of the values'
|
||||
const: '1000'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: int
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [536, 1076.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_const_source_x_0_1
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
const: '16777216'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: float
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [792, 1044.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_sig_source_x_0_0_0
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: 'the modulator output is in the baseband at 0 Hz.
|
||||
|
||||
Mix it with the required audio mid frequency.
|
||||
|
||||
cos and -sin are used to combine I and Q
|
||||
|
||||
into the frinal signal.
|
||||
|
||||
Use it als for RX in the reverse direction'
|
||||
freq: mixf
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: complex
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [592, 76.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: audio_source_0
|
||||
id: audio_source
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: get audio from transceiver
|
||||
device_name: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_outputs: '1'
|
||||
ok_to_block: 'True'
|
||||
samp_rate: samp_rate
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1384, 364.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_complex_to_float_0
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [824, 1160.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_complex_to_float_1
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [816, 104.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_float_to_complex_0
|
||||
id: blocks_float_to_complex
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'combile I and Q
|
||||
|
||||
to complex signal'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [552, 336.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_float_to_int_0
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '16777216'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [632, 1156.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_float_to_int_0_0
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '16777216'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [632, 1204.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_float_to_int_0_1
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '1'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [520, 1012.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_interleave_0
|
||||
id: blocks_interleave
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
blocksize: '1'
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_streams: '2'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [360, 1000.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_interleave_0_0
|
||||
id: blocks_interleave
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
blocksize: '1'
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_streams: '3'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [328, 1128.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_multiply_xx_0_0_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: make I
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [744, 304.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_multiply_xx_0_1
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: make Q
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [808, 400.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_multiply_xx_0_1_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [648, 984.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_udp_sink_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send RX data to UDP
|
||||
|
||||
port 1235 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40135'
|
||||
psize: '344'
|
||||
type: byte
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1272, 516.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_udp_sink_0_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send QPSK Constellation data to UDP
|
||||
|
||||
port 1236 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40136'
|
||||
psize: '120'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [72, 1004.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_udp_sink_0_0_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send QPSK Constellation data to UDP
|
||||
|
||||
port 1236 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40137'
|
||||
psize: '120'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [72, 1132.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: digital_constellation_decoder_cb_0
|
||||
id: digital_constellation_decoder_cb
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: '8PSK decoding, same
|
||||
|
||||
parameters as modulator'
|
||||
constellation: digital.constellation_8psk_natural().base()
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [824, 540.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_costas_loop_cc_0
|
||||
id: digital_costas_loop_cc
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'locks the signal and
|
||||
|
||||
converts into baseband'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
order: '8'
|
||||
use_snr: 'False'
|
||||
w: '0.15'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [584, 528.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_diff_decoder_bb_0
|
||||
id: digital_diff_decoder_bb
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
modulus: '8'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1048, 540.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_lms_dd_equalizer_cc_0
|
||||
id: digital_lms_dd_equalizer_cc
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
cnst: digital.constellation_8psk_natural().base()
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
mu: '0.01'
|
||||
num_taps: '15'
|
||||
sps: outputsps
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [304, 468.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_pfb_clock_sync_xxx_0
|
||||
id: digital_pfb_clock_sync_xxx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'synchronize the Clock,
|
||||
|
||||
works very well with drifting
|
||||
|
||||
QO-100 signal'
|
||||
filter_size: nfilts
|
||||
init_phase: nfilts/16
|
||||
loop_bw: '0.06'
|
||||
max_dev: '2'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
osps: outputsps
|
||||
sps: sps
|
||||
taps: rrc_taps
|
||||
type: ccf
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [80, 556.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: low_pass_filter_0
|
||||
id: low_pass_filter
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
beta: '6.76'
|
||||
comment: 'Anti-Aliasing filter
|
||||
|
||||
Level correction
|
||||
|
||||
and decimation'
|
||||
cutoff_freq: '3900'
|
||||
decim: '1'
|
||||
gain: '12'
|
||||
interp: '1'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
samp_rate: samp_rate
|
||||
type: fir_filter_fff
|
||||
width: '3300'
|
||||
win: firdes.WIN_HAMMING
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1048, 316.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: mmse_resampler_xx_0
|
||||
id: mmse_resampler_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
phase_shift: '0'
|
||||
resamp_ratio: resamp
|
||||
type: complex
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [136, 352.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: mmse_resampler_xx_0_0
|
||||
id: mmse_resampler_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
phase_shift: '0'
|
||||
resamp_ratio: samp_rate / 8000
|
||||
type: float
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [776, 904.0]
|
||||
rotation: 180
|
||||
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: ''
|
||||
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: '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: [824, 756.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- 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: ''
|
||||
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: '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: [864, 628.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: resamp
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: "Resampling Rate\nfrom Audio Rate\nto 8kS/s which is\nthe input of the\
|
||||
\ \nPolypashe Clock"
|
||||
hide: none
|
||||
label: resamp
|
||||
short_id: r
|
||||
type: intx
|
||||
value: '6'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [328, 156.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: samp_rate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: Audio Rate
|
||||
hide: none
|
||||
label: samp_rate
|
||||
short_id: s
|
||||
type: intx
|
||||
value: '48000'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [200, 156.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
|
||||
connections:
|
||||
- [analog_agc2_xx_0_0, '0', digital_costas_loop_cc_0, '0']
|
||||
- [analog_const_source_x_0, '0', blocks_interleave_0, '0']
|
||||
- [analog_const_source_x_0_0, '0', blocks_interleave_0_0, '0']
|
||||
- [analog_const_source_x_0_1, '0', blocks_multiply_xx_0_1_0, '1']
|
||||
- [analog_sig_source_x_0_0_0, '0', blocks_complex_to_float_1, '0']
|
||||
- [audio_source_0, '0', low_pass_filter_0, '0']
|
||||
- [audio_source_0, '0', mmse_resampler_xx_0_0, '0']
|
||||
- [blocks_complex_to_float_0, '0', blocks_float_to_int_0, '0']
|
||||
- [blocks_complex_to_float_0, '1', blocks_float_to_int_0_0, '0']
|
||||
- [blocks_complex_to_float_1, '0', blocks_multiply_xx_0_1, '1']
|
||||
- [blocks_complex_to_float_1, '1', blocks_multiply_xx_0_0_0, '1']
|
||||
- [blocks_float_to_complex_0, '0', mmse_resampler_xx_0, '0']
|
||||
- [blocks_float_to_int_0, '0', blocks_interleave_0_0, '1']
|
||||
- [blocks_float_to_int_0_0, '0', blocks_interleave_0_0, '2']
|
||||
- [blocks_float_to_int_0_1, '0', blocks_interleave_0, '1']
|
||||
- [blocks_interleave_0, '0', blocks_udp_sink_0_0, '0']
|
||||
- [blocks_interleave_0_0, '0', blocks_udp_sink_0_0_0, '0']
|
||||
- [blocks_multiply_xx_0_0_0, '0', blocks_float_to_complex_0, '0']
|
||||
- [blocks_multiply_xx_0_1, '0', blocks_float_to_complex_0, '1']
|
||||
- [blocks_multiply_xx_0_1_0, '0', blocks_float_to_int_0_1, '0']
|
||||
- [digital_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', blocks_complex_to_float_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', digital_constellation_decoder_cb_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_0_0, '0']
|
||||
- [digital_diff_decoder_bb_0, '0', blocks_udp_sink_0, '0']
|
||||
- [digital_lms_dd_equalizer_cc_0, '0', analog_agc2_xx_0_0, '0']
|
||||
- [digital_pfb_clock_sync_xxx_0, '0', digital_lms_dd_equalizer_cc_0, '0']
|
||||
- [low_pass_filter_0, '0', blocks_multiply_xx_0_0_0, '0']
|
||||
- [low_pass_filter_0, '0', blocks_multiply_xx_0_1, '0']
|
||||
- [mmse_resampler_xx_0, '0', digital_pfb_clock_sync_xxx_0, '0']
|
||||
- [mmse_resampler_xx_0_0, '0', blocks_multiply_xx_0_1_0, '0']
|
||||
|
||||
metadata:
|
||||
file_format: 1
|
||||
+391
@@ -0,0 +1,391 @@
|
||||
options:
|
||||
parameters:
|
||||
author: kurt
|
||||
category: '[GRC Hier Blocks]'
|
||||
cmake_opt: ''
|
||||
comment: 'requires GNU Radio 3.8xxx
|
||||
|
||||
does NOT work with 3.7x'
|
||||
copyright: ''
|
||||
description: requires GNU Radio 3.8xxx
|
||||
gen_cmake: 'Off'
|
||||
gen_linking: dynamic
|
||||
generate_options: no_gui
|
||||
hier_block_src_path: '.:'
|
||||
id: tx_8psk
|
||||
max_nouts: '0'
|
||||
output_language: python
|
||||
placement: (0,0)
|
||||
qt_qss_theme: ''
|
||||
realtime_scheduling: ''
|
||||
run: 'True'
|
||||
run_command: '{python} -u {filename}'
|
||||
run_options: run
|
||||
sizing_mode: fixed
|
||||
thread_safe_setters: ''
|
||||
title: 8PSK Modem DJ0ABR
|
||||
window_size: ''
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [8, 8]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
|
||||
blocks:
|
||||
- name: mixf
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'mid frequency
|
||||
|
||||
in the audio
|
||||
|
||||
spectrum. Set to get
|
||||
|
||||
lowest and highest
|
||||
|
||||
frequency within the
|
||||
|
||||
transceiver filter range.'
|
||||
value: '1500'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [336, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: nfilts
|
||||
id: variable
|
||||
parameters:
|
||||
comment: ''
|
||||
value: '32'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [504, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: sps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'Samples/Symbol
|
||||
|
||||
fixed value,
|
||||
|
||||
do not change.
|
||||
|
||||
Used to adjust
|
||||
|
||||
bitrate vs. bandwidth'
|
||||
value: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [944, 36.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_sig_source_x_0_0_0
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: 'the modulator output is in the baseband at 0 Hz.
|
||||
|
||||
Mix it with the required audio mid frequency.
|
||||
|
||||
cos and -sin are used to combine I and Q
|
||||
|
||||
into the final signal.'
|
||||
freq: mixf
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: complex
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [64, 484.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: audio_sink_0_0
|
||||
id: audio_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send audio to
|
||||
|
||||
transceiver'
|
||||
device_name: ''
|
||||
num_inputs: '1'
|
||||
ok_to_block: 'True'
|
||||
samp_rate: samp_rate
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [840, 420.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_add_xx_0
|
||||
id: blocks_add_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'generate the analog
|
||||
|
||||
output signal.'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [568, 344.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_complex_to_float_1
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [400, 344.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_multiply_const_vxx_0
|
||||
id: blocks_multiply_const_vxx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'reduce level for the
|
||||
|
||||
audio output, improves
|
||||
|
||||
linearity'
|
||||
const: '0.05'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [680, 420.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_multiply_xx_0_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: "mix I und Q \nto the mid \nfrequency\nspecified in\n\"mixf\""
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: complex
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [288, 344.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_udp_source_0
|
||||
id: blocks_udp_source
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: "receive an UDP data stream\nwith the bitrate of (see \ncomment samp_rate)\n\
|
||||
The stream is buffered, \nso send some bytes ahead\nto prefill the buffer\n\
|
||||
and avoid underrun"
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
port: '40134'
|
||||
psize: '258'
|
||||
type: byte
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [736, 164.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: digital_constellation_modulator_0
|
||||
id: digital_constellation_modulator
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'This modulator expects "Packed Bytes"
|
||||
|
||||
which are 8 bits within one byte.
|
||||
|
||||
The UDP source block deliveres bytes,
|
||||
|
||||
so it fits perfectly.'
|
||||
constellation: digital.constellation_8psk_natural().base()
|
||||
differential: 'True'
|
||||
excess_bw: '0.25'
|
||||
log: 'False'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
samples_per_symbol: resamprate
|
||||
verbose: 'False'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [272, 172.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- 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: '0.1'
|
||||
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: 'False'
|
||||
grid: 'True'
|
||||
gui_hint: ''
|
||||
label: Relative Gain
|
||||
label1: ''
|
||||
label10: ''''''
|
||||
label2: ''''''
|
||||
label3: ''''''
|
||||
label4: ''''''
|
||||
label5: ''''''
|
||||
label6: ''''''
|
||||
label7: ''''''
|
||||
label8: ''''''
|
||||
label9: ''''''
|
||||
legend: 'True'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
name: '""'
|
||||
nconnections: '1'
|
||||
showports: 'False'
|
||||
tr_chan: '0'
|
||||
tr_level: '0.0'
|
||||
tr_mode: qtgui.TRIG_MODE_FREE
|
||||
tr_tag: '""'
|
||||
type: float
|
||||
units: dB
|
||||
update_time: '0.10'
|
||||
width1: '1'
|
||||
width10: '1'
|
||||
width2: '1'
|
||||
width3: '1'
|
||||
width4: '1'
|
||||
width5: '1'
|
||||
width6: '1'
|
||||
width7: '1'
|
||||
width8: '1'
|
||||
width9: '1'
|
||||
wintype: firdes.WIN_BLACKMAN_hARRIS
|
||||
ymax: '10'
|
||||
ymin: '-140'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [552, 552.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: resamprate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: ''
|
||||
hide: none
|
||||
label: resamprate
|
||||
short_id: r
|
||||
type: intx
|
||||
value: '24'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [808, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: samp_rate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: Audio Rate
|
||||
hide: none
|
||||
label: samp_rate
|
||||
short_id: s
|
||||
type: intx
|
||||
value: '48000'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [696, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
|
||||
connections:
|
||||
- [analog_sig_source_x_0_0_0, '0', blocks_multiply_xx_0_0, '1']
|
||||
- [blocks_add_xx_0, '0', blocks_multiply_const_vxx_0, '0']
|
||||
- [blocks_add_xx_0, '0', qtgui_freq_sink_x_0, '0']
|
||||
- [blocks_complex_to_float_1, '0', blocks_add_xx_0, '0']
|
||||
- [blocks_complex_to_float_1, '1', blocks_add_xx_0, '1']
|
||||
- [blocks_multiply_const_vxx_0, '0', audio_sink_0_0, '0']
|
||||
- [blocks_multiply_xx_0_0, '0', blocks_complex_to_float_1, '0']
|
||||
- [blocks_udp_source_0, '0', digital_constellation_modulator_0, '0']
|
||||
- [digital_constellation_modulator_0, '0', blocks_multiply_xx_0_0, '0']
|
||||
|
||||
metadata:
|
||||
file_format: 1
|
||||
@@ -0,0 +1,973 @@
|
||||
options:
|
||||
parameters:
|
||||
author: DJ0ABR
|
||||
category: '[GRC Hier Blocks]'
|
||||
cmake_opt: ''
|
||||
comment: 'send and receive a datastream
|
||||
|
||||
with 3500 bit/s via a QO-100
|
||||
|
||||
SSB channel with 2700 Hz bandwidth
|
||||
|
||||
works with Gnu Radio 3.8.xxx ONLY
|
||||
|
||||
does not work with 3.7.x'
|
||||
copyright: ''
|
||||
description: works with Gnu Radio 3.8.xxx
|
||||
gen_cmake: 'Off'
|
||||
gen_linking: dynamic
|
||||
generate_options: no_gui
|
||||
hier_block_src_path: '.:'
|
||||
id: qpsk_rx
|
||||
max_nouts: '0'
|
||||
output_language: python
|
||||
placement: (0,0)
|
||||
qt_qss_theme: ''
|
||||
realtime_scheduling: ''
|
||||
run: 'True'
|
||||
run_command: '{python} -u {filename}'
|
||||
run_options: run
|
||||
sizing_mode: fixed
|
||||
thread_safe_setters: ''
|
||||
title: QPSK RX-Modem
|
||||
window_size: ''
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [8, 8]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
|
||||
blocks:
|
||||
- name: mixf
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'mid frequency
|
||||
|
||||
in the audio
|
||||
|
||||
spectrum. Set to get
|
||||
|
||||
lowest and highest
|
||||
|
||||
frequency within the
|
||||
|
||||
transceiver filter range.'
|
||||
value: '1500'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [328, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: nfilts
|
||||
id: variable
|
||||
parameters:
|
||||
comment: ''
|
||||
value: '32'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [704, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: outputsps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'Samples/Symbol
|
||||
|
||||
fixed value,
|
||||
|
||||
do not change.
|
||||
|
||||
Used to adjust
|
||||
|
||||
bitrate vs. bandwidth'
|
||||
value: '7'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [8, 212.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: qpsk__constellation
|
||||
id: variable_constellation_rect
|
||||
parameters:
|
||||
comment: ''
|
||||
const_points: '[0.707+0.707j, -0.707+0.707j, -0.707-0.707j, 0.707-0.707j]'
|
||||
imag_sect: '2'
|
||||
precision: '8'
|
||||
real_sect: '2'
|
||||
rot_sym: '4'
|
||||
soft_dec_lut: '''auto'''
|
||||
sym_map: '[0, 1, 2, 3]'
|
||||
w_imag_sect: '1'
|
||||
w_real_sect: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [976, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: sps
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'Resampling Rate
|
||||
|
||||
of the Polyphase
|
||||
|
||||
Clock Sync and its filter'
|
||||
value: '4'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [568, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_agc2_xx_0_0
|
||||
id: analog_agc2_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
attack_rate: '0.01'
|
||||
comment: 'Costas loop needs AGC
|
||||
|
||||
loop gain depends on input level'
|
||||
decay_rate: '0.2'
|
||||
gain: '1'
|
||||
max_gain: '3'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
reference: '1'
|
||||
type: complex
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [544, 636.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_const_source_x_0
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'Marker to find the start
|
||||
|
||||
of the values'
|
||||
const: '1000'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: int
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [464, 788.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_const_source_x_0_0
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'Marker to find the start
|
||||
|
||||
of the values'
|
||||
const: '1000'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: int
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [536, 948.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_const_source_x_0_0_0
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'Marker to find the start
|
||||
|
||||
of the values'
|
||||
const: '0'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: float
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [824, 1140.0]
|
||||
rotation: 180
|
||||
state: disabled
|
||||
- name: analog_const_source_x_0_1
|
||||
id: analog_const_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
const: '16777216'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: float
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [792, 916.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: analog_sig_source_x_0_0_0
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: 'the modulator output is in the baseband at 0 Hz.
|
||||
|
||||
Mix it with the required audio mid frequency.
|
||||
|
||||
cos and -sin are used to combine I and Q
|
||||
|
||||
into the frinal signal.
|
||||
|
||||
Use it als for RX in the reverse direction'
|
||||
freq: mixf
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: complex
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [200, 220.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_sig_source_x_1
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: "Markers for the \nFrequ.Sink"
|
||||
freq: '1500'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: float
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [712, 140.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: analog_sig_source_x_1_0
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: ''
|
||||
freq: '3000'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: float
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [704, 300.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: audio_source_0
|
||||
id: audio_source
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: get audio from transceiver
|
||||
device_name: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_outputs: '1'
|
||||
ok_to_block: 'True'
|
||||
samp_rate: samp_rate
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1328, 468.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_complex_to_float_0
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [824, 1032.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_complex_to_float_1
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [456, 248.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_float_to_complex_0
|
||||
id: blocks_float_to_complex
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'combile I and Q
|
||||
|
||||
to complex signal'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [320, 464.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_float_to_int_0
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '16777216'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [632, 1028.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_float_to_int_0_0
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '16777216'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [632, 1076.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_float_to_int_0_1
|
||||
id: blocks_float_to_int
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
scale: '1'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [512, 868.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_interleave_0
|
||||
id: blocks_interleave
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
blocksize: '1'
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_streams: '2'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [360, 872.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_interleave_0_0
|
||||
id: blocks_interleave
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
blocksize: '1'
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_streams: '3'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [320, 1000.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: blocks_multiply_xx_0_0_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: make I
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [520, 408.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_multiply_xx_0_1
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: make Q
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [560, 512.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_multiply_xx_0_1_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [640, 856.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_udp_sink_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send RX data to UDP
|
||||
|
||||
port 1235 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40135'
|
||||
psize: '344'
|
||||
type: byte
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1240, 588.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_udp_sink_0_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send QPSK Constellation data to UDP
|
||||
|
||||
port 1236 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40136'
|
||||
psize: '120'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [64, 860.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: blocks_udp_sink_0_0_0
|
||||
id: blocks_udp_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send QPSK Constellation data to UDP
|
||||
|
||||
port 1236 on the local machine'
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
port: '40137'
|
||||
psize: '120'
|
||||
type: int
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [64, 988.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: digital_constellation_decoder_cb_0
|
||||
id: digital_constellation_decoder_cb
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'QPSK decoding, same
|
||||
|
||||
parameters as modulator'
|
||||
constellation: qpsk__constellation
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [992, 612.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_costas_loop_cc_0
|
||||
id: digital_costas_loop_cc
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'locks the signal and
|
||||
|
||||
converts into baseband'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
order: '4'
|
||||
use_snr: 'False'
|
||||
w: '0.06'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [744, 616.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_lms_dd_equalizer_cc_0
|
||||
id: digital_lms_dd_equalizer_cc
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
cnst: qpsk__constellation
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
mu: '0.01'
|
||||
num_taps: '15'
|
||||
sps: outputsps
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [288, 628.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: digital_pfb_clock_sync_xxx_0
|
||||
id: digital_pfb_clock_sync_xxx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'synchronize the Clock,
|
||||
|
||||
works very well with drifting
|
||||
|
||||
QO-100 signal'
|
||||
filter_size: nfilts
|
||||
init_phase: nfilts/2
|
||||
loop_bw: '0.1'
|
||||
max_dev: '1.5'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
osps: outputsps
|
||||
sps: sps
|
||||
taps: firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), 0.35, 11*sps*nfilts)
|
||||
type: ccf
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [64, 652.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: low_pass_filter_0
|
||||
id: low_pass_filter
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
beta: '6.76'
|
||||
comment: 'Anti-Aliasing filter
|
||||
|
||||
Level correction
|
||||
|
||||
and decimation'
|
||||
cutoff_freq: '3500'
|
||||
decim: '1'
|
||||
gain: '8'
|
||||
interp: '1'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
samp_rate: samp_rate
|
||||
type: fir_filter_fff
|
||||
width: '3100'
|
||||
win: firdes.WIN_HAMMING
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [1048, 412.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: mmse_resampler_xx_0
|
||||
id: mmse_resampler_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
phase_shift: '0'
|
||||
resamp_ratio: samp_rate / 8000
|
||||
type: float
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [776, 768.0]
|
||||
rotation: 180
|
||||
state: true
|
||||
- name: mmse_resampler_xx_1
|
||||
id: mmse_resampler_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
phase_shift: '0'
|
||||
resamp_ratio: resamp
|
||||
type: complex
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [72, 480.0]
|
||||
rotation: 180
|
||||
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: ''
|
||||
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: '2'
|
||||
size: '1024'
|
||||
style1: '0'
|
||||
style10: '0'
|
||||
style2: '0'
|
||||
style3: '0'
|
||||
style4: '0'
|
||||
style5: '0'
|
||||
style6: '0'
|
||||
style7: '0'
|
||||
style8: '0'
|
||||
style9: '0'
|
||||
tr_chan: '0'
|
||||
tr_level: '0.0'
|
||||
tr_mode: qtgui.TRIG_MODE_FREE
|
||||
tr_slope: qtgui.TRIG_SLOPE_POS
|
||||
tr_tag: '""'
|
||||
type: complex
|
||||
update_time: '0.10'
|
||||
width1: '1'
|
||||
width10: '1'
|
||||
width2: '1'
|
||||
width3: '1'
|
||||
width4: '1'
|
||||
width5: '1'
|
||||
width6: '1'
|
||||
width7: '1'
|
||||
width8: '1'
|
||||
width9: '1'
|
||||
xmax: '2'
|
||||
xmin: '-2'
|
||||
ymax: '2'
|
||||
ymin: '-2'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [768, 532.0]
|
||||
rotation: 180
|
||||
state: disabled
|
||||
- name: qtgui_freq_sink_x_1
|
||||
id: qtgui_freq_sink_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
alpha1: '1.0'
|
||||
alpha10: '1.0'
|
||||
alpha2: '1.0'
|
||||
alpha3: '1.0'
|
||||
alpha4: '1.0'
|
||||
alpha5: '1.0'
|
||||
alpha6: '1.0'
|
||||
alpha7: '1.0'
|
||||
alpha8: '1.0'
|
||||
alpha9: '1.0'
|
||||
autoscale: 'False'
|
||||
average: '1.0'
|
||||
axislabels: 'True'
|
||||
bw: samp_rate
|
||||
color1: '"blue"'
|
||||
color10: '"dark blue"'
|
||||
color2: '"red"'
|
||||
color3: '"green"'
|
||||
color4: '"black"'
|
||||
color5: '"cyan"'
|
||||
color6: '"magenta"'
|
||||
color7: '"yellow"'
|
||||
color8: '"dark red"'
|
||||
color9: '"dark green"'
|
||||
comment: ''
|
||||
ctrlpanel: 'False'
|
||||
fc: '0'
|
||||
fftsize: '4096'
|
||||
freqhalf: 'False'
|
||||
grid: 'True'
|
||||
gui_hint: ''
|
||||
label: Relative Gain
|
||||
label1: ''
|
||||
label10: ''''''
|
||||
label2: ''''''
|
||||
label3: ''''''
|
||||
label4: ''''''
|
||||
label5: ''''''
|
||||
label6: ''''''
|
||||
label7: ''''''
|
||||
label8: ''''''
|
||||
label9: ''''''
|
||||
legend: 'True'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
name: TX / RX Spectrum
|
||||
nconnections: '3'
|
||||
showports: 'False'
|
||||
tr_chan: '0'
|
||||
tr_level: '0.0'
|
||||
tr_mode: qtgui.TRIG_MODE_FREE
|
||||
tr_tag: '""'
|
||||
type: float
|
||||
units: dB
|
||||
update_time: '.1'
|
||||
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: [992, 208.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: resamp
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: "Resampling Rate\nfrom Audio Rate\nto 8kS/s which is\nthe input of the\
|
||||
\ \nPolypashe Clock"
|
||||
hide: none
|
||||
label: resamp
|
||||
short_id: r
|
||||
type: intx
|
||||
value: '5'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [464, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: samp_rate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: Audio Rate
|
||||
hide: none
|
||||
label: samp_rate
|
||||
short_id: s
|
||||
type: intx
|
||||
value: '44100'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [216, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
|
||||
connections:
|
||||
- [analog_agc2_xx_0_0, '0', digital_costas_loop_cc_0, '0']
|
||||
- [analog_const_source_x_0, '0', blocks_interleave_0, '0']
|
||||
- [analog_const_source_x_0_0, '0', blocks_interleave_0_0, '0']
|
||||
- [analog_const_source_x_0_0_0, '0', blocks_float_to_int_0_0, '0']
|
||||
- [analog_const_source_x_0_1, '0', blocks_multiply_xx_0_1_0, '1']
|
||||
- [analog_sig_source_x_0_0_0, '0', blocks_complex_to_float_1, '0']
|
||||
- [analog_sig_source_x_1, '0', qtgui_freq_sink_x_1, '1']
|
||||
- [analog_sig_source_x_1_0, '0', qtgui_freq_sink_x_1, '2']
|
||||
- [audio_source_0, '0', low_pass_filter_0, '0']
|
||||
- [audio_source_0, '0', mmse_resampler_xx_0, '0']
|
||||
- [blocks_complex_to_float_0, '0', blocks_float_to_int_0, '0']
|
||||
- [blocks_complex_to_float_0, '1', blocks_float_to_int_0_0, '0']
|
||||
- [blocks_complex_to_float_1, '0', blocks_multiply_xx_0_1, '1']
|
||||
- [blocks_complex_to_float_1, '1', blocks_multiply_xx_0_0_0, '1']
|
||||
- [blocks_float_to_complex_0, '0', mmse_resampler_xx_1, '0']
|
||||
- [blocks_float_to_int_0, '0', blocks_interleave_0_0, '1']
|
||||
- [blocks_float_to_int_0_0, '0', blocks_interleave_0_0, '2']
|
||||
- [blocks_float_to_int_0_1, '0', blocks_interleave_0, '1']
|
||||
- [blocks_interleave_0, '0', blocks_udp_sink_0_0, '0']
|
||||
- [blocks_interleave_0_0, '0', blocks_udp_sink_0_0_0, '0']
|
||||
- [blocks_multiply_xx_0_0_0, '0', blocks_float_to_complex_0, '0']
|
||||
- [blocks_multiply_xx_0_1, '0', blocks_float_to_complex_0, '1']
|
||||
- [blocks_multiply_xx_0_1_0, '0', blocks_float_to_int_0_1, '0']
|
||||
- [digital_constellation_decoder_cb_0, '0', blocks_udp_sink_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', blocks_complex_to_float_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', digital_constellation_decoder_cb_0, '0']
|
||||
- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_0, '0']
|
||||
- [digital_lms_dd_equalizer_cc_0, '0', analog_agc2_xx_0_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']
|
||||
- [low_pass_filter_0, '0', blocks_multiply_xx_0_0_0, '0']
|
||||
- [low_pass_filter_0, '0', blocks_multiply_xx_0_1, '0']
|
||||
- [low_pass_filter_0, '0', qtgui_freq_sink_x_1, '0']
|
||||
- [mmse_resampler_xx_0, '0', blocks_multiply_xx_0_1_0, '0']
|
||||
- [mmse_resampler_xx_1, '0', digital_pfb_clock_sync_xxx_0, '0']
|
||||
|
||||
metadata:
|
||||
file_format: 1
|
||||
@@ -0,0 +1,383 @@
|
||||
options:
|
||||
parameters:
|
||||
author: DJ0ABR
|
||||
category: '[GRC Hier Blocks]'
|
||||
cmake_opt: ''
|
||||
comment: 'requires GNU Radio 3.8xxx
|
||||
|
||||
does NOT work with 3.7x'
|
||||
copyright: DJ0ABR
|
||||
description: requires GNU Radio 3.8xxx
|
||||
gen_cmake: 'On'
|
||||
gen_linking: dynamic
|
||||
generate_options: no_gui
|
||||
hier_block_src_path: '.:'
|
||||
id: qpsk_tx
|
||||
max_nouts: '0'
|
||||
output_language: python
|
||||
placement: (0,0)
|
||||
qt_qss_theme: ''
|
||||
realtime_scheduling: ''
|
||||
run: 'True'
|
||||
run_command: '{python} -u {filename}'
|
||||
run_options: run
|
||||
sizing_mode: fixed
|
||||
thread_safe_setters: ''
|
||||
title: 'QPSK TX-Modem '
|
||||
window_size: ''
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [8, 8]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
|
||||
blocks:
|
||||
- name: mixf
|
||||
id: variable
|
||||
parameters:
|
||||
comment: 'mid frequency
|
||||
|
||||
in the audio
|
||||
|
||||
spectrum. Set to get
|
||||
|
||||
lowest and highest
|
||||
|
||||
frequency within the
|
||||
|
||||
transceiver filter range.'
|
||||
value: '1500'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [360, 12.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: qpsk__constellation
|
||||
id: variable_constellation_rect
|
||||
parameters:
|
||||
comment: 'alternative:
|
||||
|
||||
[0.707+0.707j, -0.707+0.707j, -0.707-0.707j, 0.707-0.707j]
|
||||
|
||||
does not make a difference'
|
||||
const_points: '[1+1j, -1+1j, -1-1j, 1-1j]'
|
||||
imag_sect: '2'
|
||||
precision: '8'
|
||||
real_sect: '2'
|
||||
rot_sym: '4'
|
||||
soft_dec_lut: None
|
||||
sym_map: '[0, 1, 2, 3]'
|
||||
w_imag_sect: '1'
|
||||
w_real_sect: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [8, 196.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: analog_sig_source_x_0_0_0
|
||||
id: analog_sig_source_x
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
amp: '1'
|
||||
comment: 'the modulator output is in the baseband at 0 Hz.
|
||||
|
||||
Mix it with the required audio mid frequency.
|
||||
|
||||
cos and -sin are used to combine I and Q
|
||||
|
||||
into the final signal.'
|
||||
freq: mixf
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
offset: '0'
|
||||
phase: '0'
|
||||
samp_rate: samp_rate
|
||||
type: complex
|
||||
waveform: analog.GR_COS_WAVE
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [96, 476.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: audio_sink_0_0
|
||||
id: audio_sink
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'send audio to
|
||||
|
||||
transceiver'
|
||||
device_name: ''
|
||||
num_inputs: '1'
|
||||
ok_to_block: 'True'
|
||||
samp_rate: samp_rate
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [928, 356.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_add_xx_0
|
||||
id: blocks_add_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'generate the analog
|
||||
|
||||
output signal: USB
|
||||
|
||||
(for LSB use substraction)'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [696, 376.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_complex_to_float_1
|
||||
id: blocks_complex_to_float
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: ''
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [512, 376.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_multiply_const_vxx_0
|
||||
id: blocks_multiply_const_vxx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'reduce level for the
|
||||
|
||||
audio output, improves
|
||||
|
||||
linearity'
|
||||
const: '0.05'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
type: float
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [784, 356.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: blocks_multiply_xx_0_0
|
||||
id: blocks_multiply_xx
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: "mix I und Q \nto the mid \nfrequency\nspecified in\n\"mixf\""
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
num_inputs: '2'
|
||||
type: complex
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [400, 376.0]
|
||||
rotation: 0
|
||||
state: enabled
|
||||
- name: blocks_udp_source_0
|
||||
id: blocks_udp_source
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: "receive an UDP data stream\nwith the bitrate of (see \ncomment samp_rate)\n\
|
||||
The stream is buffered, \nso send some bytes ahead\nto prefill the buffer\n\
|
||||
and avoid underrun"
|
||||
eof: 'False'
|
||||
ipaddr: 127.0.0.1
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
port: '40134'
|
||||
psize: '258'
|
||||
type: byte
|
||||
vlen: '1'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [824, 148.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- name: digital_constellation_modulator_0
|
||||
id: digital_constellation_modulator
|
||||
parameters:
|
||||
affinity: ''
|
||||
alias: ''
|
||||
comment: 'unpack bytes to bits
|
||||
|
||||
make symbols 2bits/sym
|
||||
|
||||
make constellation'
|
||||
constellation: qpsk__constellation
|
||||
differential: 'False'
|
||||
excess_bw: '0.35'
|
||||
log: 'False'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
samples_per_symbol: resamprate
|
||||
verbose: 'False'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [392, 180.0]
|
||||
rotation: 180
|
||||
state: enabled
|
||||
- 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: '0.1'
|
||||
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: 'False'
|
||||
grid: 'True'
|
||||
gui_hint: ''
|
||||
label: Relative Gain
|
||||
label1: ''
|
||||
label10: ''''''
|
||||
label2: ''''''
|
||||
label3: ''''''
|
||||
label4: ''''''
|
||||
label5: ''''''
|
||||
label6: ''''''
|
||||
label7: ''''''
|
||||
label8: ''''''
|
||||
label9: ''''''
|
||||
legend: 'True'
|
||||
maxoutbuf: '0'
|
||||
minoutbuf: '0'
|
||||
name: '""'
|
||||
nconnections: '1'
|
||||
showports: 'False'
|
||||
tr_chan: '0'
|
||||
tr_level: '0.0'
|
||||
tr_mode: qtgui.TRIG_MODE_FREE
|
||||
tr_tag: '""'
|
||||
type: float
|
||||
units: dB
|
||||
update_time: '0.10'
|
||||
width1: '1'
|
||||
width10: '1'
|
||||
width2: '1'
|
||||
width3: '1'
|
||||
width4: '1'
|
||||
width5: '1'
|
||||
width6: '1'
|
||||
width7: '1'
|
||||
width8: '1'
|
||||
width9: '1'
|
||||
wintype: firdes.WIN_BLACKMAN_hARRIS
|
||||
ymax: '10'
|
||||
ymin: '-140'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [880, 576.0]
|
||||
rotation: 0
|
||||
state: disabled
|
||||
- name: resamprate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: ''
|
||||
hide: none
|
||||
label: resamprate
|
||||
short_id: r
|
||||
type: intx
|
||||
value: '20'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [776, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
- name: samp_rate
|
||||
id: parameter
|
||||
parameters:
|
||||
alias: ''
|
||||
comment: Audio Rate
|
||||
hide: none
|
||||
label: samp_rate
|
||||
short_id: s
|
||||
type: intx
|
||||
value: '44100'
|
||||
states:
|
||||
bus_sink: false
|
||||
bus_source: false
|
||||
bus_structure: null
|
||||
coordinate: [208, 12.0]
|
||||
rotation: 0
|
||||
state: true
|
||||
|
||||
connections:
|
||||
- [analog_sig_source_x_0_0_0, '0', blocks_multiply_xx_0_0, '1']
|
||||
- [blocks_add_xx_0, '0', blocks_multiply_const_vxx_0, '0']
|
||||
- [blocks_add_xx_0, '0', qtgui_freq_sink_x_0, '0']
|
||||
- [blocks_complex_to_float_1, '0', blocks_add_xx_0, '0']
|
||||
- [blocks_complex_to_float_1, '1', blocks_add_xx_0, '1']
|
||||
- [blocks_multiply_const_vxx_0, '0', audio_sink_0_0, '0']
|
||||
- [blocks_multiply_xx_0_0, '0', blocks_complex_to_float_1, '0']
|
||||
- [blocks_udp_source_0, '0', digital_constellation_modulator_0, '0']
|
||||
- [digital_constellation_modulator_0, '0', blocks_multiply_xx_0_0, '0']
|
||||
|
||||
metadata:
|
||||
file_format: 1
|
||||
Reference in New Issue
Block a user