From c07a2bbc5bceb34658e148562a483270f19061bf Mon Sep 17 00:00:00 2001 From: Nicolas Tobler Date: Tue, 23 Aug 2022 22:33:14 +0200 Subject: Added Berechnung der rationalen Funktion --- buch/papers/ellfilter/einleitung.tex | 2 +- buch/papers/ellfilter/elliptic.tex | 47 ++++++++++++++++++++----- buch/papers/ellfilter/tikz/pn.tikz.tex | 63 ++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 9 deletions(-) create mode 100644 buch/papers/ellfilter/tikz/pn.tikz.tex (limited to 'buch/papers/ellfilter') diff --git a/buch/papers/ellfilter/einleitung.tex b/buch/papers/ellfilter/einleitung.tex index 0c51ae0..581d452 100644 --- a/buch/papers/ellfilter/einleitung.tex +++ b/buch/papers/ellfilter/einleitung.tex @@ -32,7 +32,7 @@ Aus diesem Grund sind realisierbare Approximationen gesucht. Jede Approximation wird einen kontinuierlichen Übergang zwischen Durchlassbereich und Sperrbereich aufweisen. Oft wird dabei der Faktor $1/\sqrt{2}$ als Schwelle zwischen den beiden Bereichen gewählt. Somit lassen sich lineare Tiefpassfilter mit folgender Funktion zusammenfassen: -\begin{equation} +\begin{equation} \label{ellfilter:eq:quadratic_transfer} | H(\Omega)|^2 = \frac{1}{1 + \varepsilon_p^2 F_N^2(w)}, \quad w=\frac{\Omega}{\Omega_p}, \end{equation} wobei $F_N(w)$ eine rationale Funktion ist, $|F_N(w)| \leq 1 ~\forall~ |w| \leq 1$ erfüllt und für $|w| \geq 1$ möglichst schnell divergiert. diff --git a/buch/papers/ellfilter/elliptic.tex b/buch/papers/ellfilter/elliptic.tex index 26d90f1..81821c1 100644 --- a/buch/papers/ellfilter/elliptic.tex +++ b/buch/papers/ellfilter/elliptic.tex @@ -1,6 +1,6 @@ -\section{Elliptische rationale Funktionen} +\section{Rationale elliptische Funktionen} -Kommen wir nun zum eigentlichen Teil dieses Papers, den elliptischen rationalen Funktionen \cite{ellfilter:bib:orfanidis} +Kommen wir nun zum eigentlichen Teil dieses Papers, den rationalen elliptischen Funktionen \cite{ellfilter:bib:orfanidis} \begin{align} R_N(\xi, w) &= \cd \left(N~f_1(\xi)~\cd^{-1}(w, 1/\xi), f_2(\xi)\right) \label{ellfilter:eq:elliptic}\\ &= \cd \left(N~\frac{K_1}{K}~\cd^{-1}(w, k), k_1\right) , \quad k= 1/\xi, k_1 = 1/f(\xi) \\ @@ -32,7 +32,7 @@ Die Idee des elliptischen Filter ist es, diese zwei Equiripple-Zonen abzufahren, \centering \input{papers/ellfilter/tikz/cd2.tikz.tex} \caption{ - $z_1=N\frac{K_1}{K}\cd^{-1}(w, k)$-Ebene der elliptischen rationalen Funktionen. + $z_1=N\frac{K_1}{K}\cd^{-1}(w, k)$-Ebene der rationalen elliptischen Funktionen. Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert. Als Vereinfachung ist die Funktion nur für $w>0$ dargestellt. } @@ -43,7 +43,7 @@ Im Durchlassbereich werden wie beim Tschebyscheff-Filter die Nullstellen durchla Statt dass $z_1$ für alle $w>1$ in die imaginäre Richtung geht, bewegen wir uns im Sperrbereich wieder in reeller Richtung, wo Pole und Punkte mit $\pm 1/k$ durchlaufen werden. Aus dieser Sicht kann der Sperrbereich vom Tschebyscheff-Filter als unendlich langer Übergangsbereich angesehen werden. % Falls es möglich ist diese Werte abzufahren im Stil der Tschebyscheff-Polynome, kann ein Filter gebaut werden, dass Equiripple-Verhalten im Durchlass- und Sperrbereich aufweist. -Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine elliptisch rationale Funktion und die Frequenzantwort des daraus resultierenden Filters. +Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine rationale elliptische Funktion und die Frequenzantwort des daraus resultierenden Filters. \begin{figure} \centering \input{papers/ellfilter/python/elliptic.pgf} @@ -85,14 +85,45 @@ k_1 = k^N \prod_{i=1}^L \sn^4 \Bigg( \frac{2i - 1}{N} K, k \Bigg), N = 2L+r. \end{equation} Die Herleitung ist sehr umfassend und wird in \cite{ellfilter:bib:orfanidis} im Detail angeschaut. -$k_1$ jedoch gar nicht berechnet werden, um die elliptisch rationale Funktion zu erhalten. -Um ein elliptisches Filter auszulegen, kann die Ordnung $N$ und der Parameter $k$ gewählt werden. +\subsection{Berechnung der rationalen Funktion} + +$k_1$ muss jedoch gar nicht berechnet werden, um $R_N$ in der Form einer rationale Funktion erhalten. +Die Ordnung $N$ und der Parameter $k$ können frei gewählt werden. % $k_1$ muss dann mit \eqref{ellfilter:eq:degeqsol} oder mit numerischen Methoden berechnet werden. Je kleiner $k$ gewählt wird, desto grösser wird die Dämpfung des Filters im Sperrbereich im Verhältnis zum Durchlassbereich. Allerdings verliert das Filter dabei auch an Steilheit. -Wenn $k$ und $k_1$ bekannt sind, können die Position der Pol- und Nullstellen $p_i$ und $n_i$ in einem Raster konstruiert werden, wie dargestellt in Abbildung \ref{ellfilter:fig:cd2}. -Durch das Rücktransformieren mit der $\cd$-Funktion gelangt man schlussendlich zu der elliptischen rationalen Funktion. %TODO check +Wenn $k$ und $N$ bekannt sind, können die Position der Pol- und Nullstellen $p_i$ und $n_i$ in einem Raster konstruiert werden, wie dargestellt in Abbildung \ref{ellfilter:fig:pn}. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/pn.tikz.tex} + \caption{ + Pole und Nullstellen in der $z = \cd^{-1}(w, k)$-Ebene für die Rücktransformation zur einer rationalen Funktion. + } + \label{ellfilter:fig:pn} +\end{figure} +Dabei muss aufgepasst werden, dass insgesamt nur $N$ Nullstellen und $N$ Pole gesetzt werden, da bei der transformation mit dem $\cd$ mehrere Werte auf einen abgebildet werden und mehrfache Pole und Nullstellen nicht erwünscht sind. +Wegen der Periodizität sind diese in der komplexen $z$-Ebene linear angeordnet: +\begin{align} + n_i(k) &= K\frac{2i+1}{N} \\ + p_i(k) &= n_i + jK^\prime. +\end{align} +Durch das Rücktransformieren mit der $\cd$-Funktion gelangt man schlussendlich zu der rationalen Funktion +\begin{equation} + R_N(w, k) = r_0 \prod_{i=1}^N \frac{w - \cd \big(n_i(k), k \big)}{w - \cd \big(p_i(k), k \big)}, +\end{equation} +wobei $r_0$ so gewählt werden muss, dass $R_N(w, k) = 1$. + +\section{Elliptisches Filter} + +Um ein elliptisches Filter auszulegen werden aber nicht die Pol- und Nullstellen der rationalen Funktion gebraucht, sondern diejenigen der Übertragungsfunktion $H(s)$ der komplexen Frequenz $s = j\Omega + \sigma$. +Der Bezug zum quadratischen Amplitudengang \eqref{ellfilter:eq:quadratic_transfer} ist dabei +\begin{equation} + |H(\Omega)|^2 = H(s) H(s^*), +\end{equation} +wobei $*$ die komplexe Konjugation kennzeichnet. +Die genaue Berechnung geht einiges tiefer in die Filtertheorie, und verlässt das Gebiet der speziellen Funktionen. +Der interessierte Leser wird auf \cite[Kapitel~5]{ellfilter:bib:orfanidis} verwiesen. % \subsection{Schlussfolgerung} diff --git a/buch/papers/ellfilter/tikz/pn.tikz.tex b/buch/papers/ellfilter/tikz/pn.tikz.tex new file mode 100644 index 0000000..5dd8fa4 --- /dev/null +++ b/buch/papers/ellfilter/tikz/pn.tikz.tex @@ -0,0 +1,63 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=0.75, yscale=2.5] + + \fill[orange!30] (0,0) rectangle (5, 0.5); + % \fill[yellow!30] (0,0) rectangle (1, 0.1); + \node[] at (5, 0.25) {\small $N=5$}; + + \draw[gray, ->] (0,-0.25) -- (0,0.75) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-1,0) -- (11,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \draw[gray] ( 5,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + \begin{scope} + + \draw[ultra thick, ->, purple] (5, 0.5) -- (10,0.5); + \draw[ultra thick, ->, blue] (10, 0.5) -- (10,0); + \draw[ultra thick, ->, cyan] (10, 0) -- (5,0); + \draw[ultra thick, ->, darkgreen] (5, 0) -- (0,0); + \draw[ultra thick, ->, orange] (-0, 0) -- (0,0.5); + \draw[ultra thick, ->, red] (0,0.5) -- (5, 0.5); + + \foreach \i in {1,...,5} { + \begin{scope}[xshift=(\i-1)*2cm] + \node[zero] at ( 1, 0) {}; + \node[anchor=south west] at ( 1, 0) {$n_\i$}; + \node[pole] at ( 1,0.5) {}; + \node[anchor=south west] at ( 1, 0.5) {$p_\i$}; + \end{scope} + } + + \end{scope} + + \end{scope} + + % \begin{scope}[yshift=-1.5cm, xshift=3.75cm, xscale=0.75] + + % \draw[gray, ->] (-6,0) -- (6,0) node[anchor=west]{$w$}; + + % \draw[ultra thick, ->, purple] (-5, 0) -- (-3, 0); + % \draw[ultra thick, ->, blue] (-3, 0) -- (-2, 0); + % \draw[ultra thick, ->, cyan] (-2, 0) -- (0, 0); + % \draw[ultra thick, ->, darkgreen] (0, 0) -- (2, 0); + % \draw[ultra thick, ->, orange] (2, 0) -- (3, 0); + % \draw[ultra thick, ->, red] (3, 0) -- (5, 0); + + % \node[anchor=south] at (-5,0) {$-\infty$}; + % \node[anchor=south] at (-3,0) {$-1/k$}; + % \node[anchor=south] at (-2,0) {$-1$}; + % \node[anchor=south] at (0,0) {$0$}; + % \node[anchor=south] at (2,0) {$1$}; + % \node[anchor=south] at (3,0) {$1/k$}; + % \node[anchor=south] at (5,0) {$\infty$}; + + % \end{scope} + +\end{tikzpicture} -- cgit v1.2.1