diff options
34 files changed, 131 insertions, 95 deletions
diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile index ad350e7..6d2d4ba 100644 --- a/doc/thesis/Makefile +++ b/doc/thesis/Makefile @@ -34,16 +34,17 @@ DATA := \ figures/data/multipath_frequency_response.dat \ figures/data/rice_pdf.dat \ \ - figures/data/qpsk_sim_const_nochannel.dat \ + figures/data/qpsk_sim_nochannel.dat \ \ - figures/data/qpsk_sim_const_static_firblock_los_halfsymb.dat \ - figures/data/qpsk_sim_const_static_firblock_los_vec.dat \ - figures/data/qpsk_sim_const_static_firblock_nlos_halfsymb.dat \ + figures/data/qpsk_sim_static_firblock_los_halfsymb.dat \ + figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat \ + figures/data/qpsk_sim_static_firblock_los_vec.dat \ + figures/data/qpsk_sim_static_firblock_nlos_vec.dat \ \ - figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.dat \ - figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.dat \ - figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.dat \ - figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.dat + figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat \ + figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat \ + figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat \ + figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.dat diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex index 29cfca0..a597f14 100644 --- a/doc/thesis/chapters/implementation.tex +++ b/doc/thesis/chapters/implementation.tex @@ -474,14 +474,14 @@ The second part which is missing is to be able to change the timing plot for the \newgeometry{ inner = 15mm, outer = 15mm, } -% \begin{figure} -% \centering -% \input{figures/tikz/qpsk-simulations-static} -% \caption{ -% QPSK static TODO. -% } -% \end{figure} -% \newpage +\begin{figure} + \centering + \input{figures/tikz/qpsk-simulations-static} + \caption{ + QPSK static TODO. + } +\end{figure} +\newpage \begin{figure} \centering \input{figures/tikz/qpsk-simulations-dynamic} diff --git a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat Binary files differindex c5d7a51..c5d7a51 100644 --- a/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_const_nochannel.dat +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_nochannel.dat 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 Binary files differnew file mode 100644 index 0000000..0eb44fb --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..5be6d56 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_los_vec.dat 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 Binary files differnew file mode 100644 index 0000000..2dd54b7 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..b94d152 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/channel_qpsk_sim_static_firblock_nlos_vec.dat diff --git a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat Binary files differindex 38b583c..38b583c 100644 --- a/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_const_nochannel.dat +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_nochannel.dat 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 Binary files differnew file mode 100644 index 0000000..cfacb55 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..5ec3948 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_los_vec.dat 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 Binary files differnew file mode 100644 index 0000000..7925b4c --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..3b1823b --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/equalized_qpsk_sim_static_firblock_nlos_vec.dat diff --git a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat Binary files differindex 052b5eb..052b5eb 100644 --- a/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_const_nochannel.dat +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_nochannel.dat 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 Binary files differnew file mode 100644 index 0000000..03086cc --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..8d9d10c --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_los_vec.dat 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 Binary files differnew file mode 100644 index 0000000..c6d4ee2 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..65c170d --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/locked_qpsk_sim_static_firblock_nlos_vec.dat diff --git a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat Binary files differindex 2d7d1b4..2d7d1b4 100644 --- a/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_const_nochannel.dat +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_nochannel.dat 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 Binary files differnew file mode 100644 index 0000000..f1be833 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..205bc1c --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_los_vec.dat 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 Binary files differnew file mode 100644 index 0000000..328e38b --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_halfsymb.dat 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 Binary files differnew file mode 100644 index 0000000..ceec6d6 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/synchronized_qpsk_sim_static_firblock_nlos_vec.dat 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_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_const_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler5_k5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py diff --git a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_los_etsi_doppler70_k5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py diff --git a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler5.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py diff --git a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_dynamic_grblock_nlos_etsi_doppler70.py +++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler70.py 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_const_static_firblock_los_halfsymb.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_vec.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_halfsymb.py +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_los_vec.py 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_const_static_firblock_los_vec.py b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_vec.py index eae2afc..eae2afc 100644 --- a/doc/thesis/figures/data/qpsk_sim_const_static_firblock_los_vec.py +++ b/doc/thesis/figures/data/qpsk_sim_static_firblock_nlos_vec.py 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 |