diff options
Diffstat (limited to '')
58 files changed, 282 insertions, 304 deletions
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_whitout_effects.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat Binary files differindex c5d7a51..c5d7a51 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_whitout_effects.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_LOS_5_K5.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat Binary files differindex b4accdd..b4accdd 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_LOS_5_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_LOS_70_K5.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat Binary files differindex 350fb3b..350fb3b 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_LOS_70_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_NLOS_5.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat Binary files differindex 1322947..1322947 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_NLOS_5.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_NLOS_70.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat Binary files differindex ffe47ce..ffe47ce 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic_exp_NLOS_70.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_whitout_effects.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat Binary files differindex 38b583c..38b583c 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_whitout_effects.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_LOS_5_K5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat Binary files differindex ce683a0..ce683a0 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_LOS_5_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_LOS_70_K5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat Binary files differindex a0399b9..a0399b9 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_LOS_70_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_NLOS_5.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat Binary files differindex 28eaeb8..28eaeb8 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_NLOS_5.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_NLOS_70.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat Binary files differindex 596e0a9..596e0a9 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic_exp_NLOS_70.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_whitout_effects.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat Binary files differindex 052b5eb..052b5eb 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_whitout_effects.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_LOS_5_K5.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat Binary files differindex c0c30e0..c0c30e0 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_LOS_5_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_LOS_70_K5.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat Binary files differindex 1d55afc..1d55afc 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_LOS_70_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_NLOS_5.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat Binary files differindex 1c53fed..1c53fed 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_NLOS_5.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_NLOS_70.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat Binary files differindex 5e2a983..5e2a983 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic_exp_NLOS_70.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat Binary files differdeleted file mode 100644 index 560f179..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat Binary files differdeleted file mode 100644 index 7466d69..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat Binary files differdeleted file mode 100644 index 4d0e9a1..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat Binary files differdeleted file mode 100644 index 425b81b..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat Binary files differdeleted file mode 100644 index 9c8a1d3..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat Binary files differdeleted file mode 100644 index 473c43d..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat Binary files differdeleted file mode 100644 index c884795..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb.dat Binary files differdeleted file mode 100644 index fc70e83..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat Binary files differdeleted file mode 100644 index 9ab4d78..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat Binary files differdeleted file mode 100644 index d27f49e..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat Binary files differdeleted file mode 100644 index 92a9b97..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat Binary files differdeleted file mode 100644 index 1e85803..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb.dat Binary files differdeleted file mode 100644 index e3be058..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat Binary files differdeleted file mode 100644 index d7923f4..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat Binary files differdeleted file mode 100644 index dba8d1e..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat Binary files differdeleted file mode 100644 index bc21557..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat Binary files differdeleted file mode 100644 index cb5ab19..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb.dat Binary files differdeleted file mode 100644 index 54d351f..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat Binary files differdeleted file mode 100644 index 4f9bb0c..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat Binary files differdeleted file mode 100644 index ca21c39..0000000 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat +++ /dev/null diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_whitout_effects.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat Binary files differindex 2d7d1b4..2d7d1b4 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_whitout_effects.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_LOS_5_K5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat Binary files differindex 513dfa8..513dfa8 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_LOS_5_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_LOS_70_K5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat Binary files differindex 86d472a..86d472a 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_LOS_70_K5.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_NLOS_5.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat Binary files differindex 327a07d..327a07d 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_NLOS_5.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_NLOS_70.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat Binary files differindex 35971b0..35971b0 100644 --- a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic_exp_NLOS_70.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat 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 new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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_const_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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_const_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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_const_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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_const_nochannel.py b/doc/thesis/figures/data/qpsk_sim_const_nochannel.py new file mode 100644 index 0000000..7e42348 --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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("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 new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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 +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 new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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_const_static_firblock_nlos_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.py new file mode 100644 index 0000000..eae2afc --- /dev/null +++ b/doc/thesis/figures/data/qpsk_sim_const_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 +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_constellations_dynamic.py b/doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py deleted file mode 100644 index 7e23125..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_dynamic.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_dynamic.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_dynamic.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_dynamic.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 67.8e3 -end = start + 200 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_dynamic_exp_NLOS_5.py b/doc/thesis/figures/data/qpsk_sim_constellations_dynamic_exp_NLOS_5.py deleted file mode 100644 index 4cb1742..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_dynamic_exp_NLOS_5.py +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_dynamic_exp_NLOS_5.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_dynamic_exp_NLOS_5.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_dynamic_exp_NLOS_5.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_dynamic_exp_NLOS_5.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 67.8e3 -end = start + 200 -# start = 80e3 -# end = start + 1000 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static.py b/doc/thesis/figures/data/qpsk_sim_constellations_static.py deleted file mode 100644 index 61fdcb1..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_static.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_static.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 67.8e3 -end = start + 200 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb.py b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb.py deleted file mode 100644 index 416a017..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_static_symb.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static_symb.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static_symb.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static_symb.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 1e3 -end = start + 200 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py deleted file mode 100644 index cbca31e..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_static_symb_NLOS.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static_symb_NLOS.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static_symb_NLOS.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static_symb_NLOS.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 5e3 -end = start + 200 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.py b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.py deleted file mode 100644 index 26e7b64..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_static_symb_vec.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static_symb_vec.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static_symb_vec.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static_symb_vec.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 1e3 -end = start +800 - -get_range = lambda arr: arr[int(start):int(end):2] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_without_effects.py b/doc/thesis/figures/data/qpsk_sim_constellations_without_effects.py deleted file mode 100644 index 3ac9948..0000000 --- a/doc/thesis/figures/data/qpsk_sim_constellations_without_effects.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import os -import numpy as np - -DATA_DIR = "./figures/data/flowgraphs" -SPS = 4 - -channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_whitout_effects.dat", dtype=np.complex64)[::SPS] -sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_whitout_effects.dat", dtype=np.complex64) -equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_whitout_effects.dat", dtype=np.complex64) -locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_whitout_effects.dat", dtype=np.complex64) - -samples = [channel, sync, equalized, locked] - -# print(list(map(len, samples))) - -start = 1e3 -end = start + 200 - -get_range = lambda arr: arr[int(start):int(end)] -get_parts = lambda v: (np.real(v), np.imag(v)) - -values = map(get_range, samples) -parts = [p for v in map(get_parts, values) for p in v] -data = np.array(list(zip(*parts))) - -# save to file -location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -name, _ = os.path.splitext(os.path.basename(__file__)) -filename = os.path.join(location, name + ".dat") -np.savetxt(filename, data, fmt='%.6e') diff --git a/doc/thesis/figures/data/utils.py b/doc/thesis/figures/data/utils.py new file mode 100644 index 0000000..ccb3bb4 --- /dev/null +++ b/doc/thesis/figures/data/utils.py @@ -0,0 +1,22 @@ +import os +import numpy as np + +def load_samples(fname, dtype=np.complex64): + set_name, _ = os.path.splitext(os.path.basename(fname)) + + data_dir = "./figures/data/flowgraphs" + sps = 4 + + channel = np.fromfile(f"{data_dir}/channel_{set_name}.dat", dtype=dtype)[::sps] + synchronized = np.fromfile(f"{data_dir}/synchronized_{set_name}.dat", dtype=dtype) + equalized = np.fromfile(f"{data_dir}/equalized_{set_name}.dat", dtype=dtype) + locked = np.fromfile(f"{data_dir}/locked_{set_name}.dat", dtype=dtype) + + return channel, synchronized, equalized, locked + +def save_to_file(fname, data, headers): + location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(fname))) + name, _ = os.path.splitext(os.path.basename(fname)) + filename = os.path.join(location, name + ".dat") + np.savetxt(filename, data, fmt='%.6e\t', header="\t".join(headers), comments='') + diff --git a/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex b/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex index b2453a4..5806d42 100644 --- a/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex +++ b/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex @@ -17,61 +17,3 @@ \end{tikzpicture} \hfill } - -\noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{0}{1}{4}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{0}{1}{4}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{0}{1}{4}{ - ylabel = {Channel with ISI}, - yticklabel style = { - text width = 2.25em, - align = right, - }, - title = {}, -}{magenta} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_vec.dat}{0}{1}{4}{title = {},}{magenta} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{0}{1}{4}{title = {},}{magenta} -\newline - -\noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{2}{3}{4}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{2}{3}{4}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{2}{3}{4}{% - ylabel = {Synchronized}, - yticklabel style = { - text width = 2.25em, - align = right, - }, -}{magenta!80!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_vec.dat}{2}{3}{4}{}{magenta!80!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{2}{3}{4}{}{magenta!80!blue} -\newline - -\noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{4}{5}{1}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{4}{5}{1}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{4}{5}{1}{% - ylabel = {Equalized}, - yticklabel style = { - text width = 2.25em, - align = right, - }, -}{magenta!60!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_vec.dat}{4}{5}{1}{}{magenta!60!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{4}{5}{1}{}{magenta!60!blue} -\newline - -\noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{6}{7}{1}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{6}{7}{1}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{6}{7}{1}{% - ylabel = {Locked}, - yticklabel style = { - text width = 2.25em, - align = right, - }, -}{magenta!40!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_vec.dat}{6}{7}{1}{}{magenta!40!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{6}{7}{1}{}{magenta!40!blue} -\newline - diff --git a/doc/thesis/figures/tikz/qpsk-simulations-static.tex b/doc/thesis/figures/tikz/qpsk-simulations-static.tex index b2453a4..830b9af 100644 --- a/doc/thesis/figures/tikz/qpsk-simulations-static.tex +++ b/doc/thesis/figures/tikz/qpsk-simulations-static.tex @@ -19,9 +19,7 @@ } \noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{0}{1}{4}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{0}{1}{4}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{0}{1}{4}{ +\makeplot{figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat}{0}{1}{4}{ ylabel = {Channel with ISI}, yticklabel style = { text width = 2.25em, @@ -29,49 +27,43 @@ }, title = {}, }{magenta} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_vec.dat}{0}{1}{4}{title = {},}{magenta} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{0}{1}{4}{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} \newline \noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{2}{3}{4}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{2}{3}{4}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{2}{3}{4}{% +\makeplot{figures/data/qpsk_sim_const_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_constellations_static_symb_vec.dat}{2}{3}{4}{}{magenta!80!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{2}{3}{4}{}{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} \newline \noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{4}{5}{1}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{4}{5}{1}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{4}{5}{1}{% +\makeplot{figures/data/qpsk_sim_const_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_constellations_static_symb_vec.dat}{4}{5}{1}{}{magenta!60!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{4}{5}{1}{}{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} \newline \noindent -% \makeplot{figures/data/qpsk_sim_constellations_without_effects.dat}{6}{7}{1}{} -% \makeplot{figures/data/qpsk_sim_constellations_static.dat}{6}{7}{1}{} -\makeplot{figures/data/qpsk_sim_constellations_static_symb.dat}{6}{7}{1}{% +\makeplot{figures/data/qpsk_sim_const_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_constellations_static_symb_vec.dat}{6}{7}{1}{}{magenta!40!blue} -\makeplot{figures/data/qpsk_sim_constellations_static_symb_NLOS.dat}{6}{7}{1}{}{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} \newline |