Created
July 1, 2023 21:44
-
-
Save daniestevez/58373345b2adc3610e82e01912afd66b to your computer and use it in GitHub Desktop.
EUCLID GNU Radio decoder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
options: | |
parameters: | |
author: Daniel Estevez | |
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: euclid | |
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: EUCLID decoder | |
window_size: (1000,1000) | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [8, 8] | |
rotation: 0 | |
state: enabled | |
blocks: | |
- name: access_code | |
id: variable | |
parameters: | |
comment: '' | |
value: '''''.join([str(i) for i in (syncword+1)//2])' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1200, 156.0] | |
rotation: 0 | |
state: true | |
- name: baudrate | |
id: variable | |
parameters: | |
comment: '' | |
value: 60e3 | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [432, 12.0] | |
rotation: 0 | |
state: true | |
- name: pll_bw | |
id: variable | |
parameters: | |
comment: '' | |
value: '25' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [304, 12.0] | |
rotation: 0 | |
state: true | |
- name: samp_rate | |
id: variable | |
parameters: | |
comment: '' | |
value: '249995' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [184, 12] | |
rotation: 0 | |
state: enabled | |
- name: sps | |
id: variable | |
parameters: | |
comment: '' | |
value: samp_rate / baudrate | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [552, 12.0] | |
rotation: 0 | |
state: true | |
- name: syncword | |
id: variable | |
parameters: | |
comment: '' | |
value: 2*np.unpackbits(np.frombuffer(bytes.fromhex(syncword_hex), dtype = 'uint8')).astype('int')-1 | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1200, 76.0] | |
rotation: 0 | |
state: true | |
- name: syncword_hex | |
id: variable | |
parameters: | |
comment: '' | |
value: '''1ACFFC1D''' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1200, 12.0] | |
rotation: 0 | |
state: true | |
- name: analog_pll_carriertracking_cc_0 | |
id: analog_pll_carriertracking_cc | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
max_freq: np.pi | |
maxoutbuf: '0' | |
min_freq: '- np.pi' | |
minoutbuf: '0' | |
w: 2 * np.pi * pll_bw / samp_rate | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [456, 164.0] | |
rotation: 0 | |
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: [712, 168.0] | |
rotation: 0 | |
state: true | |
- name: blocks_complex_to_real_0 | |
id: blocks_complex_to_real | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
vlen: '1' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [384, 600.0] | |
rotation: 0 | |
state: true | |
- name: blocks_file_sink_0 | |
id: blocks_file_sink | |
parameters: | |
affinity: '' | |
alias: '' | |
append: 'False' | |
comment: '' | |
file: euclid_frames.u8 | |
type: byte | |
unbuffered: 'False' | |
vlen: '1' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1344, 804.0] | |
rotation: 0 | |
state: true | |
- name: blocks_file_source_0 | |
id: blocks_file_source | |
parameters: | |
affinity: '' | |
alias: '' | |
begin_tag: pmt.PMT_NIL | |
comment: '' | |
file: /home/daniel/euclid/euclid_8455_20230701_205430_249995.raw | |
length: '0' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
offset: '0' | |
repeat: 'True' | |
type: short | |
vlen: '1' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [32, 148.0] | |
rotation: 0 | |
state: true | |
- name: blocks_interleaved_short_to_complex_0 | |
id: blocks_interleaved_short_to_complex | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
scale_factor: 2**15 | |
swap: 'False' | |
vector_input: 'False' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [248, 172.0] | |
rotation: 0 | |
state: true | |
- name: blocks_message_debug_0 | |
id: blocks_message_debug | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
en_uvec: 'True' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1312, 648.0] | |
rotation: 0 | |
state: disabled | |
- name: blocks_multiply_const_vxx_0 | |
id: blocks_multiply_const_vxx | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
const: '-1' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
type: float | |
vlen: '1' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [560, 772.0] | |
rotation: 0 | |
state: true | |
- name: digital_costas_loop_cc_0 | |
id: digital_costas_loop_cc | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
order: '2' | |
use_snr: 'False' | |
w: '0.003' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [160, 512.0] | |
rotation: 0 | |
state: true | |
- name: digital_symbol_sync_xx_0 | |
id: digital_symbol_sync_xx | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
constellation: digital.constellation_bpsk().base() | |
damping: '1.0' | |
loop_bw: '0.01' | |
max_dev: '0.01' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
nfilters: '128' | |
osps: '1' | |
pfb_mf_taps: '[]' | |
resamp_type: digital.IR_MMSE_8TAP | |
sps: sps | |
ted_gain: '1.0' | |
ted_type: digital.TED_GARDNER | |
type: cc | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [824, 292.0] | |
rotation: 0 | |
state: true | |
- name: fir_filter_xxx_0 | |
id: fir_filter_xxx | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
decim: '1' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
samp_delay: '0' | |
taps: '[1.6 * 1/int(sps)] * int(sps)' | |
type: ccc | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [568, 340.0] | |
rotation: 0 | |
state: true | |
- name: freq_xlating_fir_filter_xxx_0 | |
id: freq_xlating_fir_filter_xxx | |
parameters: | |
affinity: '' | |
alias: '' | |
center_freq: baudrate | |
comment: '' | |
decim: '1' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
samp_rate: samp_rate | |
taps: firdes.low_pass(1.0, samp_rate, baudrate, 0.1*baudrate) | |
type: fcf | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [168, 324.0] | |
rotation: 0 | |
state: true | |
- name: import_0 | |
id: import | |
parameters: | |
alias: '' | |
comment: '' | |
imports: import numpy as np | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [184, 84.0] | |
rotation: 0 | |
state: true | |
- name: pdu_pdu_to_tagged_stream_0 | |
id: pdu_pdu_to_tagged_stream | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
tag: packet_len | |
type: byte | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1112, 820.0] | |
rotation: 0 | |
state: true | |
- name: qtgui_const_sink_x_0 | |
id: qtgui_const_sink_x | |
parameters: | |
affinity: '' | |
alias: '' | |
alpha1: '1.0' | |
alpha10: '1.0' | |
alpha2: '1.0' | |
alpha3: '1.0' | |
alpha4: '1.0' | |
alpha5: '1.0' | |
alpha6: '1.0' | |
alpha7: '1.0' | |
alpha8: '1.0' | |
alpha9: '1.0' | |
autoscale: 'False' | |
axislabels: 'True' | |
color1: '"blue"' | |
color10: '"red"' | |
color2: '"red"' | |
color3: '"red"' | |
color4: '"red"' | |
color5: '"red"' | |
color6: '"red"' | |
color7: '"red"' | |
color8: '"red"' | |
color9: '"red"' | |
comment: '' | |
grid: 'False' | |
gui_hint: 0,1,1,1 | |
label1: '' | |
label10: '' | |
label2: '' | |
label3: '' | |
label4: '' | |
label5: '' | |
label6: '' | |
label7: '' | |
label8: '' | |
label9: '' | |
legend: 'False' | |
marker1: '0' | |
marker10: '0' | |
marker2: '0' | |
marker3: '0' | |
marker4: '0' | |
marker5: '0' | |
marker6: '0' | |
marker7: '0' | |
marker8: '0' | |
marker9: '0' | |
name: '""' | |
nconnections: '1' | |
size: int(baudrate / 10) | |
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: '3' | |
xmin: '-3' | |
ymax: '3' | |
ymin: '-3' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [424, 500.0] | |
rotation: 0 | |
state: true | |
- name: qtgui_freq_sink_x_0 | |
id: qtgui_freq_sink_x | |
parameters: | |
affinity: '' | |
alias: '' | |
alpha1: '1.0' | |
alpha10: '1.0' | |
alpha2: '1.0' | |
alpha3: '1.0' | |
alpha4: '1.0' | |
alpha5: '1.0' | |
alpha6: '1.0' | |
alpha7: '1.0' | |
alpha8: '1.0' | |
alpha9: '1.0' | |
autoscale: 'False' | |
average: '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: '4096' | |
freqhalf: 'True' | |
grid: 'False' | |
gui_hint: 1,0,1,2 | |
label: Relative Gain | |
label1: I | |
label10: '''''' | |
label2: Q | |
label3: '''''' | |
label4: '''''' | |
label5: '''''' | |
label6: '''''' | |
label7: '''''' | |
label8: '''''' | |
label9: '''''' | |
legend: 'True' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
name: PLL output | |
nconnections: '2' | |
norm_window: 'False' | |
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: window.WIN_BLACKMAN_hARRIS | |
ymax: '-40' | |
ymin: '-90' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [936, 156.0] | |
rotation: 0 | |
state: true | |
- 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: '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: '4096' | |
freqhalf: 'True' | |
grid: 'False' | |
gui_hint: 0,0,1,1 | |
label: Relative Gain | |
label1: '' | |
label10: '''''' | |
label2: '''''' | |
label3: '''''' | |
label4: '''''' | |
label5: '''''' | |
label6: '''''' | |
label7: '''''' | |
label8: '''''' | |
label9: '''''' | |
legend: 'False' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
name: Signal spectrum | |
nconnections: '1' | |
norm_window: 'False' | |
showports: 'False' | |
tr_chan: '0' | |
tr_level: '0.0' | |
tr_mode: qtgui.TRIG_MODE_FREE | |
tr_tag: '""' | |
type: complex | |
units: dB | |
update_time: '0.10' | |
width1: '1' | |
width10: '1' | |
width2: '1' | |
width3: '1' | |
width4: '1' | |
width5: '1' | |
width6: '1' | |
width7: '1' | |
width8: '1' | |
width9: '1' | |
wintype: window.WIN_BLACKMAN_hARRIS | |
ymax: '-40' | |
ymin: '-90' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [728, 60.0] | |
rotation: 0 | |
state: true | |
- name: satellites_ccsds_concatenated_deframer_0 | |
id: satellites_ccsds_concatenated_deframer | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
convolutional: '"CCSDS"' | |
frame_size: 223 * 5 | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
options: '""' | |
precoding: None | |
rs_basis: '"dual"' | |
rs_interleaving: '5' | |
scrambler: '"CCSDS"' | |
threshold: '4' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [704, 548.0] | |
rotation: 0 | |
state: true | |
- name: satellites_ccsds_concatenated_deframer_0_0 | |
id: satellites_ccsds_concatenated_deframer | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
convolutional: '"CCSDS"' | |
frame_size: 223 * 5 | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
options: '""' | |
precoding: None | |
rs_basis: '"dual"' | |
rs_interleaving: '5' | |
scrambler: '"CCSDS"' | |
threshold: '4' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [720, 724.0] | |
rotation: 0 | |
state: true | |
- name: satellites_crc_check_0 | |
id: satellites_crc_check | |
parameters: | |
affinity: '' | |
alias: '' | |
comment: '' | |
discard_crc: 'True' | |
final_xor: '0x0' | |
initial_value: '0xFFFF' | |
input_reflected: 'False' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
num_bits: '16' | |
poly: '0x1021' | |
result_reflected: 'False' | |
skip_header_bytes: '0' | |
swap_endianness: 'False' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [1072, 648.0] | |
rotation: 0 | |
state: enabled | |
- name: satellites_rms_agc_0 | |
id: satellites_rms_agc | |
parameters: | |
affinity: '' | |
alias: '' | |
alpha: 1e-3 | |
comment: '' | |
maxoutbuf: '0' | |
minoutbuf: '0' | |
reference: '1.0' | |
states: | |
bus_sink: false | |
bus_source: false | |
bus_structure: null | |
coordinate: [416, 340.0] | |
rotation: 0 | |
state: true | |
connections: | |
- [analog_pll_carriertracking_cc_0, '0', blocks_complex_to_float_0, '0'] | |
- [blocks_complex_to_float_0, '0', qtgui_freq_sink_x_0, '0'] | |
- [blocks_complex_to_float_0, '1', freq_xlating_fir_filter_xxx_0, '0'] | |
- [blocks_complex_to_float_0, '1', qtgui_freq_sink_x_0, '1'] | |
- [blocks_complex_to_real_0, '0', blocks_multiply_const_vxx_0, '0'] | |
- [blocks_complex_to_real_0, '0', satellites_ccsds_concatenated_deframer_0, '0'] | |
- [blocks_file_source_0, '0', blocks_interleaved_short_to_complex_0, '0'] | |
- [blocks_interleaved_short_to_complex_0, '0', analog_pll_carriertracking_cc_0, '0'] | |
- [blocks_interleaved_short_to_complex_0, '0', qtgui_freq_sink_x_1, '0'] | |
- [blocks_multiply_const_vxx_0, '0', satellites_ccsds_concatenated_deframer_0_0, '0'] | |
- [digital_costas_loop_cc_0, '0', blocks_complex_to_real_0, '0'] | |
- [digital_costas_loop_cc_0, '0', qtgui_const_sink_x_0, '0'] | |
- [digital_symbol_sync_xx_0, '0', digital_costas_loop_cc_0, '0'] | |
- [fir_filter_xxx_0, '0', digital_symbol_sync_xx_0, '0'] | |
- [freq_xlating_fir_filter_xxx_0, '0', satellites_rms_agc_0, '0'] | |
- [pdu_pdu_to_tagged_stream_0, '0', blocks_file_sink_0, '0'] | |
- [satellites_ccsds_concatenated_deframer_0, out, satellites_crc_check_0, in] | |
- [satellites_ccsds_concatenated_deframer_0_0, out, satellites_crc_check_0, in] | |
- [satellites_crc_check_0, ok, blocks_message_debug_0, print] | |
- [satellites_crc_check_0, ok, pdu_pdu_to_tagged_stream_0, pdus] | |
- [satellites_rms_agc_0, '0', fir_filter_xxx_0, '0'] | |
metadata: | |
file_format: 1 | |
grc_version: 3.10.6.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment