From 42847d93ef34cfdeb55ba1949e904a8e7148265b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 18 Dec 2021 18:25:49 +0100 Subject: Add static simulations --- .../channel_qpsk_sim_const_nochannel.dat | Bin 3447720 -> 0 bytes .../data/flowgraphs/channel_qpsk_sim_nochannel.dat | Bin 0 -> 3447720 bytes ...annel_qpsk_sim_static_firblock_los_halfsymb.dat | Bin 0 -> 1394384 bytes .../channel_qpsk_sim_static_firblock_los_vec.dat | Bin 0 -> 1525448 bytes ...nnel_qpsk_sim_static_firblock_nlos_halfsymb.dat | Bin 0 -> 2071552 bytes .../channel_qpsk_sim_static_firblock_nlos_vec.dat | Bin 0 -> 1590984 bytes .../equalized_qpsk_sim_const_nochannel.dat | Bin 861600 -> 0 bytes .../flowgraphs/equalized_qpsk_sim_nochannel.dat | Bin 0 -> 861600 bytes ...lized_qpsk_sim_static_firblock_los_halfsymb.dat | Bin 0 -> 348264 bytes .../equalized_qpsk_sim_static_firblock_los_vec.dat | Bin 0 -> 381032 bytes ...ized_qpsk_sim_static_firblock_nlos_halfsymb.dat | Bin 0 -> 517552 bytes ...equalized_qpsk_sim_static_firblock_nlos_vec.dat | Bin 0 -> 397416 bytes .../flowgraphs/locked_qpsk_sim_const_nochannel.dat | Bin 861552 -> 0 bytes .../data/flowgraphs/locked_qpsk_sim_nochannel.dat | Bin 0 -> 861552 bytes ...ocked_qpsk_sim_static_firblock_los_halfsymb.dat | Bin 0 -> 348264 bytes .../locked_qpsk_sim_static_firblock_los_vec.dat | Bin 0 -> 381024 bytes ...cked_qpsk_sim_static_firblock_nlos_halfsymb.dat | Bin 0 -> 517536 bytes .../locked_qpsk_sim_static_firblock_nlos_vec.dat | Bin 0 -> 397368 bytes .../synchronized_qpsk_sim_const_nochannel.dat | Bin 861600 -> 0 bytes .../flowgraphs/synchronized_qpsk_sim_nochannel.dat | Bin 0 -> 861600 bytes ...nized_qpsk_sim_static_firblock_los_halfsymb.dat | Bin 0 -> 348264 bytes ...nchronized_qpsk_sim_static_firblock_los_vec.dat | Bin 0 -> 381032 bytes ...ized_qpsk_sim_static_firblock_nlos_halfsymb.dat | Bin 0 -> 517552 bytes ...chronized_qpsk_sim_static_firblock_nlos_vec.dat | Bin 0 -> 397416 bytes ...m_const_dynamic_grblock_los_etsi_doppler5_k5.py | 31 ----------------- ..._const_dynamic_grblock_los_etsi_doppler70_k5.py | 31 ----------------- ...sim_const_dynamic_grblock_nlos_etsi_doppler5.py | 31 ----------------- ...im_const_dynamic_grblock_nlos_etsi_doppler70.py | 31 ----------------- .../figures/data/qpsk_sim_const_nochannel.py | 31 ----------------- .../qpsk_sim_const_static_firblock_los_halfsymb.py | 31 ----------------- .../data/qpsk_sim_const_static_firblock_los_vec.py | 31 ----------------- ...qpsk_sim_const_static_firblock_nlos_halfsymb.py | 31 ----------------- ...psk_sim_dynamic_grblock_los_etsi_doppler5_k5.py | 31 +++++++++++++++++ ...sk_sim_dynamic_grblock_los_etsi_doppler70_k5.py | 31 +++++++++++++++++ .../qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py | 31 +++++++++++++++++ ...qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py | 31 +++++++++++++++++ doc/thesis/figures/data/qpsk_sim_nochannel.py | 31 +++++++++++++++++ .../data/qpsk_sim_static_firblock_los_halfsymb.py | 31 +++++++++++++++++ .../data/qpsk_sim_static_firblock_los_vec.py | 31 +++++++++++++++++ .../data/qpsk_sim_static_firblock_nlos_halfsymb.py | 31 +++++++++++++++++ .../data/qpsk_sim_static_firblock_nlos_vec.py | 31 +++++++++++++++++ .../figures/tikz/qpsk-simulations-static.tex | 38 ++++++++++++--------- 42 files changed, 300 insertions(+), 265 deletions(-) delete mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_vec.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_vec.dat delete mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_vec.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_vec.dat delete mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_vec.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_vec.dat delete mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_vec.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_halfsymb.dat create mode 100644 doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_vec.dat delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_nochannel.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_halfsymb.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_vec.py delete mode 100644 doc/thesis/figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.py create mode 100644 doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py create mode 100644 doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py create mode 100644 doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py create mode 100644 doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py create mode 100644 doc/thesis/figures/data/qpsk_sim_nochannel.py create mode 100644 doc/thesis/figures/data/qpsk_sim_static_firblock_los_halfsymb.py create mode 100644 doc/thesis/figures/data/qpsk_sim_static_firblock_los_vec.py create mode 100644 doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_halfsymb.py create mode 100644 doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_vec.py (limited to 'doc/thesis/figures') diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat deleted file mode 100644 index c5d7a51..0000000 Binary files a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat and /dev/null differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat new file mode 100644 index 0000000..c5d7a51 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_halfsymb.dat new file mode 100644 index 0000000..0eb44fb Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_vec.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_vec.dat new file mode 100644 index 0000000..5be6d56 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_halfsymb.dat new file mode 100644 index 0000000..2dd54b7 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_vec.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_vec.dat new file mode 100644 index 0000000..b94d152 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat deleted file mode 100644 index 38b583c..0000000 Binary files a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat and /dev/null differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat new file mode 100644 index 0000000..38b583c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_halfsymb.dat new file mode 100644 index 0000000..cfacb55 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_vec.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_vec.dat new file mode 100644 index 0000000..5ec3948 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_halfsymb.dat new file mode 100644 index 0000000..7925b4c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_vec.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_vec.dat new file mode 100644 index 0000000..3b1823b Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat deleted file mode 100644 index 052b5eb..0000000 Binary files a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat and /dev/null differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat new file mode 100644 index 0000000..052b5eb Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_halfsymb.dat new file mode 100644 index 0000000..03086cc Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_vec.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_vec.dat new file mode 100644 index 0000000..8d9d10c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_halfsymb.dat new file mode 100644 index 0000000..c6d4ee2 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_vec.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_vec.dat new file mode 100644 index 0000000..65c170d Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat deleted file mode 100644 index 2d7d1b4..0000000 Binary files a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat and /dev/null differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat new file mode 100644 index 0000000..2d7d1b4 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_halfsymb.dat new file mode 100644 index 0000000..f1be833 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_vec.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_vec.dat new file mode 100644 index 0000000..205bc1c Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_vec.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_halfsymb.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_halfsymb.dat new file mode 100644 index 0000000..328e38b Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_halfsymb.dat differ diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_vec.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_vec.dat new file mode 100644 index 0000000..ceec6d6 Binary files /dev/null and b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_vec.dat differ diff --git a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_nochannel.py b/doc/thesis/figures/data/qpsk_sim_const_nochannel.py deleted file mode 100644 index 7e42348..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_nochannel.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python3 - -import utils -import numpy as np - -# get array of samples [channel, synchronized, equalized, locked] -samples = utils.load_samples("qpsk_sim_const_nochannel") - -# range of samples we want to show -start = 1e3 -end = start + 200 - -# select every second samples -select_samples = lambda arr: arr[int(start):int(end):2] -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_sim_const_static_firblock_los_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_halfsymb.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_halfsymb.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_static_firblock_los_vec.py b/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_vec.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_vec.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_const_static_firblock_nlos_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.py deleted file mode 100644 index eae2afc..0000000 --- a/doc/thesis/figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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):4] -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_sim_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.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):4] +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_sim_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.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):4] +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_sim_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.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):4] +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_sim_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_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):4] +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_sim_nochannel.py b/doc/thesis/figures/data/qpsk_sim_nochannel.py new file mode 100644 index 0000000..a8170c6 --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_nochannel.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 +50 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):2] +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_sim_static_firblock_los_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_halfsymb.py new file mode 100644 index 0000000..52a3916 --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_halfsymb.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 +400 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):4] +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_sim_static_firblock_los_vec.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_vec.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_vec.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):4] +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_sim_static_firblock_nlos_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_halfsymb.py new file mode 100644 index 0000000..52a3916 --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_halfsymb.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 +400 + +# select every second samples +select_samples = lambda arr: arr[int(start):int(end):4] +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_sim_static_firblock_nlos_vec.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_vec.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_vec.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):4] +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/tikz/qpsk-simulations-static.tex b/doc/thesis/figures/tikz/qpsk-simulations-static.tex index 830b9af..ebe7957 100644 --- a/doc/thesis/figures/tikz/qpsk-simulations-static.tex +++ b/doc/thesis/figures/tikz/qpsk-simulations-static.tex @@ -19,51 +19,55 @@ } \noindent -\makeplot{figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat}{0}{1}{4}{ +\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{0}{1}{4}{ ylabel = {Channel with ISI}, yticklabel style = { text width = 2.25em, align = right, }, - title = {}, -}{magenta} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_halfsymb.dat}{0}{1}{4}{title = {},}{magenta} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_vec.dat}{0}{1}{4}{title = {},}{magenta} + title = {1 Tap NLOS}, +}{magenta!80!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{0}{1}{4}{ + title = {1 Tap LOS}, +}{magenta!80!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{0}{1}{4}{ + title = {4 Taps LOS}, +}{magenta!80!blue} \newline \noindent -\makeplot{figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat}{2}{3}{4}{% +\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{2}{3}{4}{% ylabel = {Synchronized}, yticklabel style = { text width = 2.25em, align = right, }, -}{magenta!80!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_halfsymb.dat}{2}{3}{4}{}{magenta!80!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_vec.dat}{2}{3}{4}{}{magenta!80!blue} +}{magenta!60!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{2}{3}{4}{}{magenta!60!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{2}{3}{4}{}{magenta!60!blue} \newline \noindent -\makeplot{figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat}{4}{5}{1}{% +\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{4}{5}{1}{% ylabel = {Equalized}, yticklabel style = { text width = 2.25em, align = right, }, -}{magenta!60!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_halfsymb.dat}{4}{5}{1}{}{magenta!60!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_vec.dat}{4}{5}{1}{}{magenta!60!blue} +}{magenta!40!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{4}{5}{1}{}{magenta!40!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{4}{5}{1}{}{magenta!40!blue} \newline \noindent -\makeplot{figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat}{6}{7}{1}{% +\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{6}{7}{1}{% ylabel = {Locked}, yticklabel style = { text width = 2.25em, align = right, }, -}{magenta!40!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_halfsymb.dat}{6}{7}{1}{}{magenta!40!blue} -\makeplot{figures/data/qpsk_sim_const_static_firblock_los_vec.dat}{6}{7}{1}{}{magenta!40!blue} +}{magenta!20!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{6}{7}{1}{}{magenta!20!blue} +\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{6}{7}{1}{}{magenta!20!blue} \newline -- cgit v1.2.1