From 1de862c5e2ac6e2baa76daf9fbe6b64050da12fc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 21 Dec 2021 00:32:06 +0100 Subject: Add more data for QAM, fix colormap --- ...am_sim_dynamic_grblock_los_etsi_doppler5_k5.dat | Bin 0 -> 4539896 bytes ...m_sim_dynamic_grblock_los_etsi_doppler70_k5.dat | Bin 0 -> 3447912 bytes ..._qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat | Bin 0 -> 3857296 bytes ...qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat | Bin 0 -> 5823256 bytes ...am_sim_dynamic_grblock_los_etsi_doppler5_k5.dat | Bin 0 -> 1134648 bytes ...m_sim_dynamic_grblock_los_etsi_doppler70_k5.dat | Bin 0 -> 861648 bytes ..._qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat | Bin 0 -> 964000 bytes ...qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat | Bin 0 -> 1455488 bytes ...am_sim_dynamic_grblock_los_etsi_doppler5_k5.dat | Bin 0 -> 1134360 bytes ...m_sim_dynamic_grblock_los_etsi_doppler70_k5.dat | Bin 0 -> 861480 bytes ..._qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat | Bin 0 -> 963720 bytes ...qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat | Bin 0 -> 1455480 bytes ...am_sim_dynamic_grblock_los_etsi_doppler5_k5.dat | Bin 0 -> 1134648 bytes ...m_sim_dynamic_grblock_los_etsi_doppler70_k5.dat | Bin 0 -> 861648 bytes ..._qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat | Bin 0 -> 964000 bytes ...qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat | Bin 0 -> 1455488 bytes doc/thesis/figures/data/qam_hw_lab.py | 12 ++++--- ...qam_sim_dynamic_grblock_los_etsi_doppler5_k5.py | 35 +++++++++++++++++++++ ...am_sim_dynamic_grblock_los_etsi_doppler70_k5.py | 35 +++++++++++++++++++++ .../qam_sim_dynamic_grblock_nlos_etsi_doppler5.py | 35 +++++++++++++++++++++ .../qam_sim_dynamic_grblock_nlos_etsi_doppler70.py | 31 ++++++++++++++++++ doc/thesis/figures/data/qpsk_hw_lab.py | 6 +++- ...psk_sim_dynamic_grblock_los_etsi_doppler5_k5.py | 6 +++- ...sk_sim_dynamic_grblock_los_etsi_doppler70_k5.py | 6 +++- .../qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py | 6 +++- ...qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py | 6 +++- 26 files changed, 169 insertions(+), 9 deletions(-) create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat create mode 100644 doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler5_k5.py create mode 100644 doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler70_k5.py create mode 100644 doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler5.py create mode 100644 doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler70.py (limited to 'doc/thesis/figures/data') diff --git a/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat new file mode 100644 index 0000000..49070d5 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat new file mode 100644 index 0000000..13a6201 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat new file mode 100644 index 0000000..207213c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat new file mode 100644 index 0000000..3a01a87 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat new file mode 100644 index 0000000..c235697 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat new file mode 100644 index 0000000..59d13f2 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat new file mode 100644 index 0000000..db59982 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat new file mode 100644 index 0000000..2f0b72c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat new file mode 100644 index 0000000..ecd61c9 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat new file mode 100644 index 0000000..7dc562e Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat new file mode 100644 index 0000000..3a48c8a Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat new file mode 100644 index 0000000..e6ead95 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat new file mode 100644 index 0000000..32ed9d0 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler5_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat new file mode 100644 index 0000000..f642f4f Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_los_etsi_doppler70_k5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat new file mode 100644 index 0000000..a1418dd Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler5.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat new file mode 100644 index 0000000..842c36a Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qam_sim_dynamic_grblock_nlos_etsi_doppler70.dat differ diff --git a/doc/thesis/figures/data/qam_hw_lab.py b/doc/thesis/figures/data/qam_hw_lab.py index d49cfd1..fde109a 100644 --- a/doc/thesis/figures/data/qam_hw_lab.py +++ b/doc/thesis/figures/data/qam_hw_lab.py @@ -7,24 +7,28 @@ import numpy as np samples = utils.load_samples(__file__) # range of samples we want to show -start = 20e3 -end = start +400 +start = 25e3 +end = start +800 # select every second samples -select_samples = lambda arr: arr[int(start):int(end):6] +select_samples = lambda arr: arr[int(start):int(end):8] values = map(select_samples, samples) # split into imaginary and real parts get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr", ] # save to file diff --git a/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler5_k5.py new file mode 100644 index 0000000..a644402 --- /dev/null +++ b/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler5_k5.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import utils +import numpy as np + +# get array of samples [channel, synchronized, equalized, locked] +samples = utils.load_samples(__file__) + +# range of samples we want to show +start = 10e3 +end = start +40000 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):200] +values = map(select_samples, samples) + +# split into imaginary and real parts +get_parts = lambda v: (np.real(v), np.imag(v)) +parts = [p for v in map(get_parts, values) for p in v] + +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + +# zip data and add header +data = np.concatenate([np.array(list(zip(*parts)))]) +headers = [ + "channel_re", "channel_im", + "synchronized_re", "synchronized_im", + "equalized_re", "equalized_im", + "locked_re", "locked_im", + "samplenr", +] + +# save to file +utils.save_to_file(__file__, data, headers) diff --git a/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler70_k5.py new file mode 100644 index 0000000..8f35d50 --- /dev/null +++ b/doc/thesis/figures/data/qam_sim_dynamic_grblock_los_etsi_doppler70_k5.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import utils +import numpy as np + +# get array of samples [channel, synchronized, equalized, locked] +samples = utils.load_samples(__file__) + +# range of samples we want to show +start = 25e3 +end = start +1e3 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):8] +values = map(select_samples, samples) + +# split into imaginary and real parts +get_parts = lambda v: (np.real(v), np.imag(v)) +parts = [p for v in map(get_parts, values) for p in v] + +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + +# zip data and add header +data = np.array(list(zip(*parts))) +headers = [ + "channel_re", "channel_im", + "synchronized_re", "synchronized_im", + "equalized_re", "equalized_im", + "locked_re", "locked_im", + "samplenr" +] + +# save to file +utils.save_to_file(__file__, data, headers) diff --git a/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler5.py new file mode 100644 index 0000000..e434809 --- /dev/null +++ b/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler5.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import utils +import numpy as np + +# get array of samples [channel, synchronized, equalized, locked] +samples = utils.load_samples(__file__) + +# range of samples we want to show +start = 20e3 +end = start +10000 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):100] +values = map(select_samples, samples) + +# split into imaginary and real parts +get_parts = lambda v: (np.real(v), np.imag(v)) +parts = [p for v in map(get_parts, values) for p in v] + +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + +# zip data and add header +data = np.array(list(zip(*parts))) +headers = [ + "channel_re", "channel_im", + "synchronized_re", "synchronized_im", + "equalized_re", "equalized_im", + "locked_re", "locked_im", + "samplenr" +] + +# save to file +utils.save_to_file(__file__, data, headers) diff --git a/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler70.py new file mode 100644 index 0000000..5b93750 --- /dev/null +++ b/doc/thesis/figures/data/qam_sim_dynamic_grblock_nlos_etsi_doppler70.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +import utils +import numpy as np + +# get array of samples [channel, synchronized, equalized, locked] +samples = utils.load_samples(__file__) + +# range of samples we want to show +start = 1e3 +end = start +800 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):8] +values = map(select_samples, samples) + +# split into imaginary and real parts +get_parts = lambda v: (np.real(v), np.imag(v)) +parts = [p for v in map(get_parts, values) for p in v] + +# zip data and add header +data = np.array(list(zip(*parts))) +headers = [ + "channel_re", "channel_im", + "synchronized_re", "synchronized_im", + "equalized_re", "equalized_im", + "locked_re", "locked_im" +] + +# save to file +utils.save_to_file(__file__, data, headers) diff --git a/doc/thesis/figures/data/qpsk_hw_lab.py b/doc/thesis/figures/data/qpsk_hw_lab.py index 741f32f..f6f816b 100644 --- a/doc/thesis/figures/data/qpsk_hw_lab.py +++ b/doc/thesis/figures/data/qpsk_hw_lab.py @@ -18,13 +18,17 @@ values = map(select_samples, samples) get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr", ] # save to file diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py index f621fd0..819800f 100644 --- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py @@ -18,13 +18,17 @@ values = map(select_samples, samples) get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr" ] # save to file diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py index c82fbd1..d2147df 100644 --- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py @@ -18,13 +18,17 @@ values = map(select_samples, samples) get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr" ] # save to file diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py index c82fbd1..15e8fd0 100644 --- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py @@ -18,13 +18,17 @@ values = map(select_samples, samples) get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr", ] # save to file diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py index eae2afc..5194407 100644 --- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py @@ -18,13 +18,17 @@ values = map(select_samples, samples) get_parts = lambda v: (np.real(v), np.imag(v)) parts = [p for v in map(get_parts, values) for p in v] +# add 'samplenr' metadata +parts += [np.arange(0, len(parts[0]))] + # zip data and add header data = np.array(list(zip(*parts))) headers = [ "channel_re", "channel_im", "synchronized_re", "synchronized_im", "equalized_re", "equalized_im", - "locked_re", "locked_im" + "locked_re", "locked_im", + "samplenr" ] # save to file -- cgit v1.2.1