aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--SigSys.tex22
-rw-r--r--build/SigSys.pdfbin0 -> 89808 bytes
-rw-r--r--tex/filters.tex1
-rw-r--r--tex/lti-freq.tex1
-rw-r--r--tex/lti.tex89
-rw-r--r--tex/regtec.pdfbin0 -> 69151 bytes
-rw-r--r--tex/regtec.sty152
-rw-r--r--tex/signals.tex74
-rw-r--r--tex/state-space.tex79
-rw-r--r--tex/tikz/mimo.tex37
11 files changed, 453 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 5102a8f..43af6c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,7 +37,7 @@ _ReSharper*/
*.fot
*.cb
*.cb2
-
+*.xdv
*.txss
## Intermediate documents:
@@ -46,7 +46,7 @@ _ReSharper*/
# these rules might exclude image files for figures etc.
*.ps
*.eps
- *.pdf
+ # *.pdf
*.doc
## Bibliography auxiliary files (bibtex/biblatex/biber):
@@ -209,7 +209,7 @@ TSWLatexianTemp*
# KBibTeX
*~[0-9]*
-*.pdf
+# *.pdf
# Vim
# Swap
diff --git a/SigSys.tex b/SigSys.tex
index 2fe5790..e2d1952 100644
--- a/SigSys.tex
+++ b/SigSys.tex
@@ -3,13 +3,14 @@
% !TeX root = SigSys.tex
%% TODO: publish to CTAN
-\documentclass[]{tex/hsrzf}
+\documentclass[margin=small]{tex/hsrzf}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Packages
-%% TODO: publish to CTAN
+%% My packages
\usepackage{tex/hsrstud}
+\usepackage{tex/regtec}
%% Language configuration
\usepackage{polyglossia}
@@ -22,10 +23,18 @@
lang={english},
]{doclicense}
-%% tables
+%% Tables
+\usepackage{float}
+\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}
+%% Pictures
+\usepackage{tikz}
+\usetikzlibrary{positioning}
+\usetikzlibrary{backgrounds}
+\usetikzlibrary{calc}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Metadata
@@ -42,6 +51,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document
+\DeclareMathOperator{\fourier}{\mathcal{F}}
+\DeclareMathOperator{\rank}{\mathrm{rank}}
+
\begin{document}
\pagenumbering{roman}
@@ -56,5 +68,9 @@
\pagenumbering{arabic}
\input{tex/signals}
+\input{tex/lti}
+\input{tex/lti-freq}
+\input{tex/state-space}
+\input{tex/filters}
\end{document}
diff --git a/build/SigSys.pdf b/build/SigSys.pdf
new file mode 100644
index 0000000..1422224
--- /dev/null
+++ b/build/SigSys.pdf
Binary files differ
diff --git a/tex/filters.tex b/tex/filters.tex
new file mode 100644
index 0000000..4271e35
--- /dev/null
+++ b/tex/filters.tex
@@ -0,0 +1 @@
+\section{Filters}
diff --git a/tex/lti-freq.tex b/tex/lti-freq.tex
new file mode 100644
index 0000000..892658d
--- /dev/null
+++ b/tex/lti-freq.tex
@@ -0,0 +1 @@
+\section{Frequency response of LTI systems}
diff --git a/tex/lti.tex b/tex/lti.tex
new file mode 100644
index 0000000..b01a31f
--- /dev/null
+++ b/tex/lti.tex
@@ -0,0 +1,89 @@
+\section{LTI systems}
+
+\subsection{Properties}
+Let \(\mathcal{S}\) denote a system.
+\begin{table}[H]
+ \begin{tabularx}{\linewidth}{p{.3\linewidth} X}
+ \toprule
+ \bfseries Property & \bfseries Meaning \\
+ \midrule
+ static \(\leftrightarrow\)\newline dynamic & Static means that it is memoryless (in the statistical sense), whereas dynamic has memory. Static systems depend only on the input \(u\), dynamic systems on \(du/dt\) or \(\int u\,dt\). \\
+ causal \(\leftrightarrow\)\newline acausal & Causal systems use only informations from the past, i.e. \(h(t < 0) = 0\). Real systems are always causal. \\
+ linear \(\leftrightarrow\)\newline nonlinear & The output of a linear system does not have new frequency that were not in the input. For linear system the superposition principle is valid: \(\mathcal{S}(\alpha_1 x_1 + \alpha_2 x_2) = \alpha_1 \mathcal{S} x_1 + \alpha_2 \mathcal{S} x_2\). \\
+ time invariant \newline\(\leftrightarrow\) time variant & Time invariant systems do not depend on time, but for ex. only on time differences. \\
+ \midrule
+ SISO, MIMO & Single input single output, multiple input multiple output. \\
+ BIBO & Bounded input bounded output, i.e. there are some \(A\), \(B\) such that \(|x| < A\) and \(|y| < B\) for all \(t\), equivalently \(\int_\mathbb{R} |h|\,dt < \infty\).\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\subsection{Impulse response}
+%% TODO: impulse response
+
+\subsection{Stability}
+Let \(\mathcal{S}\) be a system with impulse response \(h(t)\) and transfer function \(H(s)\).
+\begin{table}[H]
+ \centering
+ \begin{tabularx}{\linewidth}{lX}
+ \toprule
+ Stable & All poles are on the LHP\footnote{Left half plane, where \(\mathrm{Re}(s) < 0\).}. \\
+ Marginally stable & There are no poles in the RHP but a simple pole on the \(j\)-axis. \\
+ Instable & There are poles in the RHP or poles of hider order on the \(j\)-axis. \\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+\subsection{Distortion}
+\subsection{Stochastic inputs}
+
+\iffalse
+\begin{figure}
+\begin{tikzpicture}[
+ system/.style = {draw, thick, inner sep = 4mm, outer sep = 1mm}
+ ]
+ \matrix[row sep=3mm, column sep=1cm] (M) {
+ \node (x) {\(x(t)\)}; &
+ \node (g) {\(g(t) = y_\delta (t)\)}; &
+ \node (y) {\(y(t) = g(t) * x(t)\)}; \\
+
+ &
+ \node (h) {\(h(t)\)}; &
+ \node (yw) {\(y_\omega(t) = h(t) * x(t)\)}; \\
+
+ \node (in) {Input}; &
+ \node[system, fill=white] (sys) {LTI-System \(\mathcal{S}\)}; &
+ \node (out) {Response}; \\
+
+ \node (X) {\(X(s)\)}; &
+ \node (G) {\(G(s) = 1/p(s)\)}; &
+ \node (Y) {\(Y(s) = G(s) \cdot X(s)\)}; \\
+
+ \node (Xw) {\(X(\omega)\)}; &
+ \node (H) {\(H(\omega) = G(j\omega)\)}; &
+ \node (Yw) {\(Y_\omega (\omega) = H(\omega) \cdot X(\omega)\)}; \\
+ };
+
+ \draw[thick, ->] (in) to (sys);
+ \draw[thick, ->] (sys) to (out);
+
+ \begin{pgfonlayer}{background}
+ \coordinate (T1) at ($(x.north west) - (.8,-.1)$);
+ \coordinate (T2) at ($(yw.south east) + (.8,-.1)$);
+
+ \coordinate (B1) at ($(X.north west) - (0,-.1)$);
+ \coordinate (B2) at ($(Y.south east) + (0,-.1)$);
+
+ \coordinate (F1) at ($(Xw.north west) - (0,-.1)$);
+ \coordinate (F2) at ($(Yw.south east) + (0,-.1)$);
+
+ \fill[color=blue!20] (T1) rectangle (T2);
+ \fill[color=magenta!20] (B1 -| T1) rectangle (B2 -| T2);
+ \fill[color=red!20] (F1 -| T1) rectangle (F2 -| T2);
+ % \fill[top color=blue!20, bottom color=magenta!20]
+ % (T1) rectangle (B2);
+ \end{pgfonlayer}
+\end{tikzpicture}
+\end{figure}
+\fi
+
+
diff --git a/tex/regtec.pdf b/tex/regtec.pdf
new file mode 100644
index 0000000..5f5fc70
--- /dev/null
+++ b/tex/regtec.pdf
Binary files differ
diff --git a/tex/regtec.sty b/tex/regtec.sty
new file mode 100644
index 0000000..73494f0
--- /dev/null
+++ b/tex/regtec.sty
@@ -0,0 +1,152 @@
+%%
+%% This is file `regtec.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% regtec.dtx (with options: `package')
+%% regtec: TikZ macros for RegT
+%% Author: Nao Pross
+%% E-mail: np@0hm.ch
+%% License: Released under the LaTeX Project Public License v1.3c or later
+%% See: http://www.latex-project.org/lppl.txt
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{regtec}
+ [2021/08/04 v1.00 TikZ macros for RegT]
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\usetikzlibrary{positioning}
+\tikzset{
+ rtsplit/.style = {
+ circle,
+ very thick,
+ draw = black,
+ fill = lightgray,
+ inner sep = 1mm,
+ outer sep = 1mm,
+ minimum size = 3mm,
+ },
+ rtbox/.style = {
+ very thick,
+ draw = black,
+ fill = white,
+ inner sep = 2mm,
+ outer sep = 1mm,
+ minimum width = 12mm,
+ minimum height = 8mm,
+ },
+ rtsum/.style = {
+ circle,
+ very thick,
+ draw = black,
+ fill = white,
+ inner sep = 1mm,
+ outer sep = 1mm,
+ minimum size = 3mm,
+ },
+ rtprop/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick]
+ ($(path picture bounding box.north west) - (0,.2)$)
+ --
+ ($(path picture bounding box.north east) - (0,.2)$);
+ }
+ },
+ rtint/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick] (path picture bounding box.south west)
+ -- (path picture bounding box.north east);
+ }
+ },
+ rtdiff/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick]
+ ($(path picture bounding box.north west) + (.2,0)$)
+ |-
+ ($(path picture bounding box.south east) + (0,.2)$);
+ },
+ },
+ rtdelay/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick]
+ ($(path picture bounding box.south west) + (.2,0)$)
+ |-
+ ($(path picture bounding box.north east) - (0,.2)$);
+ },
+ },
+ rtpt1/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick]
+ (path picture bounding box.south west)
+ to[out = 70, in = 180]
+ ($(path picture bounding box.north east) - (0,.2)$);
+ },
+ },
+ rtdt1/.style = {
+ rtbox,
+ path picture = {
+ \draw[very thick]
+ (path picture bounding box.north west)
+ to[out = -70, in = 180]
+ ($(path picture bounding box.south east) + (0,.2)$);
+ },
+ },
+ rtpt2/.style = {
+ rtbox,
+ path picture = {
+ \path (path picture bounding box.south west)
+ -- ++(.3,.7) node (P1) {}
+ -- ++(.2,-.3) node (P2) {}
+ -- ++(.2,.2) node (P3) {}
+ -- ++(.2,-.2) node (P4) {}
+ -- ++(.2,.2) node (P5) {}
+ -- ++(.1,-.1) node (P6) {};
+ \draw[very thick]
+ (path picture bounding box.south west)
+ .. controls (P1) .. ($(P1)!.5!(P2)$)
+ .. controls (P2) .. ($(P2)!.5!(P3)$)
+ .. controls (P3) .. ($(P3)!.5!(P4)$)
+ .. controls (P4) .. ($(P4)!.5!(P5)$)
+ .. controls (P5) .. ($(P5)!.5!(P6)$)
+ .. controls (P6) .. ++(.2,0)
+ ;
+ },
+ }
+}
+\newenvironment{rtdiagram}{%
+ \begin{tikzpicture}
+}{%
+ \end{tikzpicture}
+}
+\iffalse
+\newcommand{\dummyMacro}{}
+\newenvironment{dummyEnv}{%
+}{%
+}
+\fi
+%%
+%% Copyright (C) 2021 by Nao Pross <np@0hm.ch>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Nao Pross.
+%%
+%% This work consists of the file regtec.dtx and a Makefile.
+%% Running "make" generates the derived files README, regtec.pdf and regtec.sty.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `regtec.sty'.
diff --git a/tex/signals.tex b/tex/signals.tex
index 17a5a72..1cb86ce 100644
--- a/tex/signals.tex
+++ b/tex/signals.tex
@@ -1,16 +1,42 @@
\section{Signals}
\subsection{Classification}
-%% TODO
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}[
+ nodes = {
+ thick,
+ draw = black,
+ fill = lightgray!20,
+ align = center,
+ inner sep = 2mm,
+ outer sep = 1mm,
+ },
+ sibling distance = 3cm,
+ ]
+ \node {All signals}
+ child {node {Class 1 \\ \(0 < E_n < \infty\)}}
+ child {
+ node {Class 2 \\ \(0 < P_n < \infty\)}
+ child {node {Class 2a \\ periodic}}
+ child {node {Class 2b \\ stochastic}}
+ }
+ ;
+ \end{tikzpicture}
+\end{figure}
\subsection{Properties}
+For class 2b signals the formula for class 2a signals can used by taking \(\lim_{T\to\infty} f_\text{2a}(T)\) (if the limits exists).
+The notation \(\int_T\) is short for an integral from \(-T/2\) to \(T/2\).
\begin{table}[h]
\everymath={\displaystyle}
\[
\begin{array}{l l}
\toprule
- \text{\bfseries Characteristic} & \text{\bfseries Symbol and formula} \\
+ \text{\bfseries Characteristic} & \text{\bfseries Symbol and formula} \\[6pt]
+ \text{\itshape Class 1 Signals} \\
\midrule
\text{Normalized energy} & E_n = \lim_{T\to\infty} \int_T |x|^2 \,dt \\[6pt]
+ \text{\itshape Class 2a Signals} \\
\midrule
\text{Normalized power} & P_n = \lim_{T\to\infty} \frac{1}{T} \int_T |x|^2 \,dt \\[12pt]
\text{Linear mean} & X_0 = \frac{1}{T} \int_T x\, dt \\[12pt]
@@ -24,3 +50,47 @@
\end{array}
\]
\end{table}
+
+\subsection{Correlation}
+\paragraph{Autocorrelation}
+The \emph{autocorrelation} is a measure for how much a signal is coherent, i.e. how similar it is to itself.
+For class 1 signals the autocorrelation is
+\[
+ \varphi_{xx}(\tau) = \lim_{T\to\infty} \int_T x(t) x(t - \tau) \,dt,
+\]
+whereas for class 2a and 2b signals
+\begin{gather*}
+ \varphi_{xx}(\tau) = \frac{1}{T} \int_T x(t) x(t - \tau) \,dt \quad\text{(2a)}, \\
+ \varphi_{xx}(\tau) = \lim_{T\to\infty} \frac{1}{T} \int_T x(t) x(t - \tau) \,dt \quad\text{(2b)}.
+\end{gather*}
+Properties of \(\varphi_{xx}\):
+\begin{itemize}
+ \item \(\varphi_{xx}(0) = X^2 = (X_0)^2 + \sigma^2\)
+ \item \(\varphi_{xx}(0) \geq |\varphi_{xx}(\tau)|\)
+ \item \(\varphi_{xx}(\tau) \geq (X_0)^2 - \sigma^2\)
+ \item \(\varphi_{xx}(\tau) = \varphi_{xx}(\tau + nT)\) (periodic)
+ \item \(\varphi_{xx}(\tau) = \varphi_{xx}(-\tau)\) (even, symmetric)
+\end{itemize}
+The Fourier transform of the autocorrelation \(\Phi_{xx}(j\omega) = \fourier \varphi_{xx}(t)\) is called \emph{energy spectral density} (ESD) for class 1 signals or \emph{power spectral density} (PSD) for class 2 signals.
+
+\paragraph{Cross correlation}
+The \emph{cross correlation} measures the similarity of two different signals \(x\) and \(y\). For class 1 signals
+\[
+ \varphi_{xy}(\tau) = \lim_{T\to\infty} \int_T x(t) y(t-\tau) \,dt.
+\]
+Similarly for class 2a and 2b signals
+\begin{gather*}
+ \varphi_{xy}(\tau) = \frac{1}{T} \int_T x(t) y(t - \tau) \,dt \quad\text{(2a)}, \\
+ \varphi_{xy}(\tau) = \lim_{T\to\infty} \frac{1}{T} \int_T x(t) y(t - \tau) \,dt \quad\text{(2b)}.
+\end{gather*}
+Properties of \(\varphi_{xy}\):
+\begin{itemize}
+ \item For signals with different frequencies \(\varphi_{xy}\) is always 0.
+ \item For stochastic signals \(\varphi_{xy} = 0\)
+\end{itemize}
+
+\subsection{Amplitude density}
+The amplitude density is the probability that a signal has a certain amplitude during a time interval \(T\).
+\[
+ p(a) = \frac{1}{T}\frac{dt}{dx} \in [0,1]
+\]
diff --git a/tex/state-space.tex b/tex/state-space.tex
new file mode 100644
index 0000000..e0f7960
--- /dev/null
+++ b/tex/state-space.tex
@@ -0,0 +1,79 @@
+\section{State space representation}
+
+\begin{figure}
+ \centering
+ \resizebox{\linewidth}{!}{
+ \input{tex/tikz/mimo}
+ }
+ \caption{A LTI MIMO system.}
+\end{figure}
+
+A system described by a system of linear differential equations of \(n\)-th order, can be equivalently be described by \(n\) first order differential equations. Which can be compactly written in matrix form as
+\begin{align*}
+ \dot{\vec{x}} &= \mx{A}\vec{x} + \mx{B}\vec{u} \\
+ \vec{y} &= \mx{C}\vec{x} + \mx{D}\vec{u}.
+\end{align*}
+If the system is time \emph{variant} the matrices are functions of time.
+
+\begin{table}
+ \begin{tabular}{ >{\(}c<{\)} >{\(}c<{\)} l }
+ \toprule
+ \text{\bfseries Symbol} & \text{\bfseries Size} & \bfseries Name \\
+ \midrule
+ \vec{x} & n & State vector \\
+ \vec{u} & m & Output vector \\
+ \vec{y} & k & Output vector \\
+ \midrule
+ \mx{A} & n\times n & System matrix \\
+ \mx{B} & m\times n & Input matrix \\
+ \mx{C} & n\times k & Output matrix \\
+ \mx{D} & k\times m & Feed forward matrix \\
+ \bottomrule
+ \end{tabular}
+ \caption{Matrices for a state space representation}
+\end{table}
+
+\subsection{Canonical representations}
+
+\subsubsection{Controllable form}
+
+\subsubsection{Observable form}
+
+\subsubsection{Diagonalized or Jordan form}
+
+The Jordan form diagonalizes the \(\mx{A}\) matrix. Thus we need to solve the eigenvalue problem \((\mx{A} - \lambda\mx{I})\vec{x} = \vec{0}\), which can be done by setting \(\det(\mx{A} -\lambda\mx{I}) = 0\), and solving the characteristic polynomial. The eigenvectors are obtained by plugging the \(\lambda\) values back into \((\mx{A} - \lambda\mx{I})\vec{x} = \vec{0}\), and solving an overdetermined system of equations.
+
+The transformation to the eigenbasis \(\mx{T}\), obtained by using the eigenvector as columns of a matrix \(\mx{T} = \begin{bmatrix} \vec{v}_1 & \cdots & \vec{v}_n \end{bmatrix}\), is then used to compute
+\begin{align*}
+ \mx{\hat{A}} & = \mx{T}\mx{A}\mx{T^{-1}} &
+ \mx{\hat{B}} & = \mx{T}\mx{B} \\
+ \mx{\hat{C}} & = \mx{C}\mx{T^{-1}} &
+ \mx{\hat{D}} & = \mx{D}.
+\end{align*}
+
+In this form the system is described with \(n\) decoupled states \(\xi_i\) with the equations \(\dot{\vec{\xi}} = \mx{\hat{A}}\vec{\xi} + \mx{\hat{B}}\vec{u}\) and \(\vec{y} = \mx{\hat{C}}\vec{\xi} + \mx{\hat{D}} \vec{u}\).
+
+\subsection{Stability}
+If \emph{all} eigenvalues \(\lambda\) are not zero and have a positive real part the system is asymptotically \emph{stable}. If \emph{all} eigenvalues are not zero but \emph{at least one} has a negative real part the system is \emph{unstable}. If even one eigenvalue is zero, no conclusion can be drawn.
+
+\subsection{Controllability}
+The state controllability condition implies that it is possible --- by admissible inputs --- to steer the states from any initial value to any final value within some finite time window. A LTI state space model is controllable iff the matrix
+\[
+ \mx{Q} = \begin{bmatrix}
+ \mx{B} & \mx{A}\mx{B} & \mx{A}^2\mx{B} \cdots \mx{A}^{n-1}\mx{B}
+ \end{bmatrix}
+\]
+has \(\rank\mx{Q} = n\). Or equivalently for a SISO system, if all components of the vector \(\mx{\hat{C}}_{i} \neq 0\).
+
+\subsection{Observability}
+Observability is a measure for how well internal states of a system can be inferred by knowledge of its external outputs. A LTI state space mode is observable iff the matrix
+\[
+ \mx{Q}^t = \begin{bmatrix}
+ \mx{C} & \mx{C}\mx{A} & \cdots & \mx{C}\mx{A}^{n-1}
+ \end{bmatrix}
+\]
+has \(\rank\mx{Q} = n\).
+
+
+\subsection{Solutions in time domain}
+\subsection{Solutions in frequency domain}
diff --git a/tex/tikz/mimo.tex b/tex/tikz/mimo.tex
new file mode 100644
index 0000000..02f117d
--- /dev/null
+++ b/tex/tikz/mimo.tex
@@ -0,0 +1,37 @@
+\begin{tikzpicture}[very thick]
+ \matrix[
+ column sep = 6mm, row sep = 4mm,
+ ]{
+ &&& \node[rtbox] (D) {\(\mathbf{D}\)}; \\
+
+ \node[rtsplit] (U) {};
+ & \node[rtbox] (B) {\(\mathbf{B}\)};
+ & \node[rtsum] (dX) {};
+ \node[above = 0mm of dX] {\(\dot{\mathbf{x}}\)};
+ & \node[rtint] (I) {};
+ & \node[rtsplit] (X) {};
+ \node[above = 0mm of X] {\(\mathbf{x}\)};
+ & \node[rtbox] (C) {\(\mathbf{C}\)};
+ & \node[rtsum] (Y) {}; \\[1mm]
+
+ &&& \node[rtbox] (A) {\(\mathbf{A}\)}; \\
+ };
+
+ \draw[->]
+ (U) -- ++(-1,0) node[left] {\(\mathbf{u}\)}
+ (U) edge (B)
+ (B) edge (dX)
+ (dX) edge (I)
+ (I) -- (X)
+ (X) edge (C)
+ (C) edge (Y)
+ (Y) -- ++(1,0) node[right] {\(\mathbf{y}\)}
+ ;
+
+ \draw[->] (U) |- (D);
+ \draw[->] (D) -| (Y);
+
+ \draw[->] (X) |- (A);
+ \draw[->] (A) -| (dX);
+
+\end{tikzpicture}