aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-12-19 02:50:36 +0100
committerNao Pross <np@0hm.ch>2021-12-19 02:50:36 +0100
commit7feed106ff37986e85a82c77acddf418062b38c7 (patch)
treec9c49b7fff0c307c54752eb80d73271a6246da6b
parentMerge remote-tracking branch 'origin/master' (diff)
downloadFading-7feed106ff37986e85a82c77acddf418062b38c7.tar.gz
Fading-7feed106ff37986e85a82c77acddf418062b38c7.zip
Add constellation plots for dynamic model
-rw-r--r--doc/thesis/chapters/implementation.tex31
-rw-r--r--doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py6
-rw-r--r--doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py4
-rw-r--r--doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py4
-rw-r--r--doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex72
-rw-r--r--doc/thesis/figures/tikz/qpsk-simulations-static.tex35
6 files changed, 114 insertions, 38 deletions
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex
index d5d5244..e427d7c 100644
--- a/doc/thesis/chapters/implementation.tex
+++ b/doc/thesis/chapters/implementation.tex
@@ -268,7 +268,7 @@ def block_phase(self, start, end):
In order to study the effects of multipath fading, a series of simulations have been made under different conditions. To simulate a channel affected by multipath fading two blocks from the GR library, and a third custom block were used. The channel model can simulate AWGN, a frequency offset and either a Rayleigh (NLOS) oder Rice (LOS) fading.
-\subsection{Fading with discrete time model}
+\subsection{Fading with discrete time model} \label{sec:discrete-time-model-fir}
For the statical version according to \ref{sec:discrete-time-model} for implement and illustrate the fading effect, a separate block was created and implemented in the channel. Nearer shown in \ref{lst:fractional-delay-fir}. This block is based on a FIR filter. It can be displayed with a direct path (LOS) or without one (NLOS).
With the help of this filter, the delay of the line of side paths are illustrated. In this block it is possible to simulate any number of these paths with different strengths, as long as there is an associated amplitude specified for each delayed ray.
@@ -374,20 +374,20 @@ and
\centering
\begin{tabular}{rr}
\toprule
- Excess tap delay in \si{\nano\second} & Relative power in \si{\decibel} \\
+ \bfseries Excess tap delay & \bfseries Relative power \\
\midrule
- 0 & \(-1.0 \approx 0.7943\) \\
- 50 & \(-1.0 \approx 0.7943\) \\
- 120 & \(-1.0 \approx 0.7943\) \\
- 200 & \( 0.0 = 1.0000\) \\
- 230 & \( 0.0 = 1.0000\) \\
- 500 & \( 0.0 \approx 1.0000\) \\
- 1600 & \(-3.0 \approx 0.5011\) \\
- 2300 & \(-5.0 \approx 0.3162\) \\
- 5000 & \(-7.0 \approx 0.1995\) \\
+ \SI{ 0}{\nano\second} & \(\SI{-1.0}{\decibel} \approx 0.7943\) \\
+ \SI{ 50}{\nano\second} & \(\SI{-1.0}{\decibel} \approx 0.7943\) \\
+ \SI{ 120}{\nano\second} & \(\SI{-1.0}{\decibel} \approx 0.7943\) \\
+ \SI{ 200}{\nano\second} & \(\SI{ 0.0}{\decibel} = 1.0000\) \\
+ \SI{ 230}{\nano\second} & \(\SI{ 0.0}{\decibel} = 1.0000\) \\
+ \SI{ 500}{\nano\second} & \(\SI{ 0.0}{\decibel} = 1.0000\) \\
+ \SI{1.6}{\micro\second} & \(\SI{-3.0}{\decibel} \approx 0.5011\) \\
+ \SI{2.3}{\micro\second} & \(\SI{-5.0}{\decibel} \approx 0.3162\) \\
+ \SI{5.0}{\micro\second} & \(\SI{-7.0}{\decibel} \approx 0.1995\) \\
\bottomrule
\end{tabular}
- \caption{Values used for the simulation \cite{ETSI}. \label{tab:etsi-tap-values}}
+ \caption{Extended Typical Urban model (ETU) ETSI Standard PDP values for multipath fading propagation conditions. \cite{ETSI}. \label{tab:etsi-tap-values}}
\end{table}
% \begin{figure}
@@ -483,13 +483,16 @@ For that to get a quick view on it a Mathlab little Matlab model for the differ
\newgeometry{
+ top = 25mm, bottom = 25mm,
inner = 15mm, outer = 15mm,
}
\begin{figure}
\centering
\input{figures/tikz/qpsk-simulations-static}
\caption{
- QPSK static TODO.
+ Simulations of a static fading channel models with different tap values. The samples were generated using the custom block discussed in section \ref{sec:discrete-time-model-fir}. For the 1 tap model the fading tap was \(0.2\delta(n - 0.25)\), and for the 4 tap model uses \(0.2 \delta(n - 0.25) + 0.08 \delta(n - 3.25) + 0.5 \delta(n - 4) + 0.4 \delta(n - 6.3)\). In both cases the delays are given in samples.
+ % delay = [0.25, 3.25, 4, 6.3]
+ % ampl = [0.2, 0.08, 0.5, 0.4]
}
\end{figure}
\newpage
@@ -497,7 +500,7 @@ For that to get a quick view on it a Mathlab little Matlab model for the differ
\centering
\input{figures/tikz/qpsk-simulations-dynamic}
\caption{
- QPSK dynamic TODO.
+ Simulations with a dynamic fading channel model using PDP values of the Extended Typical Urban model (ETU) of the ETSI standard normative Annex B.2 in \cite{ETSI}. The color gradient represents progression in time.
}
\end{figure}
\restoregeometry
diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py
index eae2afc..f621fd0 100644
--- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py
+++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.py
@@ -7,11 +7,11 @@ import numpy as np
samples = utils.load_samples(__file__)
# range of samples we want to show
-start = 1e3
-end = start +800
+start = 5e3
+end = start +1e3
# select every second samples
-select_samples = lambda arr: arr[int(start):int(end):4]
+select_samples = lambda arr: arr[int(start):int(end):8]
values = map(select_samples, samples)
# split into imaginary and real parts
diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py
index eae2afc..c82fbd1 100644
--- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py
+++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.py
@@ -8,10 +8,10 @@ samples = utils.load_samples(__file__)
# range of samples we want to show
start = 1e3
-end = start +800
+end = start +1e3
# select every second samples
-select_samples = lambda arr: arr[int(start):int(end):4]
+select_samples = lambda arr: arr[int(start):int(end):10]
values = map(select_samples, samples)
# split into imaginary and real parts
diff --git a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py
index eae2afc..c82fbd1 100644
--- a/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py
+++ b/doc/thesis/figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.py
@@ -8,10 +8,10 @@ samples = utils.load_samples(__file__)
# range of samples we want to show
start = 1e3
-end = start +800
+end = start +1e3
# select every second samples
-select_samples = lambda arr: arr[int(start):int(end):4]
+select_samples = lambda arr: arr[int(start):int(end):10]
values = map(select_samples, samples)
# split into imaginary and real parts
diff --git a/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex b/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex
index 5806d42..4d01c92 100644
--- a/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex
+++ b/doc/thesis/figures/tikz/qpsk-simulations-dynamic.tex
@@ -1,19 +1,83 @@
% vim: set ts=2 sw=2 noet:
-\newcommand{\makeplot}[6]{%
+\newcommand{\makeplot}[5]{%
\hfill
\begin{tikzpicture}
\begin{axis}[
- width = {\linewidth / 3.5},
- height = {\linewidth / 3.5},
+ width = {\linewidth / 3.3},
+ height = {\linewidth / 3.3},
grid = major,
xmin = {-#4}, xmax = {#4},
ymin = {-#4}, ymax = {#4},
+ colormap name=viridis,
#5
]
- \addplot[only marks, #6] table[x index = #2, y index = #3] {#1};
+ \addplot[only marks, scatter] table [x index = #2, y index = #3] {#1};
\end{axis}
\end{tikzpicture}
\hfill
}
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat}{0}{1}{4}{
+ ylabel = {Channel with ISI},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+ title = {NLOS, \(\Delta f = \SI{5}{\hertz}\)},
+}
+%
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat}{0}{1}{4}{
+ title = {LOS, \(\Delta f = \SI{5}{\hertz}, K = 5\)},
+}
+%
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat}{0}{1}{4}{
+ title = {LOS, \(\Delta f = \SI{70}{\hertz}, K = 5\)},
+}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat}{2}{3}{4}{%
+ ylabel = {Synchronized},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat}{2}{3}{4}{}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat}{2}{3}{4}{}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat}{4}{5}{2}{%
+ ylabel = {Equalized},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat}{4}{5}{2}{}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat}{4}{5}{2}{}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_nlos_etsi_doppler5.dat}{6}{7}{2}{%
+ ylabel = {Locked},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler5_k5.dat}{6}{7}{2}{}
+\makeplot{figures/data/qpsk_sim_dynamic_grblock_los_etsi_doppler70_k5.dat}{6}{7}{2}{}
+\newline
diff --git a/doc/thesis/figures/tikz/qpsk-simulations-static.tex b/doc/thesis/figures/tikz/qpsk-simulations-static.tex
index ebe7957..1afb134 100644
--- a/doc/thesis/figures/tikz/qpsk-simulations-static.tex
+++ b/doc/thesis/figures/tikz/qpsk-simulations-static.tex
@@ -1,11 +1,10 @@
% vim: set ts=2 sw=2 noet:
-
\newcommand{\makeplot}[6]{%
\hfill
\begin{tikzpicture}
\begin{axis}[
- width = {\linewidth / 3.5},
- height = {\linewidth / 3.5},
+ width = {\linewidth / 3.3},
+ height = {\linewidth / 3.3},
grid = major,
xmin = {-#4}, xmax = {#4},
ymin = {-#4}, ymax = {#4},
@@ -18,28 +17,34 @@
\hfill
}
+% -------------------------------------------------------------------
+
\noindent
\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{0}{1}{4}{
ylabel = {Channel with ISI},
yticklabel style = {
- text width = 2.25em,
+ text width = 3em,
align = right,
},
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_static_firblock_nlos_halfsymb.dat}{2}{3}{4}{%
ylabel = {Synchronized},
yticklabel style = {
- text width = 2.25em,
+ text width = 3em,
align = right,
},
}{magenta!60!blue}
@@ -47,27 +52,31 @@
\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{2}{3}{4}{}{magenta!60!blue}
\newline
+% -------------------------------------------------------------------
+
\noindent
-\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{4}{5}{1}{%
+\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{4}{5}{2}{%
ylabel = {Equalized},
yticklabel style = {
- text width = 2.25em,
+ text width = 3em,
align = right,
},
}{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}
+\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{4}{5}{2}{}{magenta!40!blue}
+\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{4}{5}{2}{}{magenta!40!blue}
\newline
+% -------------------------------------------------------------------
+
\noindent
-\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{6}{7}{1}{%
+\makeplot{figures/data/qpsk_sim_static_firblock_nlos_halfsymb.dat}{6}{7}{2}{%
ylabel = {Locked},
yticklabel style = {
- text width = 2.25em,
+ text width = 3em,
align = right,
},
}{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}
+\makeplot{figures/data/qpsk_sim_static_firblock_los_halfsymb.dat}{6}{7}{2}{}{magenta!20!blue}
+\makeplot{figures/data/qpsk_sim_static_firblock_los_vec.dat}{6}{7}{2}{}{magenta!20!blue}
\newline