diff options
Diffstat (limited to 'buch')
27 files changed, 1754 insertions, 934 deletions
diff --git a/buch/papers/ellfilter/einleitung.tex b/buch/papers/ellfilter/einleitung.tex index ae7127f..581d452 100644 --- a/buch/papers/ellfilter/einleitung.tex +++ b/buch/papers/ellfilter/einleitung.tex @@ -1,17 +1,17 @@ \section{Einleitung} -Filter sind womöglich eines der wichtigsten Elementen in der Signalverarbeitung und finden Anwendungen in der digitalen und analogen Elektrotechnik. +Filter sind womöglich eines der wichtigsten Elemente in der Signalverarbeitung und finden Anwendungen in der digitalen und analogen Elektrotechnik. Besonders hilfreich ist die Untergruppe der linearen Filter. Elektronische Schaltungen mit linearen Bauelementen wie Kondensatoren, Spulen und Widerständen führen immer zu linearen zeitinvarianten Systemen (LTI-System von englich \textit{time-invariant system}). -Durch die Linearität werden beim das Filtern keine neuen Frequenzanteile erzeugt, was es erlaubt, einen Frequenzanteil eines Signals verzerrungsfrei herauszufiltern. %TODO review sentence -Diese Eigenschaft macht es Sinnvoll, lineare Filter im Frequenzbereich zu beschreiben. +Durch die Linearität werden beim Filtern keine neuen Frequenzanteile erzeugt, was es erlaubt, einen Frequenzanteil eines Signals verzerrungsfrei herauszufiltern. +Diese Eigenschaft macht es sinnvoll, lineare Filter im Frequenzbereich zu beschreiben. Die Übertragungsfunktion eines linearen Filters im Frequenzbereich $H(\Omega)$ ist dabei immer eine rationale Funktion, also ein Quotient von zwei Polynomen. Dabei ist $\Omega = 2 \pi f$ die Frequenzeinheit. -Die Polynome haben dabei immer reelle oder komplex-konjugierte Nullstellen. +Die Polynome haben dabei immer reelle oder komplexkonjugierte Nullstellen. -Ein breit angewendeter Filtertyp ist das Tiefpassfilter, welches beabsichtigt alle Frequenzen eines Signals oberhalb der Grenzfrequenz $\Omega_p$ auszulöschen. +Ein breit angewendeter Filtertyp ist das Tiefpassfilter, welches beabsichtigt, alle Frequenzen eines Signals oberhalb der Grenzfrequenz $\Omega_p$ auszulöschen. Der Rest soll dabei unverändert passieren. -Aus dem Tiefpassifilter können dann durch Transformationen auch Hochpassfilter, Bandpassfilter und Bandsperren realisiert werden. +Aus dem Tiefpassfilter können dann durch Transformationen auch Hochpassfilter, Bandpassfilter und Bandsperren realisiert werden. Ein solches Filter hat idealerweise die Frequenzantwort \begin{equation} H(\Omega) = @@ -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. @@ -40,8 +40,9 @@ Des weiteren müssen alle Nullstellen und Pole von $F_N$ auf der linken Halbeben $w$ ist die normalisierte Frequenz, die es erlaubt ein Filter unabhängig von der Grenzfrequenz zu beschrieben. Bei $w=1$ hat das Filter eine Dämpfung von $1/(1+\varepsilon^2)$. $N \in \mathbb{N} $ gibt die Ordnung des Filters vor, also die maximale Anzahl Pole oder Nullstellen. -Je hoher $N$ gewählt wird, desto steiler ist der Übergang in denn Sperrbereich. +Je höher $N$ gewählt wird, desto steiler ist der Übergang in denn Sperrbereich. Grössere $N$ sind erfordern jedoch aufwendigere Implementierungen und haben mehr Phasenverschiebung. + Eine einfache Funktion, die für $F_N$ eingesetzt werden kann, ist das Polynom $w^N$. Tatsächlich erhalten wir damit das Butterworth Filter, wie in Abbildung \ref{ellfilter:fig:butterworth} ersichtlich. \begin{figure} @@ -62,12 +63,15 @@ Eine Reihe von rationalen Funktionen können für $F_N$ eingesetzt werden, um Ti \end{align} Mit der Ausnahme vom Butterworth-Filter sind alle Filter nach speziellen Funktionen benannt. Alle diese Filter sind optimal hinsichtlich einer Eigenschaft. -Das Butterworth-Filter, zum Beispiel, ist maximal flach im Durchlassbereich. -Das Tschebyscheff-1 Filter ist maximal steil für eine definierte Welligkeit im Durchlassbereich, währendem es im Sperrbereich monoton abfallend ist. Es scheint so als sind gewisse Eigenschaften dieser speziellen Funktionen verantwortlich für die Optimalität dieser Filter. +Das Butterworth-Filter, zum Beispiel, ist maximal flach im Durchlassbereich. +In vielen Anwendung sind Filter mit einem steilen Übergang gewünscht. +Da es technisch nicht möglich ist, mit einer rationalen Funktion mit begrenzter Anzahl Pole eine steile Flanke zu erreichen, während der Durchlass- und Sperrbereich flach und monoton sind, gibt es Filtertypen, die absichtlich Welligkeiten in der Frequenzantwort aufweisen. +Besonders effizient sind Filter mit Equiripple-Verhalten, wessen Welligkeit optimal definiert wird für eine maximal steile Flanke, während die maximale Abweichung zum idealen Filter begrenzt ist. +Die Welligkeit beansprucht dabei einen begrenzen Verstärkungsintervall und nützt diesen Vollständig aus, indem sie periodisch die Grenzen des Intervalls berührt. +Das Tschebyscheff-1 Filter, zum Beispiel, hat Equiripple-Verhalten im Durchlassbereich, währendem es im Sperrbereich monoton abfallend ist. +Beim Tschebyscheff-2 Filter ist es umgekehrt. Dieses Paper betrachtet die Theorie hinter dem elliptischen Filter, dem wohl exotischsten dieser Auswahl. -Es weist sich aus durch den steilsten Übergangsbereich für eine gegebene Filterdesignspezifikation. +Es hat Equiripple-Verhalten im Durchlass und Sperrbereich und hat dadurch den steilsten Übergangsbereich für eine gegebene Filterdesignspezifikation. Des weiteren kann es als Verallgemeinerung des Tschebyscheff-Filters angesehen werden. - -% wenn $F_N(w)$ eine rationale Funktion ist, ist auch $H(\Omega)$ eine rationale Funktion und daher ein lineares Filter. %proof? diff --git a/buch/papers/ellfilter/elliptic.tex b/buch/papers/ellfilter/elliptic.tex index 67bcca0..81821c1 100644 --- a/buch/papers/ellfilter/elliptic.tex +++ b/buch/papers/ellfilter/elliptic.tex @@ -1,13 +1,16 @@ -\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) \\ &= \cd \left(N~K_1~z , k_1 \right), \quad w= \cd(z K, k) \end{align} Beim Betrachten dieser Definition, fällt die Ähnlichkeit zur trigonometrische Darstellung der Tsche\-byschef-Polynome \eqref{ellfilter:eq:chebychef_polynomials} auf. -Anstelle vom Kosinus kommt hier die $\cd$-Funktion zum Einsatz. +Wie bei den Tschebyscheff-Polynomen ist die Formel mit speziellen Funktionen geschrieben. +Es kann jedoch gezeigt werden, dass es sich tatsächlich um rationale Funktionen handelt, wie es für ein lineares Filter vorausgesetzt wird. +Die elliptischen Funktionen werden also genau so eingesetzt, dass die resultierenden Nullstellen und Pole eine rationale Funktion ergeben. +Anstelle des Kosinus bei den Tschebyscheff-Polynomen kommt hier die $\cd$-Funktion zum Einsatz. Die Ordnungszahl $N$ kommt auch als Faktor for. Zusätzlich werden noch zwei verschiedene elliptische Moduli $k$ und $k_1$ gebraucht. Bei $k = k_1 = 0$ wird der $\cd$ zum Kosinus und wir erhalten in diesem Spezialfall die Tschebyschef-Polynome. @@ -24,12 +27,12 @@ Die $\cd^{-1}(w, k)$-Funktion ist um $K$ verschoben zur $\sn^{-1}(w, k)$-Funktio \label{ellfilter:fig:cd} \end{figure} Auffallend an der $w = \cd(z, k)$-Funktion ist, dass sich $w$ auf der reellen Achse wie der Kosinus immer zwischen $-1$ und $1$ bewegt, während bei $\mathrm{Im(z) = K^\prime}$ die Werte zwischen $\pm 1/k$ und $\pm \infty$ verlaufen. -Die Idee des elliptischen Filter ist es, diese zwei Equirippel-Zonen abzufahren, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd2}, welche Analog zu Abbildung \ref{ellfilter:fig:arccos2} gesehen werden kann. +Die Idee des elliptischen Filter ist es, diese zwei Equiripple-Zonen abzufahren, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd2}, welche analog zu Abbildung \ref{ellfilter:fig:arccos2} gesehen werden kann. \begin{figure} \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. } @@ -37,13 +40,10 @@ Die Idee des elliptischen Filter ist es, diese zwei Equirippel-Zonen abzufahren, \end{figure} Das elliptische Filter hat im Gegensatz zum Tschebyscheff-Filter drei Zonen. Im Durchlassbereich werden wie beim Tschebyscheff-Filter die Nullstellen durchlaufen. -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 durchlaufen werden. +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 Equirippel-Verhalten im Durchlass- und Sperrbereich aufweist. -Da sich die Funktion im Übergangsbereich nur zur nächsten Reihe bewegt, ist der Übergangsbereich monoton steigend. -Theoretisch könnte eine gleiches Durchlass- und Sperrbereichverhalten erreicht werden, wenn die Funktion auf eine andere Reihe ansteigen würde. -Dies würde jedoch zu Oszillationen zwischen $1$ und $1/k$ im Übergangsbereich führen. -Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine elliptisch rationale Funktion und die Frequenzantwort des daraus resultierenden Filters. +% 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 rationale elliptische Funktion und die Frequenzantwort des daraus resultierenden Filters. \begin{figure} \centering \input{papers/ellfilter/python/elliptic.pgf} @@ -51,6 +51,10 @@ Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine elliptisch rationale Funk \label{ellfilter:fig:elliptic_freq} \end{figure} +Da sich die Funktion im Übergangsbereich nur zur nächsten Reihe von Polstellen bewegt, ist der Übergangsbereich monoton steigend. +Theoretisch könnte eine gleiches Durchlass- und Sperrbereichsverhalten erreicht werden, wenn die Funktion auf eine andere Reihe ansteigen würde. +Dies würde jedoch zu Oszillationen zwischen $1$ und $1/k$ im Übergangsbereich führen. + \subsection{Gradgleichung} Damit die Pol- und Nullstellen genau in dieser Konstellation durchfahren werden, müssen die elliptischen Moduli des inneren und äusseren $\cd$ aufeinander abgestimmt werden. @@ -75,26 +79,54 @@ Algebraisch kann so die Gradgleichung N \frac{K^\prime}{K} = \frac{K^\prime_1}{K_1} \end{equation} aufgestellt werden, dessen Lösung ist gegeben durch -\begin{equation} %TODO check +\begin{equation}\label{ellfilter:eq:degeqsol} k_1 = k^N \prod_{i=1}^L \sn^4 \Bigg( \frac{2i - 1}{N} K, k \Bigg), \quad \text{wobei} \quad N = 2L+r. \end{equation} Die Herleitung ist sehr umfassend und wird in \cite{ellfilter:bib:orfanidis} im Detail angeschaut. -% \begin{figure} -% \centering -% \input{papers/ellfilter/tikz/elliptic_transform1.tikz} -% \caption{Die Gradgleichung als geometrisches Problem.} -% \end{figure} +\subsection{Berechnung der rationalen Funktion} -\subsection{Schlussfolgerung} +$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 $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$. -Die elliptischen Filter können als direkte Erweiterung der Tschebyscheff-Filter verstanden werden. -Bei den Tschebyscheff-Polynomen haben wir gesehen, dass die Trigonometrische Formel zu einfachen Polynomen umgewandelt werden kann. -Im elliptischen Fall entstehen so rationale Funktionen mit Nullstellen und auch Pole. -Somit entstehen bei den elliptischen rationalen Funktionen, wie es der name auch deutet, rationale Funktionen, also ein Bruch von zwei Polynomen. +\section{Elliptisches Filter} -% Da Transformationen einer rationalen Funktionen mit Grundrechenarten, wie es in \eqref{ellfilter:eq:h_omega} der Fall ist, immer noch rationale Funktionen ergeben, stellt dies kein Problem für die Implementierung dar. +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} +% Die elliptischen Filter können als direkte Erweiterung der Tschebyscheff-Filter verstanden werden. +% Bei den Tschebyscheff-Polynomen haben wir gesehen, dass die Trigonometrische Formel zu einfachen Polynomen umgewandelt werden kann. +% Im elliptischen Fall entstehen so rationale Funktionen mit Nullstellen und auch Pole. diff --git a/buch/papers/ellfilter/jacobi.tex b/buch/papers/ellfilter/jacobi.tex index 567bbcc..841cd7d 100644 --- a/buch/papers/ellfilter/jacobi.tex +++ b/buch/papers/ellfilter/jacobi.tex @@ -2,14 +2,16 @@ Für das elliptische Filter werden, wie es der Name bereits deutet, elliptische Funktionen gebraucht. Wie die trigonometrischen Funktionen Zusammenhänge eines Kreises darlegen, beschreiben die elliptischen Funktionen Ellipsen. -Es ist daher naheliegend, dass Kosinus des Tschebyscheff-Filters mit einem elliptischen Pendant ausgetauscht werden könnte. -Der Begriff elliptische Funktion wird für sehr viele Funktionen gebraucht, daher ist es hier wichtig zu erwähnen, dass es ausschliesslich um die Jacobischen elliptischen Funktionen geht. +Es ist daher naheliegend, dass der Kosinus des Tschebyscheff-Filters gegen ein elliptisches Pendant ausgetauscht werden könnte. +Der Begriff elliptische Funktion wird für sehr viele Funktionen gebraucht, daher ist es hier wichtig zu erwähnen, dass es hier ausschliesslich um die Jacobischen elliptischen Funktionen geht. + +\subsection{Grundlegende Eigenschaften} Die Jacobi elliptischen Funktionen werden ausführlich im Kapitel \ref{buch:elliptisch:section:jacobi} behandelt. Im Wesentlichen erweitern die Jacobi elliptischen Funktionen die trigonometrische Funktionen für Ellipsen. Zum Beispiel gibt es analog zum Sinus den elliptischen $\sn(z, k)$. -Im Gegensatz zum den trigonometrischen Funktionen haben die elliptischen Funktionen zwei parameter. -Den \textit{elliptische Modul} $k$, der die Exzentrizität der Ellipse parametrisiert und das Winkelargument $z$. +Im Gegensatz zum den trigonometrischen Funktionen haben die elliptischen Funktionen zwei Parameter. +Den elliptischen Modul $k$, der die Exzentrizität der Ellipse parametrisiert und das Winkelargument $z$. Im Kreis ist der Radius für alle Winkel konstant, bei Ellipsen ändert sich das. Dies hat zur Folge, dass bei einer Ellipse die Kreisbogenlänge nicht linear zum Winkel verläuft. Darum kann hier nicht der gewohnte Winkel verwendet werden. @@ -30,7 +32,7 @@ Das Winkelargument $z$ kann durch das elliptische Integral erster Art \end{equation} mit dem Winkel $\phi$ in Verbindung gebracht werden. -Dabei wird das vollständige und unvollständige Elliptische integral unterschieden. +Dabei wird das vollständige und unvollständige elliptische integral unterschieden. Beim vollständigen Integral \begin{equation} K(k) @@ -48,7 +50,7 @@ wird über ein viertel Ellipsenbogen integriert, also bis $\phi=\pi/2$ und liefe Die Zahl wird oft auch abgekürzt mit $K = K(k)$ und ist für das elliptische Filter sehr relevant. Alle elliptischen Funktionen sind somit $4K$-periodisch. -Neben dem $\sn$ gibt es zwei weitere basis-elliptische Funktionen $\cn$ und $\dn$. +Neben dem $\sn$ gibt es zwei weitere elliptische Basisfunktionen $\cn$ und $\dn$. Dazu kommen noch weitere abgeleitete Funktionen, die durch Quotienten und Kehrwerte dieser Funktionen zustande kommen. Insgesamt sind es die zwölf Funktionen \begin{equation*} @@ -66,7 +68,7 @@ Insgesamt sind es die zwölf Funktionen \dc. \end{equation*} -Die Jacobischen elliptischen Funktionen können mit der inversen Funktion des kompletten elliptischen Integrals erster Art +Die Jacobischen elliptischen Funktionen können mit der inversen Funktion des vollständigen elliptischen Integrals erster Art \begin{equation} \phi = F^{-1}(z, k) \end{equation} @@ -76,7 +78,7 @@ definiert werden. Dabei ist zu beachten dass nur das $z$ Argument der Funktion i \Leftrightarrow \phi = F^{-1}(z, k). \end{equation} -Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem Elliptischen integral dargestellt werden: +Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem elliptischen Integral dargestellt werden: \begin{equation} \sin(\phi) = @@ -115,6 +117,8 @@ Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem Elliptischen integral % \phi = \sin^{-1}(w) % \end{equation} +\subsection{Die Funktion $\sn^{-1}$} + Beim Tschebyscheff-Filter konnten wir mit Betrachten des Arcuscosinus die Funktionalität erklären. Für das Elliptische Filter machen wir die gleiche Betrachtung mit der $\sn^{-1}$-Funktion. Der $\sn^{-1}$ ist durch das elliptische Integral @@ -153,7 +157,7 @@ Dazu betrachten wir wieder den Integranden } }. \end{equation} -Beim $\cos^{-1}(x)$ haben wir gesehen, dass die analytische Fortsetzung bei $x < -1$ und $x > 1$ rechtwinklig in die Komplexen zahlen wandert. +Beim $\cos^{-1}(x)$ haben wir gesehen, dass die analytische Fortsetzung bei $x < -1$ und $x > 1$ rechtwinklig in die komplexen Zahlen wandert. Wenn man das Gleiche mit $\sn^{-1}(w, k)$ macht, erkennt man zwei interessante Stellen. Die erste ist die gleiche wie beim $\cos^{-1}(x)$ nämlich bei $t = \pm 1$. Der erste Term unter der Wurzel wird dann negativ, während der zweite noch positiv ist, da $k \leq 1$. @@ -169,7 +173,7 @@ Abbildung \ref{ellfilter:fig:sn} zeigt den Verlauf der Funktion in der komplexen } \label{ellfilter:fig:sn} \end{figure} -In der reellen Richtung ist sie $4K(k)$-periodisch und in der imaginären Richtung $4K^\prime(k)$-periodisch, wobei $K^\prime$ das komplementäre vollständige Elliptische Integral ist: +In der reellen Richtung ist sie $4K(k)$-periodisch und in der imaginären Richtung $4K^\prime$-periodisch, wobei $K^\prime$ das komplementäre vollständige Elliptische Integral ist: \begin{equation} K^\prime(k) = diff --git a/buch/papers/ellfilter/python/elliptic.pgf b/buch/papers/ellfilter/python/elliptic.pgf index 32485c1..a8d06d1 100644 --- a/buch/papers/ellfilter/python/elliptic.pgf +++ b/buch/papers/ellfilter/python/elliptic.pgf @@ -51,16 +51,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.000000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.798407in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -72,16 +72,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{-108.151374in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{-108.151374in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{-108.151374in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{-91.099555in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{-91.099555in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{-91.099555in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -93,16 +93,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -114,16 +114,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{2.850005in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.850005in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408643in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{2.731121in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.731121in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.358033in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -131,31 +131,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -163,31 +144,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.232715in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{1.232715in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{1.227693in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{1.227693in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{1.232715in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -195,31 +157,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.731899in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{1.731899in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{1.725373in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{1.725373in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{1.731899in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -227,31 +170,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.231083in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{2.231083in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{2.223054in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{2.223054in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{2.231083in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -259,31 +183,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{2.730268in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -291,31 +196,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.229452in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{3.229452in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{3.218416in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{3.218416in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{3.229452in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -323,31 +209,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.728636in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{3.728636in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{3.716097in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{3.716097in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{3.728636in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -355,31 +222,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.227820in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.227820in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.213778in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.213778in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{4.227820in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -387,31 +235,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{4.727004in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -419,8 +248,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -438,7 +267,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% +\pgfsys@transformshift{0.730012in}{1.798407in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -446,10 +275,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.348306in, y=1.698381in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-4}}\)}% +\pgftext[x=0.344787in, y=1.750182in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-4}}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -457,8 +286,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.171491in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -476,7 +305,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{2.187964in}% +\pgfsys@transformshift{0.730012in}{2.171491in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -484,10 +313,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.435112in, y=2.139739in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{0}}\)}% +\pgftext[x=0.431593in, y=2.123266in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{0}}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -495,8 +324,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.629321in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.629321in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.544575in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.544575in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -514,7 +343,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{2.629321in}% +\pgfsys@transformshift{0.730012in}{2.544575in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -522,16 +351,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.435112in, y=2.581096in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{4}}\)}% +\pgftext[x=0.431593in, y=2.496350in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{4}}\)}% \end{pgfscope}% \begin{pgfscope}% \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.292751in,y=2.298303in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle F^2_N(w)\)}% +\pgftext[x=0.289232in,y=2.264762in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |F_N(w)|^2\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -539,82 +368,79 @@ \definecolor{currentstroke}{rgb}{0.000000,0.501961,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.740931in}{1.732718in}}% -\pgfpathlineto{\pgfqpoint{0.746516in}{1.786823in}}% -\pgfpathlineto{\pgfqpoint{0.754507in}{1.832782in}}% -\pgfpathlineto{\pgfqpoint{0.763497in}{1.866959in}}% -\pgfpathlineto{\pgfqpoint{0.774485in}{1.896885in}}% -\pgfpathlineto{\pgfqpoint{0.787470in}{1.923263in}}% -\pgfpathlineto{\pgfqpoint{0.802453in}{1.946729in}}% -\pgfpathlineto{\pgfqpoint{0.820433in}{1.968905in}}% -\pgfpathlineto{\pgfqpoint{0.841409in}{1.989570in}}% -\pgfpathlineto{\pgfqpoint{0.865382in}{2.008719in}}% -\pgfpathlineto{\pgfqpoint{0.893350in}{2.027039in}}% -\pgfpathlineto{\pgfqpoint{0.926313in}{2.044843in}}% -\pgfpathlineto{\pgfqpoint{0.965268in}{2.062241in}}% -\pgfpathlineto{\pgfqpoint{1.011216in}{2.079233in}}% -\pgfpathlineto{\pgfqpoint{1.065155in}{2.095755in}}% -\pgfpathlineto{\pgfqpoint{1.128084in}{2.111711in}}% -\pgfpathlineto{\pgfqpoint{1.202000in}{2.127167in}}% -\pgfpathlineto{\pgfqpoint{1.287903in}{2.141865in}}% -\pgfpathlineto{\pgfqpoint{1.385792in}{2.155401in}}% -\pgfpathlineto{\pgfqpoint{1.494668in}{2.167305in}}% -\pgfpathlineto{\pgfqpoint{1.612535in}{2.177062in}}% -\pgfpathlineto{\pgfqpoint{1.732399in}{2.183910in}}% -\pgfpathlineto{\pgfqpoint{1.847269in}{2.187451in}}% -\pgfpathlineto{\pgfqpoint{1.951151in}{2.187660in}}% -\pgfpathlineto{\pgfqpoint{2.041049in}{2.184855in}}% -\pgfpathlineto{\pgfqpoint{2.116963in}{2.179489in}}% -\pgfpathlineto{\pgfqpoint{2.179891in}{2.172045in}}% -\pgfpathlineto{\pgfqpoint{2.231833in}{2.162906in}}% -\pgfpathlineto{\pgfqpoint{2.274784in}{2.152346in}}% -\pgfpathlineto{\pgfqpoint{2.310743in}{2.140427in}}% -\pgfpathlineto{\pgfqpoint{2.340709in}{2.127341in}}% -\pgfpathlineto{\pgfqpoint{2.365681in}{2.113201in}}% -\pgfpathlineto{\pgfqpoint{2.386657in}{2.097957in}}% -\pgfpathlineto{\pgfqpoint{2.404637in}{2.081234in}}% -\pgfpathlineto{\pgfqpoint{2.420619in}{2.062036in}}% -\pgfpathlineto{\pgfqpoint{2.433604in}{2.041733in}}% -\pgfpathlineto{\pgfqpoint{2.444591in}{2.019228in}}% -\pgfpathlineto{\pgfqpoint{2.454580in}{1.991581in}}% -\pgfpathlineto{\pgfqpoint{2.462571in}{1.960514in}}% -\pgfpathlineto{\pgfqpoint{2.469563in}{1.920021in}}% -\pgfpathlineto{\pgfqpoint{2.474557in}{1.873580in}}% -\pgfpathlineto{\pgfqpoint{2.478553in}{1.805777in}}% -\pgfpathlineto{\pgfqpoint{2.480586in}{1.732718in}}% -\pgfpathmoveto{\pgfqpoint{2.484219in}{1.732718in}}% -\pgfpathlineto{\pgfqpoint{2.486544in}{1.815182in}}% -\pgfpathlineto{\pgfqpoint{2.491538in}{1.891600in}}% -\pgfpathlineto{\pgfqpoint{2.498530in}{1.947168in}}% -\pgfpathlineto{\pgfqpoint{2.506521in}{1.987046in}}% -\pgfpathlineto{\pgfqpoint{2.516510in}{2.021891in}}% -\pgfpathlineto{\pgfqpoint{2.528496in}{2.052678in}}% -\pgfpathlineto{\pgfqpoint{2.542480in}{2.080234in}}% -\pgfpathlineto{\pgfqpoint{2.558462in}{2.105153in}}% -\pgfpathlineto{\pgfqpoint{2.577441in}{2.128933in}}% -\pgfpathlineto{\pgfqpoint{2.598417in}{2.150115in}}% -\pgfpathlineto{\pgfqpoint{2.619393in}{2.167048in}}% -\pgfpathlineto{\pgfqpoint{2.639371in}{2.179324in}}% -\pgfpathlineto{\pgfqpoint{2.655352in}{2.185829in}}% -\pgfpathlineto{\pgfqpoint{2.668338in}{2.187959in}}% -\pgfpathlineto{\pgfqpoint{2.678326in}{2.186578in}}% -\pgfpathlineto{\pgfqpoint{2.686317in}{2.182435in}}% -\pgfpathlineto{\pgfqpoint{2.693309in}{2.175207in}}% -\pgfpathlineto{\pgfqpoint{2.699303in}{2.164543in}}% -\pgfpathlineto{\pgfqpoint{2.705296in}{2.146413in}}% -\pgfpathlineto{\pgfqpoint{2.710290in}{2.119757in}}% -\pgfpathlineto{\pgfqpoint{2.714286in}{2.080320in}}% -\pgfpathlineto{\pgfqpoint{2.717282in}{2.018766in}}% -\pgfpathlineto{\pgfqpoint{2.719280in}{1.902417in}}% -\pgfpathlineto{\pgfqpoint{2.720279in}{1.787994in}}% -\pgfpathlineto{\pgfqpoint{2.723275in}{2.052161in}}% -\pgfpathlineto{\pgfqpoint{2.728270in}{2.159459in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{0.737191in}{1.784518in}}% +\pgfpathlineto{\pgfqpoint{0.742958in}{1.832403in}}% +\pgfpathlineto{\pgfqpoint{0.750925in}{1.871252in}}% +\pgfpathlineto{\pgfqpoint{0.759888in}{1.900142in}}% +\pgfpathlineto{\pgfqpoint{0.770842in}{1.925439in}}% +\pgfpathlineto{\pgfqpoint{0.783788in}{1.947737in}}% +\pgfpathlineto{\pgfqpoint{0.799722in}{1.968737in}}% +\pgfpathlineto{\pgfqpoint{0.817647in}{1.987242in}}% +\pgfpathlineto{\pgfqpoint{0.839556in}{2.005268in}}% +\pgfpathlineto{\pgfqpoint{0.865449in}{2.022379in}}% +\pgfpathlineto{\pgfqpoint{0.896320in}{2.038901in}}% +\pgfpathlineto{\pgfqpoint{0.933167in}{2.054946in}}% +\pgfpathlineto{\pgfqpoint{0.976985in}{2.070524in}}% +\pgfpathlineto{\pgfqpoint{1.028770in}{2.085590in}}% +\pgfpathlineto{\pgfqpoint{1.090513in}{2.100289in}}% +\pgfpathlineto{\pgfqpoint{1.164207in}{2.114587in}}% +\pgfpathlineto{\pgfqpoint{1.251842in}{2.128336in}}% +\pgfpathlineto{\pgfqpoint{1.353420in}{2.141062in}}% +\pgfpathlineto{\pgfqpoint{1.468940in}{2.152368in}}% +\pgfpathlineto{\pgfqpoint{1.595414in}{2.161615in}}% +\pgfpathlineto{\pgfqpoint{1.725871in}{2.168064in}}% +\pgfpathlineto{\pgfqpoint{1.850354in}{2.171188in}}% +\pgfpathlineto{\pgfqpoint{1.961890in}{2.170972in}}% +\pgfpathlineto{\pgfqpoint{2.056497in}{2.167777in}}% +\pgfpathlineto{\pgfqpoint{2.134174in}{2.162158in}}% +\pgfpathlineto{\pgfqpoint{2.196913in}{2.154666in}}% +\pgfpathlineto{\pgfqpoint{2.248698in}{2.145463in}}% +\pgfpathlineto{\pgfqpoint{2.290524in}{2.134993in}}% +\pgfpathlineto{\pgfqpoint{2.324383in}{2.123493in}}% +\pgfpathlineto{\pgfqpoint{2.352267in}{2.110935in}}% +\pgfpathlineto{\pgfqpoint{2.375172in}{2.097452in}}% +\pgfpathlineto{\pgfqpoint{2.395089in}{2.082154in}}% +\pgfpathlineto{\pgfqpoint{2.411023in}{2.066192in}}% +\pgfpathlineto{\pgfqpoint{2.424965in}{2.047880in}}% +\pgfpathlineto{\pgfqpoint{2.436915in}{2.026837in}}% +\pgfpathlineto{\pgfqpoint{2.446874in}{2.002671in}}% +\pgfpathlineto{\pgfqpoint{2.454841in}{1.975182in}}% +\pgfpathlineto{\pgfqpoint{2.461812in}{1.938571in}}% +\pgfpathlineto{\pgfqpoint{2.466791in}{1.894821in}}% +\pgfpathlineto{\pgfqpoint{2.469778in}{1.848425in}}% +\pgfpathlineto{\pgfqpoint{2.471839in}{1.784518in}}% +\pgfpathmoveto{\pgfqpoint{2.475385in}{1.784518in}}% +\pgfpathlineto{\pgfqpoint{2.477745in}{1.856374in}}% +\pgfpathlineto{\pgfqpoint{2.482725in}{1.920971in}}% +\pgfpathlineto{\pgfqpoint{2.489696in}{1.967944in}}% +\pgfpathlineto{\pgfqpoint{2.497663in}{2.001653in}}% +\pgfpathlineto{\pgfqpoint{2.507621in}{2.031108in}}% +\pgfpathlineto{\pgfqpoint{2.519571in}{2.057133in}}% +\pgfpathlineto{\pgfqpoint{2.533513in}{2.080426in}}% +\pgfpathlineto{\pgfqpoint{2.550443in}{2.102664in}}% +\pgfpathlineto{\pgfqpoint{2.569364in}{2.122536in}}% +\pgfpathlineto{\pgfqpoint{2.591273in}{2.141008in}}% +\pgfpathlineto{\pgfqpoint{2.613182in}{2.155578in}}% +\pgfpathlineto{\pgfqpoint{2.633099in}{2.165435in}}% +\pgfpathlineto{\pgfqpoint{2.650029in}{2.170549in}}% +\pgfpathlineto{\pgfqpoint{2.662975in}{2.171353in}}% +\pgfpathlineto{\pgfqpoint{2.672934in}{2.168930in}}% +\pgfpathlineto{\pgfqpoint{2.680901in}{2.163776in}}% +\pgfpathlineto{\pgfqpoint{2.687872in}{2.155218in}}% +\pgfpathlineto{\pgfqpoint{2.693847in}{2.142465in}}% +\pgfpathlineto{\pgfqpoint{2.698826in}{2.124457in}}% +\pgfpathlineto{\pgfqpoint{2.702810in}{2.099873in}}% +\pgfpathlineto{\pgfqpoint{2.706793in}{2.050915in}}% +\pgfpathlineto{\pgfqpoint{2.708785in}{1.994774in}}% +\pgfpathlineto{\pgfqpoint{2.710776in}{1.833392in}}% +\pgfpathlineto{\pgfqpoint{2.713764in}{2.056695in}}% +\pgfpathlineto{\pgfqpoint{2.718743in}{2.147396in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -622,14 +448,14 @@ \definecolor{currentstroke}{rgb}{1.000000,0.647059,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.739948in}{2.296201in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408537in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408537in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.730416in}{2.263242in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.357944in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.357944in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -637,65 +463,61 @@ \definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{2.408537in}}% -\pgfpathlineto{\pgfqpoint{2.755020in}{2.489017in}}% -\pgfpathlineto{\pgfqpoint{2.757987in}{2.575142in}}% -\pgfpathlineto{\pgfqpoint{2.759965in}{2.739853in}}% -\pgfpathlineto{\pgfqpoint{2.760954in}{2.732944in}}% -\pgfpathlineto{\pgfqpoint{2.763921in}{2.559521in}}% -\pgfpathlineto{\pgfqpoint{2.767876in}{2.498072in}}% -\pgfpathlineto{\pgfqpoint{2.772821in}{2.462357in}}% -\pgfpathlineto{\pgfqpoint{2.778755in}{2.439486in}}% -\pgfpathlineto{\pgfqpoint{2.785678in}{2.424627in}}% -\pgfpathlineto{\pgfqpoint{2.793589in}{2.415351in}}% -\pgfpathlineto{\pgfqpoint{2.801501in}{2.410617in}}% -\pgfpathlineto{\pgfqpoint{2.811391in}{2.408469in}}% -\pgfpathlineto{\pgfqpoint{2.823258in}{2.409298in}}% -\pgfpathlineto{\pgfqpoint{2.838093in}{2.413594in}}% -\pgfpathlineto{\pgfqpoint{2.856883in}{2.422398in}}% -\pgfpathlineto{\pgfqpoint{2.879629in}{2.436615in}}% -\pgfpathlineto{\pgfqpoint{2.904353in}{2.455827in}}% -\pgfpathlineto{\pgfqpoint{2.928088in}{2.478242in}}% -\pgfpathlineto{\pgfqpoint{2.948856in}{2.502012in}}% -\pgfpathlineto{\pgfqpoint{2.966657in}{2.526883in}}% -\pgfpathlineto{\pgfqpoint{2.982481in}{2.554434in}}% -\pgfpathlineto{\pgfqpoint{2.995337in}{2.583034in}}% -\pgfpathlineto{\pgfqpoint{3.006216in}{2.614845in}}% -\pgfpathlineto{\pgfqpoint{3.015116in}{2.650561in}}% -\pgfpathlineto{\pgfqpoint{3.022039in}{2.690604in}}% -\pgfpathlineto{\pgfqpoint{3.027973in}{2.745226in}}% -\pgfpathlineto{\pgfqpoint{3.031928in}{2.812248in}}% -\pgfpathlineto{\pgfqpoint{3.033527in}{2.863889in}}% -\pgfpathmoveto{\pgfqpoint{3.038280in}{2.863889in}}% -\pgfpathlineto{\pgfqpoint{3.041818in}{2.775420in}}% -\pgfpathlineto{\pgfqpoint{3.047752in}{2.709952in}}% -\pgfpathlineto{\pgfqpoint{3.054675in}{2.667083in}}% -\pgfpathlineto{\pgfqpoint{3.063575in}{2.631439in}}% -\pgfpathlineto{\pgfqpoint{3.073465in}{2.603860in}}% -\pgfpathlineto{\pgfqpoint{3.085332in}{2.579578in}}% -\pgfpathlineto{\pgfqpoint{3.099178in}{2.558262in}}% -\pgfpathlineto{\pgfqpoint{3.115001in}{2.539530in}}% -\pgfpathlineto{\pgfqpoint{3.133791in}{2.522224in}}% -\pgfpathlineto{\pgfqpoint{3.155548in}{2.506551in}}% -\pgfpathlineto{\pgfqpoint{3.181261in}{2.492030in}}% -\pgfpathlineto{\pgfqpoint{3.210930in}{2.478899in}}% -\pgfpathlineto{\pgfqpoint{3.246533in}{2.466615in}}% -\pgfpathlineto{\pgfqpoint{3.289058in}{2.455313in}}% -\pgfpathlineto{\pgfqpoint{3.340484in}{2.444955in}}% -\pgfpathlineto{\pgfqpoint{3.402788in}{2.435657in}}% -\pgfpathlineto{\pgfqpoint{3.479927in}{2.427399in}}% -\pgfpathlineto{\pgfqpoint{3.575856in}{2.420378in}}% -\pgfpathlineto{\pgfqpoint{3.697498in}{2.414729in}}% -\pgfpathlineto{\pgfqpoint{3.854742in}{2.410690in}}% -\pgfpathlineto{\pgfqpoint{4.063413in}{2.408586in}}% -\pgfpathlineto{\pgfqpoint{4.355156in}{2.408934in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.412037in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.412037in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{2.357944in}}% +\pgfpathlineto{\pgfqpoint{2.745413in}{2.425975in}}% +\pgfpathlineto{\pgfqpoint{2.748371in}{2.498777in}}% +\pgfpathlineto{\pgfqpoint{2.750343in}{2.638009in}}% +\pgfpathlineto{\pgfqpoint{2.751329in}{2.632169in}}% +\pgfpathlineto{\pgfqpoint{2.754287in}{2.485572in}}% +\pgfpathlineto{\pgfqpoint{2.758231in}{2.433629in}}% +\pgfpathlineto{\pgfqpoint{2.763161in}{2.403439in}}% +\pgfpathlineto{\pgfqpoint{2.769076in}{2.384105in}}% +\pgfpathlineto{\pgfqpoint{2.775978in}{2.371545in}}% +\pgfpathlineto{\pgfqpoint{2.783866in}{2.363704in}}% +\pgfpathlineto{\pgfqpoint{2.792740in}{2.359387in}}% +\pgfpathlineto{\pgfqpoint{2.803586in}{2.357822in}}% +\pgfpathlineto{\pgfqpoint{2.817390in}{2.359308in}}% +\pgfpathlineto{\pgfqpoint{2.835137in}{2.364651in}}% +\pgfpathlineto{\pgfqpoint{2.856829in}{2.374526in}}% +\pgfpathlineto{\pgfqpoint{2.882464in}{2.389713in}}% +\pgfpathlineto{\pgfqpoint{2.908100in}{2.408525in}}% +\pgfpathlineto{\pgfqpoint{2.930777in}{2.428838in}}% +\pgfpathlineto{\pgfqpoint{2.950497in}{2.450483in}}% +\pgfpathlineto{\pgfqpoint{2.967259in}{2.473386in}}% +\pgfpathlineto{\pgfqpoint{2.981062in}{2.497332in}}% +\pgfpathlineto{\pgfqpoint{2.992894in}{2.524185in}}% +\pgfpathlineto{\pgfqpoint{3.002754in}{2.554872in}}% +\pgfpathlineto{\pgfqpoint{3.010642in}{2.590647in}}% +\pgfpathlineto{\pgfqpoint{3.016558in}{2.632873in}}% +\pgfpathlineto{\pgfqpoint{3.020502in}{2.681015in}}% +\pgfpathlineto{\pgfqpoint{3.023145in}{2.745006in}}% +\pgfpathmoveto{\pgfqpoint{3.027755in}{2.745006in}}% +\pgfpathlineto{\pgfqpoint{3.031347in}{2.668074in}}% +\pgfpathlineto{\pgfqpoint{3.037263in}{2.612733in}}% +\pgfpathlineto{\pgfqpoint{3.044165in}{2.576495in}}% +\pgfpathlineto{\pgfqpoint{3.053039in}{2.546365in}}% +\pgfpathlineto{\pgfqpoint{3.063885in}{2.521091in}}% +\pgfpathlineto{\pgfqpoint{3.076702in}{2.499633in}}% +\pgfpathlineto{\pgfqpoint{3.091492in}{2.481219in}}% +\pgfpathlineto{\pgfqpoint{3.108254in}{2.465278in}}% +\pgfpathlineto{\pgfqpoint{3.127973in}{2.450741in}}% +\pgfpathlineto{\pgfqpoint{3.151637in}{2.437187in}}% +\pgfpathlineto{\pgfqpoint{3.180230in}{2.424515in}}% +\pgfpathlineto{\pgfqpoint{3.214740in}{2.412770in}}% +\pgfpathlineto{\pgfqpoint{3.256151in}{2.402052in}}% +\pgfpathlineto{\pgfqpoint{3.307422in}{2.392129in}}% +\pgfpathlineto{\pgfqpoint{3.370525in}{2.383222in}}% +\pgfpathlineto{\pgfqpoint{3.449403in}{2.375370in}}% +\pgfpathlineto{\pgfqpoint{3.548987in}{2.368720in}}% +\pgfpathlineto{\pgfqpoint{3.677165in}{2.363420in}}% +\pgfpathlineto{\pgfqpoint{3.845767in}{2.359706in}}% +\pgfpathlineto{\pgfqpoint{4.076487in}{2.357907in}}% +\pgfpathlineto{\pgfqpoint{4.409748in}{2.358631in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.360903in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.360903in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% -\pgfusepath{clip}% \pgfsetbuttcap% \pgfsetroundjoin% \definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% @@ -720,21 +542,19 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% +\pgfsys@transformshift{0.730012in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{2.470692in}{1.746607in}% +\pgfsys@transformshift{2.461941in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{2.720284in}{1.746607in}% +\pgfsys@transformshift{2.710781in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% -\pgfusepath{clip}% \pgfsetbuttcap% \pgfsetroundjoin% \definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% @@ -752,11 +572,15 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.750235in}{2.850000in}% +\pgfsys@transformshift{2.740642in}{2.801071in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.029297in}{2.801071in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{3.039762in}{2.850000in}% +\pgfsys@transformshift{4.810994in}{2.801071in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -767,8 +591,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -778,8 +602,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -789,8 +613,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -800,8 +624,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -814,16 +638,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.000000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{0.548769in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -835,16 +659,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.253828in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.253828in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.150435in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.141005in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.141005in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.208295in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -856,16 +680,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{0.480557in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{0.642040in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -877,16 +701,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.548769in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -894,8 +718,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -913,7 +737,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.370218in}% +\pgfsys@transformshift{0.730012in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -921,10 +745,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.733531in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% +\pgftext[x=0.730012in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -932,8 +756,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.232715in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{1.232715in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{1.227693in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.227693in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -951,7 +775,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{1.232715in}{0.370218in}% +\pgfsys@transformshift{1.227693in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -959,10 +783,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=1.232715in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% +\pgftext[x=1.227693in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -970,8 +794,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.731899in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{1.731899in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{1.725373in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.725373in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -989,7 +813,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{1.731899in}{0.370218in}% +\pgfsys@transformshift{1.725373in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -997,10 +821,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=1.731899in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% +\pgftext[x=1.725373in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1008,8 +832,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.231083in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{2.231083in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{2.223054in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.223054in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1027,7 +851,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.231083in}{0.370218in}% +\pgfsys@transformshift{2.223054in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1035,10 +859,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=2.231083in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% +\pgftext[x=2.223054in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1046,8 +870,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1065,7 +889,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.730268in}{0.370218in}% +\pgfsys@transformshift{2.720735in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1073,10 +897,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=2.730268in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% +\pgftext[x=2.720735in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1084,8 +908,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.229452in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{3.229452in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{3.218416in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.218416in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1103,7 +927,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{3.229452in}{0.370218in}% +\pgfsys@transformshift{3.218416in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1111,10 +935,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=3.229452in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% +\pgftext[x=3.218416in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1122,8 +946,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.728636in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{3.728636in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{3.716097in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.716097in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1141,7 +965,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{3.728636in}{0.370218in}% +\pgfsys@transformshift{3.716097in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1149,10 +973,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=3.728636in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% +\pgftext[x=3.716097in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1160,8 +984,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.227820in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.227820in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.213778in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.213778in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1179,7 +1003,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{4.227820in}{0.370218in}% +\pgfsys@transformshift{4.213778in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1187,10 +1011,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=4.227820in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.75}\)}% +\pgftext[x=4.213778in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.75}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1198,8 +1022,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1217,7 +1041,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{4.727004in}{0.370218in}% +\pgfsys@transformshift{4.711458in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1225,10 +1049,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=4.727004in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.00}\)}% +\pgftext[x=4.711458in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.720735in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1236,8 +1066,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1255,7 +1085,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.370218in}% +\pgfsys@transformshift{0.730012in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1263,10 +1093,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=0.321992in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\pgftext[x=0.455320in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1274,8 +1104,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.921914in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.921914in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.015124in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.015124in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1293,7 +1123,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.921914in}% +\pgfsys@transformshift{0.730012in}{1.015124in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1301,10 +1131,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=0.873689in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\pgftext[x=0.455320in, y=0.966899in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1312,8 +1142,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1331,7 +1161,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.473611in}% +\pgfsys@transformshift{0.730012in}{1.481479in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1339,16 +1169,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=1.425386in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\pgftext[x=0.455320in, y=1.433254in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% \end{pgfscope}% \begin{pgfscope}% \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.403284in,y=0.921914in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |H(w)|\)}% +\pgftext[x=0.399764in,y=1.015124in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |H(w)|\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1356,69 +1186,65 @@ \definecolor{currentstroke}{rgb}{0.000000,0.501961,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.778480in}{1.472092in}}% -\pgfpathlineto{\pgfqpoint{0.824428in}{1.467451in}}% -\pgfpathlineto{\pgfqpoint{0.872374in}{1.459441in}}% -\pgfpathlineto{\pgfqpoint{0.922317in}{1.447955in}}% -\pgfpathlineto{\pgfqpoint{0.977255in}{1.432096in}}% -\pgfpathlineto{\pgfqpoint{1.039185in}{1.410937in}}% -\pgfpathlineto{\pgfqpoint{1.116097in}{1.381211in}}% -\pgfpathlineto{\pgfqpoint{1.241955in}{1.328667in}}% -\pgfpathlineto{\pgfqpoint{1.380797in}{1.271746in}}% -\pgfpathlineto{\pgfqpoint{1.469697in}{1.238676in}}% -\pgfpathlineto{\pgfqpoint{1.547608in}{1.212952in}}% -\pgfpathlineto{\pgfqpoint{1.618528in}{1.192719in}}% -\pgfpathlineto{\pgfqpoint{1.685452in}{1.176794in}}% -\pgfpathlineto{\pgfqpoint{1.748381in}{1.164963in}}% -\pgfpathlineto{\pgfqpoint{1.807314in}{1.156972in}}% -\pgfpathlineto{\pgfqpoint{1.863250in}{1.152493in}}% -\pgfpathlineto{\pgfqpoint{1.915192in}{1.151401in}}% -\pgfpathlineto{\pgfqpoint{1.964136in}{1.153458in}}% -\pgfpathlineto{\pgfqpoint{2.009085in}{1.158380in}}% -\pgfpathlineto{\pgfqpoint{2.051038in}{1.165994in}}% -\pgfpathlineto{\pgfqpoint{2.090992in}{1.176379in}}% -\pgfpathlineto{\pgfqpoint{2.127950in}{1.189125in}}% -\pgfpathlineto{\pgfqpoint{2.162911in}{1.204375in}}% -\pgfpathlineto{\pgfqpoint{2.196872in}{1.222581in}}% -\pgfpathlineto{\pgfqpoint{2.229835in}{1.243857in}}% -\pgfpathlineto{\pgfqpoint{2.261799in}{1.268239in}}% -\pgfpathlineto{\pgfqpoint{2.293762in}{1.296564in}}% -\pgfpathlineto{\pgfqpoint{2.327724in}{1.330955in}}% -\pgfpathlineto{\pgfqpoint{2.368677in}{1.377168in}}% -\pgfpathlineto{\pgfqpoint{2.423615in}{1.439002in}}% -\pgfpathlineto{\pgfqpoint{2.444591in}{1.457728in}}% -\pgfpathlineto{\pgfqpoint{2.460573in}{1.467921in}}% -\pgfpathlineto{\pgfqpoint{2.473559in}{1.472628in}}% -\pgfpathlineto{\pgfqpoint{2.484546in}{1.473549in}}% -\pgfpathlineto{\pgfqpoint{2.495534in}{1.471251in}}% -\pgfpathlineto{\pgfqpoint{2.505522in}{1.466094in}}% -\pgfpathlineto{\pgfqpoint{2.516510in}{1.456841in}}% -\pgfpathlineto{\pgfqpoint{2.528496in}{1.442365in}}% -\pgfpathlineto{\pgfqpoint{2.541482in}{1.421636in}}% -\pgfpathlineto{\pgfqpoint{2.556465in}{1.391771in}}% -\pgfpathlineto{\pgfqpoint{2.575443in}{1.346664in}}% -\pgfpathlineto{\pgfqpoint{2.642367in}{1.179908in}}% -\pgfpathlineto{\pgfqpoint{2.654354in}{1.161187in}}% -\pgfpathlineto{\pgfqpoint{2.662345in}{1.153583in}}% -\pgfpathlineto{\pgfqpoint{2.668338in}{1.151382in}}% -\pgfpathlineto{\pgfqpoint{2.673332in}{1.152493in}}% -\pgfpathlineto{\pgfqpoint{2.678326in}{1.156976in}}% -\pgfpathlineto{\pgfqpoint{2.683321in}{1.165718in}}% -\pgfpathlineto{\pgfqpoint{2.689314in}{1.183573in}}% -\pgfpathlineto{\pgfqpoint{2.695307in}{1.212352in}}% -\pgfpathlineto{\pgfqpoint{2.701300in}{1.256368in}}% -\pgfpathlineto{\pgfqpoint{2.708292in}{1.333653in}}% -\pgfpathlineto{\pgfqpoint{2.719280in}{1.472196in}}% -\pgfpathlineto{\pgfqpoint{2.720279in}{1.473481in}}% -\pgfpathlineto{\pgfqpoint{2.722277in}{1.459537in}}% -\pgfpathlineto{\pgfqpoint{2.725273in}{1.387304in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.151360in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.151360in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.778809in}{1.479958in}}% +\pgfpathlineto{\pgfqpoint{0.828602in}{1.475328in}}% +\pgfpathlineto{\pgfqpoint{0.880387in}{1.467407in}}% +\pgfpathlineto{\pgfqpoint{0.936155in}{1.455696in}}% +\pgfpathlineto{\pgfqpoint{0.997898in}{1.439486in}}% +\pgfpathlineto{\pgfqpoint{1.070596in}{1.417072in}}% +\pgfpathlineto{\pgfqpoint{1.169186in}{1.383167in}}% +\pgfpathlineto{\pgfqpoint{1.400225in}{1.302696in}}% +\pgfpathlineto{\pgfqpoint{1.490849in}{1.275037in}}% +\pgfpathlineto{\pgfqpoint{1.571513in}{1.253580in}}% +\pgfpathlineto{\pgfqpoint{1.646203in}{1.236862in}}% +\pgfpathlineto{\pgfqpoint{1.715913in}{1.224372in}}% +\pgfpathlineto{\pgfqpoint{1.781640in}{1.215702in}}% +\pgfpathlineto{\pgfqpoint{1.843383in}{1.210669in}}% +\pgfpathlineto{\pgfqpoint{1.900147in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{1.952927in}{1.210605in}}% +\pgfpathlineto{\pgfqpoint{2.001724in}{1.215011in}}% +\pgfpathlineto{\pgfqpoint{2.047534in}{1.222202in}}% +\pgfpathlineto{\pgfqpoint{2.090356in}{1.232057in}}% +\pgfpathlineto{\pgfqpoint{2.130190in}{1.244399in}}% +\pgfpathlineto{\pgfqpoint{2.167037in}{1.258981in}}% +\pgfpathlineto{\pgfqpoint{2.202888in}{1.276524in}}% +\pgfpathlineto{\pgfqpoint{2.236747in}{1.296522in}}% +\pgfpathlineto{\pgfqpoint{2.270607in}{1.320174in}}% +\pgfpathlineto{\pgfqpoint{2.304466in}{1.347623in}}% +\pgfpathlineto{\pgfqpoint{2.342308in}{1.382404in}}% +\pgfpathlineto{\pgfqpoint{2.424965in}{1.460278in}}% +\pgfpathlineto{\pgfqpoint{2.443886in}{1.472813in}}% +\pgfpathlineto{\pgfqpoint{2.458824in}{1.479192in}}% +\pgfpathlineto{\pgfqpoint{2.471770in}{1.481443in}}% +\pgfpathlineto{\pgfqpoint{2.483721in}{1.480301in}}% +\pgfpathlineto{\pgfqpoint{2.494675in}{1.476203in}}% +\pgfpathlineto{\pgfqpoint{2.505629in}{1.468966in}}% +\pgfpathlineto{\pgfqpoint{2.517580in}{1.457374in}}% +\pgfpathlineto{\pgfqpoint{2.530526in}{1.440517in}}% +\pgfpathlineto{\pgfqpoint{2.545464in}{1.415946in}}% +\pgfpathlineto{\pgfqpoint{2.564385in}{1.378434in}}% +\pgfpathlineto{\pgfqpoint{2.598244in}{1.302559in}}% +\pgfpathlineto{\pgfqpoint{2.623141in}{1.250407in}}% +\pgfpathlineto{\pgfqpoint{2.638079in}{1.225864in}}% +\pgfpathlineto{\pgfqpoint{2.648037in}{1.214516in}}% +\pgfpathlineto{\pgfqpoint{2.656004in}{1.209662in}}% +\pgfpathlineto{\pgfqpoint{2.661979in}{1.209352in}}% +\pgfpathlineto{\pgfqpoint{2.666959in}{1.211923in}}% +\pgfpathlineto{\pgfqpoint{2.671938in}{1.217767in}}% +\pgfpathlineto{\pgfqpoint{2.677913in}{1.230396in}}% +\pgfpathlineto{\pgfqpoint{2.683888in}{1.251298in}}% +\pgfpathlineto{\pgfqpoint{2.689863in}{1.283737in}}% +\pgfpathlineto{\pgfqpoint{2.696834in}{1.341847in}}% +\pgfpathlineto{\pgfqpoint{2.710776in}{1.481369in}}% +\pgfpathlineto{\pgfqpoint{2.712768in}{1.469582in}}% +\pgfpathlineto{\pgfqpoint{2.715756in}{1.408523in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.209077in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1426,15 +1252,15 @@ \definecolor{currentstroke}{rgb}{1.000000,0.647059,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{1.151360in}}% -\pgfpathlineto{\pgfqpoint{2.739978in}{0.709346in}}% -\pgfpathlineto{\pgfqpoint{2.746805in}{0.536003in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480388in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480388in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{2.730426in}{0.835162in}}% +\pgfpathlineto{\pgfqpoint{2.737243in}{0.688588in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.641897in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.641897in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1442,37 +1268,34 @@ \definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{0.480388in}}% -\pgfpathlineto{\pgfqpoint{2.756998in}{0.398490in}}% -\pgfpathlineto{\pgfqpoint{2.759965in}{0.373708in}}% -\pgfpathlineto{\pgfqpoint{2.760954in}{0.373969in}}% -\pgfpathlineto{\pgfqpoint{2.768865in}{0.418088in}}% -\pgfpathlineto{\pgfqpoint{2.776777in}{0.445199in}}% -\pgfpathlineto{\pgfqpoint{2.784689in}{0.461928in}}% -\pgfpathlineto{\pgfqpoint{2.792600in}{0.471986in}}% -\pgfpathlineto{\pgfqpoint{2.800512in}{0.477584in}}% -\pgfpathlineto{\pgfqpoint{2.809413in}{0.480262in}}% -\pgfpathlineto{\pgfqpoint{2.820291in}{0.480059in}}% -\pgfpathlineto{\pgfqpoint{2.834137in}{0.476323in}}% -\pgfpathlineto{\pgfqpoint{2.852927in}{0.467773in}}% -\pgfpathlineto{\pgfqpoint{2.886552in}{0.448435in}}% -\pgfpathlineto{\pgfqpoint{2.959734in}{0.406057in}}% -\pgfpathlineto{\pgfqpoint{3.006216in}{0.383080in}}% -\pgfpathlineto{\pgfqpoint{3.036873in}{0.370620in}}% -\pgfpathlineto{\pgfqpoint{3.085332in}{0.388800in}}% -\pgfpathlineto{\pgfqpoint{3.137747in}{0.405140in}}% -\pgfpathlineto{\pgfqpoint{3.195107in}{0.419767in}}% -\pgfpathlineto{\pgfqpoint{3.259389in}{0.432926in}}% -\pgfpathlineto{\pgfqpoint{3.332572in}{0.444663in}}% -\pgfpathlineto{\pgfqpoint{3.415645in}{0.454798in}}% -\pgfpathlineto{\pgfqpoint{3.512563in}{0.463443in}}% -\pgfpathlineto{\pgfqpoint{3.627282in}{0.470496in}}% -\pgfpathlineto{\pgfqpoint{3.766725in}{0.475859in}}% -\pgfpathlineto{\pgfqpoint{3.940782in}{0.479318in}}% -\pgfpathlineto{\pgfqpoint{4.167253in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{4.484709in}{0.478977in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.476474in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.476474in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{0.641897in}}% +\pgfpathlineto{\pgfqpoint{2.747385in}{0.572668in}}% +\pgfpathlineto{\pgfqpoint{2.750343in}{0.551719in}}% +\pgfpathlineto{\pgfqpoint{2.751329in}{0.551940in}}% +\pgfpathlineto{\pgfqpoint{2.759217in}{0.589234in}}% +\pgfpathlineto{\pgfqpoint{2.767105in}{0.612151in}}% +\pgfpathlineto{\pgfqpoint{2.774992in}{0.626293in}}% +\pgfpathlineto{\pgfqpoint{2.782880in}{0.634794in}}% +\pgfpathlineto{\pgfqpoint{2.791754in}{0.639917in}}% +\pgfpathlineto{\pgfqpoint{2.801614in}{0.641963in}}% +\pgfpathlineto{\pgfqpoint{2.813446in}{0.641168in}}% +\pgfpathlineto{\pgfqpoint{2.829221in}{0.636806in}}% +\pgfpathlineto{\pgfqpoint{2.852885in}{0.626689in}}% +\pgfpathlineto{\pgfqpoint{2.998810in}{0.558502in}}% +\pgfpathlineto{\pgfqpoint{3.026417in}{0.549109in}}% +\pgfpathlineto{\pgfqpoint{3.078674in}{0.565615in}}% +\pgfpathlineto{\pgfqpoint{3.135861in}{0.580381in}}% +\pgfpathlineto{\pgfqpoint{3.198964in}{0.593453in}}% +\pgfpathlineto{\pgfqpoint{3.270941in}{0.605140in}}% +\pgfpathlineto{\pgfqpoint{3.353763in}{0.615363in}}% +\pgfpathlineto{\pgfqpoint{3.450389in}{0.624079in}}% +\pgfpathlineto{\pgfqpoint{3.565749in}{0.631263in}}% +\pgfpathlineto{\pgfqpoint{3.705758in}{0.636764in}}% +\pgfpathlineto{\pgfqpoint{3.881263in}{0.640439in}}% +\pgfpathlineto{\pgfqpoint{4.111982in}{0.642013in}}% +\pgfpathlineto{\pgfqpoint{4.439328in}{0.640922in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.638589in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.638589in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1482,8 +1305,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1493,8 +1316,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1504,8 +1327,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1515,8 +1338,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \end{pgfpicture}% diff --git a/buch/papers/ellfilter/python/elliptic2.py b/buch/papers/ellfilter/python/elliptic2.py index 20a7428..3d9065d 100644 --- a/buch/papers/ellfilter/python/elliptic2.py +++ b/buch/papers/ellfilter/python/elliptic2.py @@ -29,6 +29,9 @@ def ellip_filter(N, mode=-1): fs=None ) + print("poles", a) + print("zeros", b) + if mode == 0: w = np.linspace(0*omega_c,omega_c, 2000) elif mode == 1: @@ -80,12 +83,12 @@ axs[0].add_patch(Rectangle( )) zeros = [0,0.87,0.995] -poles = [1.01,1.155] +poles = [1.01,1.155, 2.05] import matplotlib.transforms axs[0].plot( # mark errors as vertical bars zeros, - np.zeros_like(zeros), + np.zeros_like(zeros)-0.075, "o", mfc='none', color='black', @@ -93,10 +96,11 @@ axs[0].plot( # mark errors as vertical bars axs[0].transData, axs[0].transAxes, ), + clip_on=False, ) axs[0].plot( # mark errors as vertical bars poles, - np.ones_like(poles), + np.ones_like(poles)+0.075, "x", mfc='none', color='black', @@ -104,6 +108,7 @@ axs[0].plot( # mark errors as vertical bars axs[0].transData, axs[0].transAxes, ), + clip_on=False, ) for mode, c in enumerate(["green", "orange", "red"]): @@ -135,17 +140,19 @@ axs[1].add_patch(Rectangle( axs[0].set_xlim([0,2]) axs[0].set_ylim([1e-4,1e6]) +axs[0].tick_params(bottom = False) axs[0].grid() -axs[0].set_ylabel("$F^2_N(w)$") +axs[0].set_ylabel("$|F_N(w)|^2$") axs[1].grid() axs[1].set_ylim([0,1]) axs[1].set_ylabel("$|H(w)|$") +axs[1].set_xlabel("$w$") plt.tight_layout() plt.savefig("elliptic.pgf") plt.show() -print("zeros", a) -print("poles", b) +print("poles", a) +print("zeros", b) diff --git a/buch/papers/ellfilter/python/elliptic3.py b/buch/papers/ellfilter/python/elliptic3.py new file mode 100644 index 0000000..10accbb --- /dev/null +++ b/buch/papers/ellfilter/python/elliptic3.py @@ -0,0 +1,101 @@ +# %% + +import matplotlib.pyplot as plt +import scipy.signal +import numpy as np +import matplotlib +from matplotlib.patches import Rectangle +import scipy.special +import scipyx as spx + +# import plot_params + +def last_color(): + return plt.gca().lines[-1].get_color() + +# define elliptic functions + +def ell_int(k): + """ Calculate K(k) """ + m = k**2 + return scipy.special.ellipk(m) + +def sn(z, k): + return spx.ellipj(z, k**2)[0] + +def cn(z, k): + return spx.ellipj(z, k**2)[1] + +def dn(z, k): + return spx.ellipj(z, k**2)[2] + +def cd(z, k): + sn, cn, dn, ph = spx.ellipj(z, k**2) + return cn / dn + +N = 6 +L = (N//2) * 2 +r = N - L + +k = 0.9143 + +i = np.arange(1, L+1) +ui = (2*i - 1) / N +k1 = k**N * np.prod(sn(ui*ell_int(k), k)**4) +k1 = 0.0165 +k1 = 0.0058 + + +kp = np.sqrt(1-k**2) +k1p = np.sqrt(1-k1**2) + +K = ell_int(k) +Kp = ell_int(kp) +K1 = ell_int(k1) +K1p = ell_int(k1p) + +# assert np.allclose(Kp*K1*N/K, K1p, rtol=0.001) + +zeros = K/N * (np.arange(N)*2 + 1) +poles = zeros + (1j * Kp) +# if len(poles) % 2 == 0: +# poles = np.delete(poles, len(poles)//2) + + +plt.plot(np.real(zeros), np.imag(zeros), "o") +plt.plot(np.real(poles), np.imag(poles), "x") +# plt.plot([0,K1], [0,K1p]) +# plt.plot([0,K], [0,Kp]) +plt.show() + +zeros = cd(zeros, k) +poles = cd(poles, k) + +plt.plot(np.real(zeros), np.imag(zeros), "o") +plt.plot(np.real(poles), np.imag(poles), "x") +plt.ylim([-0.1,0.1]) +plt.xlim([-2.5,2.5]) +plt.show() + +w = np.linspace(0,2, 2000) + +def make_RN(w): + y = np.prod(w[:, None] - zeros[None], axis=-1) / np.prod(w[:, None] - poles[None], axis=-1) + y /= np.prod(1 - zeros) / np.prod(1 - poles) + return y + + +RN = make_RN(w) + +plt.semilogy(w, np.abs(RN)) +plt.ylim([0.1,1000]) + +plt.plot(w, np.ones_like(w) / k1) + +plt.show() + +H = 1 / (1 + RN**2) + +plt.semilogy(w, np.abs(H)) +plt.ylim([0.00001,1]) +plt.show() diff --git a/buch/papers/ellfilter/tikz/arccos.tikz.tex b/buch/papers/ellfilter/tikz/arccos.tikz.tex index b11c25d..538ac35 100644 --- a/buch/papers/ellfilter/tikz/arccos.tikz.tex +++ b/buch/papers/ellfilter/tikz/arccos.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} @@ -22,6 +22,19 @@ \clip(-7.5,-2) rectangle (7.5,2); + \foreach \i in {-2,...,1} { + \begin{scope}[xshift=\i*4cm] + \draw[->, thick, darkgreen!50] (-1, 0) -- (0,0); + \draw[->, thick, orange!50] (0, 0) -- (0,1.5); + \draw[->, thick, orange!50] (0, 0) -- (0,-1.5); + \draw[->, thick, darkgreen!50] (1, 0) -- (0,0); + \draw[->, thick, cyan!50] (2, 0) -- (1,0); + \draw[->, thick, blue!50] (2,1.5) -- (2, 0); + \draw[->, thick, blue!50] (2,-1.5) -- (2, 0); + \draw[->, thick, cyan!50] (2, 0) -- (3,0); + \end{scope} + } + % \pause \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); % \pause @@ -34,16 +47,6 @@ \foreach \i in {-2,...,1} { \begin{scope}[xshift=\i*4cm] - \begin{scope}[] - \draw[->, darkgreen] (-1, 0) -- (0,0); - \draw[->, orange] (0, 0) -- (0,1.5); - \draw[->, orange] (0, 0) -- (0,-1.5); - \draw[->, darkgreen] (1, 0) -- (0,0); - \draw[->, cyan] (2, 0) -- (1,0); - \draw[->, blue] (2,1.5) -- (2, 0); - \draw[->, blue] (2,-1.5) -- (2, 0); - \draw[->, cyan] (2, 0) -- (3,0); - \end{scope} \node[zero] at (1,0) {}; \node[zero] at (3,0) {}; \end{scope} diff --git a/buch/papers/ellfilter/tikz/arccos2.tikz.tex b/buch/papers/ellfilter/tikz/arccos2.tikz.tex index 2cec75f..d0e0430 100644 --- a/buch/papers/ellfilter/tikz/arccos2.tikz.tex +++ b/buch/papers/ellfilter/tikz/arccos2.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} diff --git a/buch/papers/ellfilter/tikz/cd.tikz.tex b/buch/papers/ellfilter/tikz/cd.tikz.tex index 0cf2417..ffe3b9c 100644 --- a/buch/papers/ellfilter/tikz/cd.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -9,63 +9,59 @@ \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; - \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) 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} - - \begin{scope}[xshift=0cm] - - \clip(-4.5,-1.25) rectangle (4.5,1.25); - - \fill[yellow!30] (0,0) rectangle (1, 0.5); - - \foreach \i in {-2,...,1} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \draw[->, orange!50] (0, 0) -- (0,0.5); - \draw[->, darkgreen!50] (1, 0) -- (0,0); - \draw[->, cyan!50] (2, 0) -- (1,0); - \draw[->, blue!50] (2,0.5) -- (2, 0); - \draw[->, purple!50] (1, 0.5) -- (2,0.5); - \draw[->, red!50] (0, 0.5) -- (1,0.5); - \draw[->, orange!50] (0,1) -- (0,0.5); - \draw[->, blue!50] (2,0.5) -- (2, 1); - \draw[->, purple!50] (3, 0.5) -- (2,0.5); - \draw[->, red!50] (4, 0.5) -- (3,0.5); - \draw[->, cyan!50] (2, 0) -- (3,0); - \draw[->, darkgreen!50] (3, 0) -- (4,0); - \end{scope} - } + \begin{scope}[xshift=0cm] + + \clip(-4.5,-1.25) rectangle (4.5,1.25); + + \fill[yellow!30] (0,0) rectangle (1, 0.5); + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[->, thick, orange!50] (0, 0) -- (0,0.5); + \draw[->, thick, darkgreen!50] (1, 0) -- (0,0); + \draw[->, thick, cyan!50] (2, 0) -- (1,0); + \draw[->, thick, blue!50] (2,0.5) -- (2, 0); + \draw[->, thick, purple!50] (1, 0.5) -- (2,0.5); + \draw[->, thick, red!50] (0, 0.5) -- (1,0.5); + \draw[->, thick, orange!50] (0,1) -- (0,0.5); + \draw[->, thick, blue!50] (2,0.5) -- (2, 1); + \draw[->, thick, purple!50] (3, 0.5) -- (2,0.5); + \draw[->, thick, red!50] (4, 0.5) -- (3,0.5); + \draw[->, thick, cyan!50] (2, 0) -- (3,0); + \draw[->, thick, darkgreen!50] (3, 0) -- (4,0); + \end{scope} } - - \draw[ultra thick, ->, orange] (0, 0) -- (0,0.5); - \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); - \draw[ultra thick, ->, cyan] (2, 0) -- (1,0); - \draw[ultra thick, ->, blue] (2,0.5) -- (2, 0); - \draw[ultra thick, ->, purple] (1, 0.5) -- (2,0.5); - \draw[ultra thick, ->, red] (0, 0.5) -- (1,0.5); - - \foreach \i in {-2,...,1} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \node[zero] at ( 1, 0) {}; - \node[zero] at ( 3, 0) {}; - \node[pole] at ( 1,0.5) {}; - \node[pole] at ( 3,0.5) {}; - - \end{scope} - } + } + + \draw[ultra thick, ->, orange] (0, 0) -- (0,0.5); + \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); + \draw[ultra thick, ->, cyan] (2, 0) -- (1,0); + \draw[ultra thick, ->, blue] (2,0.5) -- (2, 0); + \draw[ultra thick, ->, purple] (1, 0.5) -- (2,0.5); + \draw[ultra thick, ->, red] (0, 0.5) -- (1,0.5); + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + + \end{scope} } - - \end{scope} + } \end{scope} + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north west] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=south east]{\small $jK^\prime$}; + \end{scope} + \node[zero] at (4,3) (n) {}; \node[anchor=west] at (n.east) {Nullstelle}; \node[pole, below=0.25cm of n] (n) {}; diff --git a/buch/papers/ellfilter/tikz/cd2.tikz.tex b/buch/papers/ellfilter/tikz/cd2.tikz.tex index d4187c4..47efa53 100644 --- a/buch/papers/ellfilter/tikz/cd2.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd2.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\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] @@ -7,11 +7,15 @@ \begin{scope}[xscale=1.25, yscale=3.5] + \fill[orange!30] (0,0) rectangle (5, 0.5); + % \fill[yellow!30] (0,0) rectangle (1, 0.1); + \node[] at (2.5, 0.25) {\small $N=5$}; + \draw[gray, ->] (0,-0.55) -- (0,1.05) node[anchor=south]{$\mathrm{Im}~z_1$}; \draw[gray, ->] (-1.5,0) -- (6,0) node[anchor=west]{$\mathrm{Re}~z_1$}; - \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $K_1$}; - \draw[gray] ( 5,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $5K_1$}; + \draw[gray] ( 1,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $K_1$}; + \draw[gray] ( 5,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $5K_1$}; \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime_1$}; \begin{scope} @@ -34,9 +38,6 @@ % \node[] at (1.5, 0.25) {\small $N=2$}; % \node[] at (2.5, 0.25) {\small $N=3$}; - \fill[orange!30] (0,0) rectangle (5, 0.5); - % \fill[yellow!30] (0,0) rectangle (1, 0.1); - \node[] at (2.5, 0.25) {\small $N=5$}; \draw[decorate,decoration={brace,amplitude=3pt,mirror}, yshift=0.05cm] diff --git a/buch/papers/ellfilter/tikz/cd3.tikz.tex b/buch/papers/ellfilter/tikz/cd3.tikz.tex index ae18519..158a5ec 100644 --- a/buch/papers/ellfilter/tikz/cd3.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd3.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\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] diff --git a/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex b/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex index 2a36ee0..329cadd 100644 --- a/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex +++ b/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] diff --git a/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex b/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex index 20c2d82..31c40dc 100644 --- a/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex +++ b/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex @@ -4,7 +4,7 @@ \def\nn{2} \def\a{2.5} -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\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] diff --git a/buch/papers/ellfilter/tikz/filter.tikz.tex b/buch/papers/ellfilter/tikz/filter.tikz.tex index 769602a..1232bf0 100644 --- a/buch/papers/ellfilter/tikz/filter.tikz.tex +++ b/buch/papers/ellfilter/tikz/filter.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -14,8 +14,7 @@ \draw[gray, ->] (0,0) -- (0,1.25) node[anchor=south]{$|H(\Omega)|$}; \draw[gray, ->] (0,0) -- (2.75,0) node[anchor=west]{$\Omega$}; - \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -| (1,0) node[below] {$\Omega_p$}; - \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -| (1,0) node[below] {$\Omega_p$}; + \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -- (1, 0.707) (1,0) node[below] {$\Omega_p$}; \node[left] at(0,1) {$1$}; diff --git a/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex index 921dbfa..1d1e45e 100644 --- a/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex +++ b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] 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} diff --git a/buch/papers/ellfilter/tikz/sn.tikz.tex b/buch/papers/ellfilter/tikz/sn.tikz.tex index 0546fda..c34b619 100644 --- a/buch/papers/ellfilter/tikz/sn.tikz.tex +++ b/buch/papers/ellfilter/tikz/sn.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -6,66 +6,65 @@ \begin{scope}[xscale=0.9, yscale=1.8] + \fill[yellow!30] (0,0) rectangle (1, 0.5); + \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; - \begin{scope} - - \clip(-4.5,-1.25) rectangle (4.5,1.25); - - \fill[yellow!30] (0,0) rectangle (1, 0.5); - - \begin{scope}[xshift=-1cm] - - \foreach \i in {-2,...,2} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \draw[<-, blue!50] (0, 0) -- (0,0.5); - \draw[<-, cyan!50] (1, 0) -- (0,0); - \draw[<-, darkgreen!50] (2, 0) -- (1,0); - \draw[<-, orange!50] (2,0.5) -- (2, 0); - \draw[<-, red!50] (1, 0.5) -- (2,0.5); - \draw[<-, purple!50] (0, 0.5) -- (1,0.5); - \draw[<-, blue!50] (0,1) -- (0,0.5); - \draw[<-, orange!50] (2,0.5) -- (2, 1); - \draw[<-, red!50] (3, 0.5) -- (2,0.5); - \draw[<-, purple!50] (4, 0.5) -- (3,0.5); - \draw[<-, darkgreen!50] (2, 0) -- (3,0); - \draw[<-, cyan!50] (3, 0) -- (4,0); - \end{scope} - } - } - % \pause - \draw[ultra thick, <-, darkgreen] (2, 0) -- (1,0); - % \pause - \draw[ultra thick, <-, orange] (2,0.5) -- (2, 0); - % \pause - \draw[ultra thick, <-, red] (1, 0.5) -- (2,0.5); - % \pause - \draw[ultra thick, <-, blue] (0, 0) -- (0,0.5); - \draw[ultra thick, <-, purple] (0, 0.5) -- (1,0.5); - \draw[ultra thick, <-, cyan] (1, 0) -- (0,0); - % \pause - - - \foreach \i in {-2,...,2} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \node[zero] at ( 1, 0) {}; - \node[zero] at ( 3, 0) {}; - \node[pole] at ( 1,0.5) {}; - \node[pole] at ( 3,0.5) {}; - \end{scope} - } - } + \clip(-4.5,-1.25) rectangle (4.5,1.25); + - \end{scope} + \begin{scope}[xshift=-1cm] + + \foreach \i in {-2,...,2} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[<-, thick, blue!50] (0, 0) -- (0,0.5); + \draw[<-, thick, cyan!50] (1, 0) -- (0,0); + \draw[<-, thick, darkgreen!50] (2, 0) -- (1,0); + \draw[<-, thick, orange!50] (2,0.5) -- (2, 0); + \draw[<-, thick, red!50] (1, 0.5) -- (2,0.5); + \draw[<-, thick, purple!50] (0, 0.5) -- (1,0.5); + \draw[<-, thick, blue!50] (0,1) -- (0,0.5); + \draw[<-, thick, orange!50] (2,0.5) -- (2, 1); + \draw[<-, thick, red!50] (3, 0.5) -- (2,0.5); + \draw[<-, thick, purple!50] (4, 0.5) -- (3,0.5); + \draw[<-, thick, darkgreen!50] (2, 0) -- (3,0); + \draw[<-, thick, cyan!50] (3, 0) -- (4,0); + \end{scope} + } + } + + % \pause + \draw[ultra thick, <-, darkgreen] (2, 0) -- (1,0); + % \pause + \draw[ultra thick, <-, orange] (2,0.5) -- (2, 0); + % \pause + \draw[ultra thick, <-, red] (1, 0.5) -- (2,0.5); + % \pause + \draw[ultra thick, <-, blue] (0, 0) -- (0,0.5); + \draw[ultra thick, <-, purple] (0, 0.5) -- (1,0.5); + \draw[ultra thick, <-, cyan] (1, 0) -- (0,0); + % \pause + + + \foreach \i in {-2,...,2} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + \end{scope} + } + } \end{scope} - \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) 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$}; + + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north west] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=south east]{\small $jK^\prime$}; \end{scope} diff --git a/buch/papers/ellfilter/tschebyscheff.tex b/buch/papers/ellfilter/tschebyscheff.tex index 639c87c..0a48949 100644 --- a/buch/papers/ellfilter/tschebyscheff.tex +++ b/buch/papers/ellfilter/tschebyscheff.tex @@ -2,7 +2,7 @@ Als Einstieg betrachten wir das Tschebyscheff-Filter, welches sehr verwandt ist mit dem elliptischen Filter. Genauer ausgedrückt erhält man die Tschebyscheff-1 und -2 Filter bei Grenzwerten von Parametern beim elliptischen Filter. -Der Name des Filters deutet schon an, dass die Tschebyscheff-Polynome $T_N$ (siehe auch Kapitel \label{buch:polynome:section:tschebyscheff}) für das Filter relevant sind: +Der Name des Filters deutet schon an, dass die Tschebyscheff-Polynome $T_N$ (siehe auch Kapitel \ref{buch:polynome:section:tschebyscheff}) für das Filter relevant sind: \begin{align} T_{0}(x)&=1\\ T_{1}(x)&=x\\ @@ -17,7 +17,7 @@ Bemerkenswert ist, dass die Polynome im Intervall $[-1, 1]$ mit der trigonometri \end{align} übereinstimmen. Der Zusammenhang lässt sich mit den Doppel- und Mehrfachwinkelfunktionen der trigonometrischen Funktionen erklären. -Abbildung \ref{ellfilter:fig:chebychef_polynomials} zeigt einige Tschebyscheff-Polynome. +Abbildung \ref{ellfilter:fig:chebychef_polynomials} zeigt einige Tschebyscheff-Polynome, wobei das Equiripple-Verhalten schon sichtbar ist. \begin{figure} \centering \input{papers/ellfilter/python/F_N_chebychev2.pgf} @@ -37,7 +37,6 @@ Wenn wir die Tschebyscheff-Polynome quadrieren, passen sie perfekt in die Forder Die analytische Fortsetzung von \eqref{ellfilter:eq:chebychef_polynomials} über das Intervall $[-1,1]$ hinaus stimmt mit den Polynomen überein, wie es zu erwarten ist. Die genauere Betrachtung wird uns helfen die elliptischen Filter besser zu verstehen. - Starten wir mit der Funktion, die in \eqref{ellfilter:eq:chebychef_polynomials} als erstes auf $w$ angewendet wird, dem Arcuscosinus. Die invertierte Funktion des Kosinus kann als bestimmtes Integral dargestellt werden: \begin{align} @@ -63,7 +62,7 @@ Die invertierte Funktion des Kosinus kann als bestimmtes Integral dargestellt we ~dz + \frac{\pi}{2}. \end{align} -Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$ +Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$, \begin{equation} \frac{ -1 @@ -71,7 +70,7 @@ Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$ \sqrt{ 1-z^2 } - } + }, \end{equation} bestimmt dabei die Richtung, in welche die Funktion verläuft. Der reelle Arcuscosinus is bekanntlich nur für $|z| \leq 1$ definiert. @@ -91,19 +90,19 @@ Das Einzeichnen von Pol- und Nullstellen ist hilfreich für die Betrachtung der In \eqref{ellfilter:eq:chebychef_polynomials} wird $z$ mit dem Ordnungsfaktor $N$ multipliziert und durch die Kosinusfunktion zurück transformiert. -Die Skalierung hat zur folge, dass bei der Rücktransformation durch den Kosinus mehrere Nullstellen durchlaufen werden. -Somit passiert $\cos( N~\cos^{-1}(w))$ im Intervall $[-1, 1]$ $N$ Nullstellen, wie dargestellt in Abbildung \ref{ellfilter:fig:arccos2}. +Die Skalierung hat zur Folge, dass bei der Rücktransformation durch den Kosinus mehrere Nullstellen durchlaufen werden. +Somit passiert $\cos \big( N~\cos^{-1}(w) \big)$ im Intervall $[-1, 1]$ $N$ Nullstellen, wie dargestellt in Abbildung \ref{ellfilter:fig:arccos2}. \begin{figure} \centering \input{papers/ellfilter/tikz/arccos2.tikz.tex} \caption{ $z_1=N \cos^{-1}(w)$-Ebene der Tschebyscheff-Funktion. Die eingefärbten Pfade sind Verläufe von $w\in(-\infty, \infty)$ für $N = 4$. - Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert die zu Equirippel-Verhalten führen. + Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert die zu Equiripple-Verhalten führen. Die vertikalen Segmente der Funktion sorgen für das Ansteigen der Funktion gegen $\infty$ nach der Grenzfrequenz. Die eingezeichneten Nullstellen sind vom zurücktransformierenden Kosinus. } \label{ellfilter:fig:arccos2} \end{figure} -Durch die spezielle Anordnung der Nullstellen hat die Funktion auf der reellen Achse Equirippel-Verhalten und ist dennoch ein Polynom, was sich perfekt für linear Filter eignet. -Equirippel bedeutet, dass alle lokalen Maxima der Betragsfunktion gleich gross sind. +Durch die spezielle Anordnung der Nullstellen hat die Funktion auf der reellen Achse Equiripple-Verhalten und ist dennoch ein Polynom, was sich perfekt für lineare Filter eignet. +Für $|w| <= 1$ ist die Funktion begrenzt zwischen $-1$ und $1$. diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 2ded50b..bff91ef 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -107,7 +107,7 @@ the surface of the unit sphere. Now that we have defined an operator, we can go and study its eigenfunctions, which means that we would like to find the functions $f(\vartheta, \varphi)$ that satisfy the equation -\begin{equation} \label{kuvel:eqn:eigen} +\begin{equation} \label{kugel:eqn:eigen} \surflaplacian f = -\lambda f. \end{equation} Perhaps it may not be obvious at first glance, but we are in fact dealing with a @@ -178,7 +178,7 @@ write the solutions The restriction that the separation constant $m$ needs to be an integer arises from the fact that we require a $2\pi$-periodicity in $\varphi$ since the coordinate systems requires that $\Phi(\varphi + 2\pi) = \Phi(\varphi)$. -Unfortunately, solving \eqref{kugel:eqn:ode-theta} is as straightforward, +Unfortunately, solving \eqref{kugel:eqn:ode-theta} is not as straightforward, actually, it is quite difficult, and the process is so involved that it will require a dedicated section of its own. @@ -220,7 +220,7 @@ and $\lambda = n(n+1)$, we obtain what is known in the literature as the \emph{associated Legendre equation of order $m$}: \nocite{olver_introduction_2013} \begin{equation} \label{kugel:eqn:associated-legendre} - (1 - z^2)\frac{d^2 Z}{dz} + (1 - z^2)\frac{d^2 Z}{dz^2} - 2z\frac{d Z}{dz} + \left( n(n + 1) - \frac{m^2}{1 - z^2} \right) Z(z) = 0, \quad @@ -236,7 +236,7 @@ This reduces the problem because it removes the double pole, which is always tricky to deal with. In fact, the reduced problem when $m = 0$ is known as the \emph{Legendre equation}: \begin{equation} \label{kugel:eqn:legendre} - (1 - z^2)\frac{d^2 Z}{dz} + (1 - z^2)\frac{d^2 Z}{dz^2} - 2z\frac{d Z}{dz} + n(n + 1) Z(z) = 0, \quad @@ -250,7 +250,7 @@ case of the former that is known known as the \emph{Legendre polynomials}, since we only need a solution between $-1$ and $1$. \begin{lemma}[Legendre polynomials] - \label{kugel:lem:legendre-poly} + \label{kugel:thm:legendre-poly} The polynomial function \[ P_n(z) = \sum^{\lfloor n/2 \rfloor}_{k=0} @@ -275,7 +275,7 @@ Further, there are a few more interesting but not very relevant forms to write $P_n(z)$ such as \emph{Rodrigues' formula} and \emph{Laplace's integral representation} which are \begin{equation*} - P_n(z) = \frac{1}{2^n} \frac{d^n}{dz^n} (x^2 - 1)^n, + P_n(z) = \frac{1}{2^n n!} \frac{d^n}{dz^n} (z^2 - 1)^n, \qquad \text{and} \qquad P_n(z) = \frac{1}{\pi} \int_0^\pi \left( z + \cos\vartheta \sqrt{z^2 - 1} @@ -287,7 +287,7 @@ Legendre equation, we can make use of the following lemma patch the solutions such that they also become solutions of the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. -\begin{lemma} \label{kugel:lem:extend-legendre} +\begin{lemma} \label{kugel:thm:extend-legendre} If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, then \begin{equation*} @@ -300,7 +300,7 @@ such that they also become solutions of the associated Legendre equation See section \ref{kugel:sec:proofs:legendre}. \end{proof} -What is happening in lemma \ref{kugel:lem:extend-legendre}, is that we are +What is happening in lemma \ref{kugel:thm:extend-legendre}, is that we are essentially inserting a square root function in the solution in order to be able to reach the parts of the domain near the poles at $\pm 1$ of the associated Legendre equation, which is not possible only using power series @@ -312,8 +312,8 @@ obtain the \emph{associated Legendre functions}. \label{kugel:def:ferrers-functions} The functions \begin{equation} - P^m_n (z) = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) - = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n + P^m_n (z) = (1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) + = \frac{1}{2^n n!}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n \end{equation} are known as Ferrers or associated Legendre functions. \end{definition} @@ -356,9 +356,10 @@ $Y^m_n(\vartheta, \varphi)$. \label{kugel:def:spherical-harmonics} The functions \begin{equation*} - Y_{m,n}(\vartheta, \varphi) = P^m_n(\cos \vartheta) e^{im\varphi}, + Y^m_n (\vartheta, \varphi) = P^m_n(\cos \vartheta) e^{im\varphi}, \end{equation*} - where $m, n \in \mathbb{Z}$ and $|m| < n$ are called spherical harmonics. + where $m, n \in \mathbb{Z}$ and $|m| < n$ are called (unnormalized) spherical + harmonics. \end{definition} \begin{figure} @@ -366,45 +367,358 @@ $Y^m_n(\vartheta, \varphi)$. \kugelplaceholderfig{\textwidth}{.8\paperheight} \caption{ \kugeltodo{Big picture with the first few spherical harmonics.} + \label{kugel:fig:spherical-harmonics} } \end{figure} -\subsection{Normalization} +\kugeltodo{Describe how they look like with fig. +\ref{kugel:fig:spherical-harmonics}} -\kugeltodo{Discuss various normalizations.} +\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} -\if 0 -As explained in the chapter \ref{}, the concept of orthogonality is very important and at the practical level it is very useful, because it allows us to develop very powerful techniques at the mathematical level.\newline -Throughout this book we have been confronted with the Sturm-Liouville theory (see chapter \ref{}). The latter, among other things, carries with it the concept of orthogonality. Indeed, if we consider the solutions of the Sturm-Liouville equation, which can be expressed in this form -\begin{equation}\label{kugel:eq:sturm_liouville} - \mathcal{S}f := \frac{d}{dx}\left[p(x)\frac{df}{dx}\right]+q(x)f(x) -\end{equation} -possiamo dire che formano una base ortogonale.\newline -Adesso possiamo dare un occhiata alle due equazioni che abbiamo ottenuto tramite la Separation Ansatz (Eqs.\eqref{kugel:eq:associated_leg_eq}\eqref{kugel:eq:ODE_1}), le quali possono essere riscritte come: -\begin{align*} - \frac{d}{dx} \left[ (1-x^2) \cdot \frac{dP_{m,n}}{dx} \right] &+ \left(n(n+1)-\frac{m}{1-x^2} \right) \cdot P_{m,n}(x) = 0, \\ - \frac{d}{d\varphi} \left[ 1 \cdot \frac{ d\Phi }{d\varphi} \right] &+ 1 \cdot \Phi(\varphi) = 0. -\end{align*} -Si può concludere in modo diretto che sono due casi dell'equazione di Sturm-Liouville. Questo significa che le loro soluzioni sono ortogonali sotto l'inner product con weight function $w(x)=1$, dunque: -\begin{align} -\int_{0}^{2\pi} \Phi_m(\varphi)\Phi_m'(\varphi) d\varphi &= \delta_{m'm}, \nonumber \\ -\int_{-1}^1 P_{m,m'}(x)P_{n,n'}(x) dx &= \delta_{m'm}\delta_{n'n}. \label{kugel:eq:orthogonality_associated_func} -\end{align} -Inoltre, possiamo provare l'ortogonalità di $\Theta(\vartheta)$ utilizzando \eqref{kugel:eq:orthogonality_associated_func}: -\begin{align} - x -\end{align} -Ora, visto che la soluzione dell'eigenfunction problem è formata dalla moltiplicazione di $\Phi_m(\varphi)$ e $P_{m,n}(x)$ -\fi +We shall now discuss an important property of the spherical harmonics: they form +an orthogonal system. And since the spherical harmonics contain the Ferrers or +associated Legendre functions, we need to discuss their orthogonality first. +But the Ferrers functions themselves depend on the Legendre polynomials, so that +will be our starting point. -\subsection{Properties} +\begin{lemma} For the Legendre polynomials $P_n(z)$ and $P_k(z)$ it holds that + \label{kugel:thm:legendre-poly-ortho} + \begin{equation*} + \int_{-1}^1 P_n(z) P_k(z) \, dz + = \frac{2}{2n + 1} \delta_{nk} + = \begin{cases} + \frac{2}{2n + 1} & \text{if } n = k, \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + To start, consider the fact that the Legendre equation + \eqref{kugel:eqn:legendre}, of which two distinct Legendre polynomials + $P_n(z)$ and $P_k(z)$ are a solution ($n \neq k$), can be rewritten in the + following form: + \begin{equation} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dZ}{dz} + \right] + n(n+1) Z(z) = 0. + \end{equation} + So we rewrite the Legendre equations for $P_n(z)$ and $P_k(z)$: + \begin{align*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] + n(n+1) P_n(z) &= 0, + & + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] + k(k+1) P_k(z) &= 0, + \end{align*} + then we multiply the former by $P_k(z)$ and the latter by $P_n(z)$ and + subtract the two to get + \begin{equation*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + n(n+1) P_n(z) P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) = 0. + \end{equation*} + By grouping terms, making order and integrating with respect to $z$ from $-1$ + to 1 we obtain + \begin{gather} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) + \right\} \,dz \nonumber \\ + + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \label{kugel:thm:legendre-poly-ortho:proof:1} + \end{gather} + Since by the product rule + \begin{equation*} + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + = + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} \right] P_k(z) + + (1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}, + \end{equation*} + we can simplify the first term in + \eqref{kugel:thm:legendre-poly-ortho:proof:1} to get + \begin{gather*} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + - \cancel{(1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}} + - \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} P_k(z) \right] + + \cancel{(1 - z^2) \frac{dP_k}{dz} \frac{dP_n}{dz}} + \right\} \, dz \\ + = \int_{-1}^1 \frac{d}{dz} \left\{ (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \right\} \, dz + = (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \Bigg|_{-1}^1, + \end{gather*} + which always equals 0 because the product contains $1 - z^2$ and the bounds + are at $\pm 1$. Thus, of \eqref{kugel:thm:legendre-poly-ortho:proof:1} only + the second term remains and the equation becomes + \begin{equation*} + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \end{equation*} + By dividing by the constant in front of the integral we have our first result. + Now we need to show that when $n = k$ the integral equals $2 / (2n + 1)$. + % \begin{equation*} + % \end{equation*} + \kugeltodo{Finish proof. Can we do it without the generating function of + $P_n$?} +\end{proof} + +In a similarly algebraically tedious fashion, we can also continue to check for +orthogonality for the Ferrers functions $P^m_n(z)$, since they are related to +$P_n(z)$ by a $m$-th derivative, and obtain the following result. + +\begin{lemma} For the associated Legendre functions + \label{kugel:thm:associated-legendre-ortho} + \begin{equation*} + \int_{-1}^1 P^m_n(z) P^{m}_{n'}(z) \, dz + = \frac{2(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'} + = \begin{cases} + \frac{2(m + n)!}{(2n + 1)(n - m)!} + & \text{if } n = n', \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + To show that the expression equals zero when $n \neq n'$ we can perform + exactly the same steps as in the proof of lemma + \ref{kugel:thm:legendre-poly-ortho}, so we will not repeat them here and prove + instead only the case when $n = n'$. + \kugeltodo{Finish proof, or not? I have to look and decide if it is + interesting enough.} +\end{proof} + +By having the orthogonality relations of the Legendre functions we can finally +show that spherical harmonics are also orthogonal under the following inner +product: + +\begin{definition}[Inner product in $S^2$] + \label{kugel:def:inner-product-s2} + For 2 complex valued functions $f(\vartheta, \varphi)$ and $g(\vartheta, + \varphi)$ on the surface of the sphere the inner product is defined to be + \begin{equation*} + \langle f, g \rangle + = \int_{0}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta. + \end{equation*} +\end{definition} + + +\begin{theorem} For the (unnormalized) spherical harmonics + \label{kugel:thm:spherical-harmonics-ortho} + \begin{align*} + \langle Y^m_n, Y^{m'}_{n'} \rangle + &= \int_{0}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + \\ + &= \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} \delta_{mm'} + = \begin{cases} + \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} + & \text{if } n = n' \text{ and } m = m', \\ + 0 & \text{otherwise}. + \end{cases} + \end{align*} +\end{theorem} +\begin{proof} + We will begin by doing a bit of algebraic maipulaiton: + \begin{align*} + \int_{0}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + &= \int_{0}^\pi \int_0^{2\pi} + e^{im\varphi} P^m_n(\cos \vartheta) + e^{-im'\varphi} P^{m'}_{n'}(\cos \vartheta) + \, d\varphi \sin \vartheta \, d\vartheta + \\ + &= \int_{0}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) + \int_0^{2\pi} e^{i(m - m')\varphi} + \, d\varphi \sin \vartheta \, d\vartheta + . + \end{align*} + First, notice that the associated Legendre polynomials are assumed to be real, + and are thus unaffected by the complex conjugation. Then, we can see that when + $m = m'$ the inner integral simplifies to $\int_0^{2\pi} 1 \, d\varphi$ which + equals $2\pi$, so in this case the expression becomes + \begin{equation*} + 2\pi \int_{0}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) + \sin \vartheta \, d\vartheta + = -2\pi \int_{1}^{-1} P^m_n(z) P^{m'}_{n'}(z) \, dz + = \frac{4\pi(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'}, + \end{equation*} + where in the second step we performed the substitution $z = \cos\vartheta$; + $d\vartheta = \frac{d\vartheta}{dz} dz= - dz / \sin \vartheta$, and then we + used lemma \ref{kugel:thm:associated-legendre-ortho}. We are allowed to use + the lemma because $m = m'$. + + Now we just need look at the case when $m \neq m'$. Fortunately this is + easier: the inner integral is $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, + or in other words we are integrating a complex exponetial over the entire + period, which always results in zero. Thus, we do not need to do anything and + the proof is complete. +\end{proof} + +These proofs for the various orthogonality relations were quite long and +algebraically tedious, mainly because they are ``low level'', by which we mean +that they (arguably) do not rely on very abstract theory. However, if we allow +ourselves to use the more abstract Sturm Liouville theory discussed in chapters +\ref{buch:integrale:subsection:sturm-liouville-problem} and \kugeltodo{reference +to chapter 17 of haddouche and Löffler} the proofs can become ridiculously +short. Let's do for example lemma \ref{kugel:thm:associated-legendre-ortho}. + +\begin{proof}[ + Shorter proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials, of which we would like to prove an + orthogonality relation, are the solution to the associated Legendre equation, + which we can write as $LZ(z) = 0$, where + \begin{equation*} + L = \frac{d}{dz} (1 - z^2) \frac{d}{dz} + + n(n+1) - \frac{m^2}{1 - z^2}. + \end{equation*} + Notice that $L$ is in fact a Sturm-Liouville operator of the form + \begin{equation*} + L = \frac{1}{w(z)} \left[ + \frac{d}{dz} p(z) \frac{d}{dz} - \lambda + q(z) + \right], + \end{equation*} + if we let $w(z) = 1$, $p(z) = (1 - z^2 )$, $q(z) = -m^2 / (1 - z^2)$, and + $\lambda = -n(n+1)$. By the theory of Sturm-Liouville operators, we know that + the each solution of the problem $LZ(z) = 0$, namely $P^m_n(z)$, is orthogonal + to every other solution that has a different $\lambda$. In our case $\lambda$ + varies with $n$, so $P^m_n(z)$ with different $n$'s are orthogonal to each + other. +\end{proof} + +But that was still rather informative and had a bit of explanation, which is +terrible. Real snobs, such as Wikipedia contributors, some authors and +regrettably sometimes even ourselves, would write instead: + +\begin{proof}[ + Infuriatingly short proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials are solutions of the associated Legendre + equation which is a Sturm-Liouville problem and are thus orthogonal to each + other. The factor in front Kronecker delta is left as an exercise to the + reader. +\end{proof} + +Lemma \ref{kugel:thm:legendre-poly-ortho} has a very similar +proof, while the theorem \ref{kugel:thm:spherical-harmonics-ortho} for the +spherical harmonics is proved by the following argument. The spherical harmonics +are the solutions to the eigenvalue problem $\surflaplacian f = -\lambda f$, +which as discussed in the previous section is solved using separation. So to +prove their orthogonality using the Sturm-Liouville theory we argue that +\begin{equation*} + \surflaplacian = L_\vartheta L_\varphi \iff + \surflaplacian f(\vartheta, \varphi) + = L_\vartheta \Theta(\vartheta) L_\varphi \Phi(\varphi), +\end{equation*} +then we show that both $L_\vartheta$ and $L_\varphi$ are both Sturm-Liouville +operators (we just did the former in the shorter proof above). Since both are +Sturm-Liouville operators their combination, the surface spherical Laplacian, is +also a Sturm-Liouville operator, which then implies orthogonality. + +\subsection{Normalization and the Phase Factor} + +At this point we have shown that the spherical harmonics form an orthogonal +system, but in many applications we usually also want a normalization of some +kind. For example the most obvious desirable property could be for the spherical +harmonics to be ortho\emph{normal}, by which we mean that $\langle Y^m_n, +Y^{m'}_{n'} \rangle = \delta_{nn'}$. To obtain orthonormality, we simply add an +ugly normalization factor in front of the previous definition +\ref{kugel:def:spherical-harmonics} as follows. + +\begin{definition}[Orthonormal spherical harmonics] + \label{kugel:def:spherical-harmonics-orthonormal} + The functions + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{\frac{2n + 1}{4\pi} \frac{(n-m)!}{(m+n)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$ are the orthonormal spherical + harmonics. +\end{definition} + +Orthornomality is very useful, but it is not the only common normalization that +is found in the literature. In physics, geomagnetism to be more specific, it is +common to use the so called Schmidt semi-normalization (or sometimes also called +quasi-normalization). + +\begin{definition}[Schmidt semi-normalized spherical harmonics] + \label{kugel:def:spherical-harmonics-schmidt} + The Schmidt semi-normalized spherical harmonics are + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{2 \frac{(n - m)!}{(n + m)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$. +\end{definition} + +Additionally, there is another quirk in the literature that should be mentioned. +In some other branches of physics such as seismology and quantum mechanics there +is a so called Condon-Shortley phase factor $(-1)^m$ in front of the square root +in the definition of the normalized spherical harmonics. It is yet another +normalization that is added for physical reasons that are not very relevant to +our discussion, but we mention this potential source of confusion since many +numerical packages (such as \texttt{SHTOOLS} \kugeltodo{Reference}) offer an +option to add or remove it from the computation. + +Though, for our purposes we will mostly only need the orthonormal spherical +harmonics, so from now on, unless specified otherwise when we say spherical +harmonics or write $Y^m_n$, we mean the orthonormal spherical harmonics of +definition \ref{kugel:def:spherical-harmonics-orthonormal}. \subsection{Recurrence Relations} -\section{Series Expansions in $C(S^2)$} +\section{Series Expansions in $L^2(S^2)$} -\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} +We have now reached a point were we have all of the tools that are necessary to +build something truly amazing: a general series expansion formula for functions +on the surface of the sphere. Using the jargon: we will now see that the +spherical harmonics together with the inner product of definition +\ref{kugel:def:inner-product-s2} +\begin{equation*} + \langle f, g \rangle + = \int_{0}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta +\end{equation*} +form a Hilbert space over the space of complex valued $L^2$ functions $S^2 \to +\mathbb{C}$. We will see later that this fact is very consequential and is +extremely useful for many types of applications. If the jargon was too much, no +need to worry, we will now go back to normal words and explain it again in more +detail. + +\subsection{Spherical Harmonics Series} -\subsection{Series Expansion} +To talk about a \emph{series expansion} we first need a series, so we shall +build one using the spherical harmonics. + +\begin{definition}[Spherical harmonic series] + \begin{equation*} + \hat{f}(\vartheta, \varphi) + = \sum_{n \in \mathbb{Z}} \sum_{m \in \mathbb{Z}} + c_{m,n} Y^m_n(\vartheta, \varphi) + \end{equation*} +\end{definition} \subsection{Fourier on $S^2$} diff --git a/buch/papers/transfer/main.tex b/buch/papers/transfer/main.tex index ed16998..60f8230 100644 --- a/buch/papers/transfer/main.tex +++ b/buch/papers/transfer/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Transferfunktionen\label{chapter:transfer}} +\chapter{Transferfunktion Tangens hyperbolicus\label{chapter:transfer}} \lhead{Thema} \begin{refsection} \chapterauthor{Marc Benz} @@ -12,6 +12,8 @@ \input{papers/transfer/teil1.tex} \input{papers/transfer/teil2.tex} \input{papers/transfer/teil3.tex} +%\input{papers/transfer/teil4.tex} + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/transfer/packages.tex b/buch/papers/transfer/packages.tex index ee51b71..fa7069a 100644 --- a/buch/papers/transfer/packages.tex +++ b/buch/papers/transfer/packages.tex @@ -8,3 +8,8 @@ % following example %\usepackage{packagename} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows} +\usetikzlibrary{fit} +\usetikzlibrary{shapes.geometric} +%\usepackage{subcaption} diff --git a/buch/papers/transfer/references.bib b/buch/papers/transfer/references.bib index 75f5d68..181682c 100644 --- a/buch/papers/transfer/references.bib +++ b/buch/papers/transfer/references.bib @@ -4,6 +4,30 @@ % (c) 2020 Autor, Hochschule Rapperswil % + + +@article{transfer:DBLP:journals/corr/abs-1909-07729, + author = {Abhisek Kundu and + Sudarshan Srinivasan and + Eric C. Qin and + Dhiraj D. Kalamkar and + Naveen K. Mellempudi and + Dipankar Das and + Kunal Banerjee and + Bharat Kaul and + Pradeep Dubey}, + title = {K-TanH: Hardware Efficient Activations For Deep Learning}, + journal = {CoRR}, + volume = {abs/1909.07729}, + year = {2019}, + url = {http://arxiv.org/abs/1909.07729}, + eprinttype = {arXiv}, + eprint = {1909.07729}, + timestamp = {Sat, 04 Apr 2020 17:18:32 +0200}, + biburl = {https://dblp.org/rec/journals/corr/abs-1909-07729.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + @online{transfer:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, @@ -31,5 +55,4 @@ volume = 47, pages = {607--627}, url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - +}
\ No newline at end of file diff --git a/buch/papers/transfer/teil0.tex b/buch/papers/transfer/teil0.tex index 19d4961..f8c8cb4 100644 --- a/buch/papers/transfer/teil0.tex +++ b/buch/papers/transfer/teil0.tex @@ -3,20 +3,232 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{transfer:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{transfer:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\section{Motivation\label{transfer:section:teil0}} +\rhead{Einleitung} + +Die Transferfunktion ist einer der wichtigsten Bestandteile moderner neuraler Netzwerke. Sie verleiht ihnen die nicht Linearität, die benötigt wird um komplexere Aufgaben zu lösen. Dabei kann theoretisch jede nicht lineare Funktion eingesetzt werden. In der Praxis tauchen aber nur sehr wenige Funktionen mit ähnlichen Eigenschaften auf. Einige davon sind in der Tabelle \ref{tab:aktfkt} zu sehen. In der heutigen Zeit sind vor allem die Variationen der ReLu Funktion beliebt. Der Tangens hyperbolicus wird aber dank dem Aufkommen der Recurrent Neural Networks, zum Beispiel dem Long short term memory Netzwerk, das aus Zellen wie in \ref{motivation:figure:LSTM} gezeigt bestehen, wieder vermehrt eingesetzt. +Die klassische Berechnung ist aber sehr aufwendig und basiert auf Gleitkommaoperationen und relativ komplizierten Funktionen. Diese benötigen einen grossen Rechenaufwand. Vor allem auf Systemen die keine Gleitkommaarithmetik Hardware besitzen wie das zum Beispiel bei gewissen Mikrocontrollern der Fall ist. +\begin{table}[h] + \centering + \begin{tabular}{llll} + \hline + \multicolumn{1}{l}{Name} & \multicolumn{1}{l}{Function} & \multicolumn{1}{l}{Figure} \\ + \hline + Sigmoid & $\sigma(x)=\frac{1}{1+e^{-x}}$ & + \begin{tikzpicture}[baseline={(0,0.2)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{1/(1+exp(-4*\x))}); + \end{tikzpicture}\\ + ReLU & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq 0. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0,\x)}); + \end{tikzpicture}\\ + Leaky ReLu & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq a \cdot x. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0.1*\x,\x)}); + \end{tikzpicture} + \end{tabular} + \caption{Transferfunktionen} + \label{tab:aktfkt} +\end{table} + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,ultra thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1,0.7) {$\tanh(x)$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Tangens hyperbolicus +\label{anleitung:figure:tanhyp}} +\end{figure} + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} + +\begin{tikzpicture} + + \node [decision] { $x>k \cdot \frac{\ln 10}{2}$ } + [decision tree] + child { node [outcome] { $+1$ } } + child { node [decision] { $x<-k \cdot \frac{\ln 10}{2}$} + child { node [outcome] { $-1$ } } + child { node [decision] { $-0,1<x<+0,1$ } + child { node [outcome] { $\frac{\sinh x}{e^{x}-\sinh x}$ } } + child { node [outcome] { $\frac{e^{2 x}-1}{e^{2 x}+1}$ } } + } + }; +\end{tikzpicture} +\caption{Annäherung für Tangens hyperbolicus +\label{anleitung:figure:approxtanhhypalgo}} +\end{figure} + + +\begin{figure} +\centering +\newcommand{\empt}[2]{$#1^{\langle #2 \rangle}$} + +\begin{tikzpicture}[ + % GLOBAL CFG + font=\sf \scriptsize, + >=LaTeX, + % Styles + cell/.style={% For the main box + rectangle, + rounded corners=5mm, + draw, + very thick, + }, + operator/.style={%For operators like + and x + circle, + draw, + inner sep=-0.5pt, + minimum height =.2cm, + }, + function/.style={%For functions + ellipse, + draw, + inner sep=1pt + }, + ct/.style={% For external inputs and outputs + circle, + draw, + line width = .75pt, + minimum width=1cm, + inner sep=1pt, + }, + gt/.style={% For internal inputs + rectangle, + draw, + minimum width=4mm, + minimum height=3mm, + inner sep=1pt + }, + mylabel/.style={% something new that I have learned + font=\scriptsize\sffamily + }, + ArrowC1/.style={% Arrows with rounded corners + rounded corners=.25cm, + thick, + }, + ArrowC2/.style={% Arrows with big rounded corners + rounded corners=.5cm, + thick, + }, + ] + + %Start drawing the thing... + % Draw the cell: + \node [cell, minimum height =4cm, minimum width=6cm] at (0,0){} ; + + % Draw inputs named ibox# + \node [gt] (ibox1) at (-2,-0.75) {$\sigma$}; + \node [gt] (ibox2) at (-1.5,-0.75) {$\sigma$}; + \node [function, draw=red!60, fill=red!5] (ibox3) at (-0.5,-0.75) {$\tanh$}; + \node [gt] (ibox4) at (0.5,-0.75) {$\sigma$}; + + % Draw opérators named mux# , add# and func# + \node [operator] (mux1) at (-2,1.5) {$\times$}; + \node [operator] (add1) at (-0.5,1.5) {+}; + \node [operator] (mux2) at (-0.5,0) {$\times$}; + \node [operator] (mux3) at (1.5,0) {$\times$}; + \node [function, draw=red!60, fill=red!5] (func1) at (1.5,0.75) {$\tanh$}; + + % Draw External inputs named as basis c,h,x + \node[ct, label={[mylabel]}] (c) at (-4,1.5) {\empt{c}{t-1}}; + \node[ct, label={[mylabel]}] (h) at (-4,-1.5) {\empt{h}{t-1}}; + \node[ct, label={[mylabel]}] (x) at (-2.5,-3) {\empt{x}{t}}; + + % Draw External outputs? named as basis c2,h2,x2 + \node[ct, label={[mylabel]}] (c2) at (4,1.5) {\empt{c}{t}}; + \node[ct, label={[mylabel]}] (h2) at (4,-1.5) {\empt{h}{t}}; + \node[ct, label={[mylabel]}] (x2) at (2.5,3) {\empt{h}{t}}; + + % Start connecting all. + %Intersections and displacements are used. + % Drawing arrows + \draw [ArrowC1] (c) -- (mux1) -- (add1) -- (c2); + + % Inputs + \draw [ArrowC2] (h) -| (ibox4); + \draw [ArrowC1] (h -| ibox1)++(-0.5,0) -| (ibox1); + \draw [ArrowC1] (h -| ibox2)++(-0.5,0) -| (ibox2); + \draw [ArrowC1] (h -| ibox3)++(-0.5,0) -| (ibox3); + \draw [ArrowC1] (x) -- (x |- h)-| (ibox3); + + % Internal + \draw [->, ArrowC2] (ibox1) -- (mux1); + \draw [->, ArrowC2] (ibox2) |- (mux2); + \draw [->, ArrowC2] (ibox3) -- (mux2); + \draw [->, ArrowC2] (ibox4) |- (mux3); + \draw [->, ArrowC2] (mux2) -- (add1); + \draw [->, ArrowC1] (add1 -| func1)++(-0.5,0) -| (func1); + \draw [->, ArrowC2] (func1) -- (mux3); + + %Outputs + \draw [-, ArrowC2] (mux3) |- (h2); + \draw (c2 -| x2) ++(0,-0.1) coordinate (i1); + \draw [-, ArrowC2] (h2 -| x2)++(-0.5,0) -| (i1); + \draw [-, ArrowC2] (i1)++(0,0.2) -- (x2); + +\end{tikzpicture} +\caption{Long short term memory cell +\label{motivation:figure:LSTM}} +\end{figure} + + + diff --git a/buch/papers/transfer/teil1.tex b/buch/papers/transfer/teil1.tex index c60f1ea..f117fc0 100644 --- a/buch/papers/transfer/teil1.tex +++ b/buch/papers/transfer/teil1.tex @@ -3,53 +3,54 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Taylorapproximation \label{transfer:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt +\subsection{Idee} +Die Taylorreihe kann eine glatte Funktion in einer Umgebung durch Polynome beliebig genau annähern. Beschränkt man sich auf einen bestimmten Grad dieser Polynome, spricht man von einer Taylorapproximation. Diese entwickelt sich immer um einen Punkt und kann über die Ableitungen berechnet werden. + +\subsection{Definition der Taylorreihe} +Sei $I \subset \mathbb{R}$ ein offenes Intervall, $f: I \rightarrow \mathbb{R}$ eine glatte Funktion und $a$ ein Element von $I$. Dann ist die unendliche Reihe \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{transfer:equation1} + T_{f(x ; a)}=\sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n !}(x-a)^{n}=f(a)+f^{\prime}(a)(x-a)+\frac{f^{\prime \prime}(a)}{2}(x-a)^{2}+\frac{f^{\prime \prime \prime}(a)}{6}(x-a)^{3}+\ldots \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +eine Taylorreihe. -Et harum quidem rerum facilis est et expedita distinctio -\ref{transfer:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{transfer:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\subsection{Beispiel} +In diesem Beispiel wird die Taylorapproximation mit dem Grad 2 des Tangens hyperbolicus um den Punkt Null berechnet. +$$ + \tanh \approx T_{2} \tanh(x ; a)=\tanh(a)+\tanh^{\prime}(a) \cdot(x-a)+\frac{\tanh^{\prime \prime}(a) \cdot(x-a)^{2}}{2} +$$ +mit $a = 0$ folgt +$$ + T_{2} \tanh(x ; 0)=\tanh(0)+\tanh^{\prime}(0) \cdot(x)+\frac{\tanh^{\prime \prime}(0) \cdot(x)^{2}}{2} = 0 + x + 0 = x +$$ +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x-(x^3)/3+ (2*x^5)/15-(17 * x^7)/315}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Taylorapprox.$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Taylorapproximation des Grades 7 +\label{motivation:figure:Taylor}} +\end{figure} +\subsection{Problem} +Wie in Abbildung \ref{motivation:figure:Taylor} ersichtlich, ist der Approximationsfehler sogar bei Grad 7 des Polynoms sehr gross. Dies liegt ist unter anderem an der Unbeschränktheit, die solche Polynome besitzen. diff --git a/buch/papers/transfer/teil2.tex b/buch/papers/transfer/teil2.tex index ce8f798..aae81a7 100644 --- a/buch/papers/transfer/teil2.tex +++ b/buch/papers/transfer/teil2.tex @@ -1,40 +1,68 @@ % -% teil2.tex -- Beispiel-File für teil2 +% teil1.tex -- Beispiel-File für das Paper % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Padé-Approximation \label{transfer:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{} + +\subsection{Idee + \label{transfer:pade:idee}} +Die Taylorapproximation ist für den Gebrauch als Ersatz des Tangenshyperbolicus als Transferfunktion nicht brauchbar. Die Padé-Approximation kann die grössten Probleme aber entschärfen und dies mit sehr begrenztem zusätzlichen Rechenaufwand. Dafür wird die Taylorapproximation in einen Bruch von zwei Polynom zerlegt. + +\subsection{Definition +\label{transfer:pade:definition}} +Sei +\begin{equation} + R(x)=\frac{\sum_{j=0}^{m} a_{j} x^{j}}{1+\sum_{k=1}^{n} b_{k} x^{k}}=\frac{a_{0}+a_{1} x+a_{2} x^{2}+\cdots+a_{m} x^{m}}{1+b_{1} x+b_{2} x^{2}+\cdots+b_{n} x^{n}} +\end{equation} +und gilt +\begin{gather*} + f(0) =R(0) \\ + f^{\prime}(0) =R^{\prime}(0) \\ + f^{\prime \prime}(0) =R^{\prime \prime}(0) \\ + \vdots \\ + f^{(m+n)}(0) =R^{(m+n)}(0), +\end{gather*} +so ist $R(x)$ die Padé-Approximation von $f(x)$. +\subsection{Beispiel + \label{transfer:pade:beispiel}} +Sei $f(x) = \tanh (x)$ und $T_{5} \tanh(x ; a) = x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}$, dann gilt +$$ + \begin{gathered} + [3 / 2]_{f}(x) = \frac{A_{0}+A_{1} x+A_{2} x^{2}+A_{3} x^{3}}{B_{0}+B_{1} x+B_{2} x^{2}}=x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}+O\left(x^{6}\right), B_{0} = 1,\\ + \Downarrow \\ + [3 / 2]_{f}(x) = \frac{15x+x^3}{15+6x^2} +\end{gathered} +$$ + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-3.5, xmax=3.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-3.5:3.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x*(15+x^2)/(15+6*x^2)}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Padé$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{$[3 / 2]_{f}(x)$ +\label{motivation:figure:Pade32}} +\end{figure} -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. diff --git a/buch/papers/transfer/teil3.tex b/buch/papers/transfer/teil3.tex index f707587..5bbe0c1 100644 --- a/buch/papers/transfer/teil3.tex +++ b/buch/papers/transfer/teil3.tex @@ -1,40 +1,26 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% teil2.tex -- Beispiel-File für teil2 % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{MiniMax-Polynom \label{transfer:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{MiniMax-Polynom} -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. + + +\subsection{Idee +\label{transfer:subsection:idee}} +Finde das Polynom eines bestimmten Grades, welches eine Funktion in einem Intervall am besten approximiert. + + +\subsection{Definition + \label{transfer:subsection:definition}} +Das Polynom welches + $$ \max _{a \leq x \leq b}|f(x)-P(x)| , a \in \mathbb{R}, b \in \mathbb{R}.$$ +minimiert. +\subsection{Beispiel + \label{transfer:subsection:beispiel}} +Um ein MiniMax-Polynom zu berechnen, kann der Remez-Algorithmus verwendet werden. Dieser basiert im wesentlichen auf dem Alternantensatz von Tschebyschow. diff --git a/buch/papers/transfer/teil4.tex b/buch/papers/transfer/teil4.tex new file mode 100644 index 0000000..d652e2d --- /dev/null +++ b/buch/papers/transfer/teil4.tex @@ -0,0 +1,218 @@ +% +% teil4.tex +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{K-Tanh +\label{transfer:section:teil4}} +\rhead{K-Tanh} + +\subsection{Idee + \label{transfer:subsection:Ktanh-Idee}} +Um die Berechnung des Tangens hyperbolicus wirklich zu beschleunigen, braucht es einen Algorithmus, der ohne Gleitkommaoperationen auskommt. Um dies zu bewerkstelligen, ist eine Unterteilung der Funktion in mehrere Abschnitte nötig. Diese können dann linear approximiert werden. Die dazugehörigen Parameter können einmal berechnet werden und zu Rechenzeit aus einem LUT????? gelesen und danach mit integer Operationen verrechnet werden. + + +\subsection{Definitionen + \label{transfer:subsection:Ktanh-Definition}} + +\subsubsection{Gleitkommazahlen nach IEEE-754 + \label{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl}} +Da ein Computer nur mit binären Werten arbeiten kann, müssen Zahlen durch sogenannte Gleitkommazahlen approximiert werden. Dafür wird die Zahl in zwei Teile aufgeteilt, die Mantisse und den Exponenten. Die Zahl setzt sich dann wie folgt zusammen: +$$ +\begin{array}{|l|l|l|} + \hline S & E & M \\ + \hline +\end{array} +$$ +Aus dem sich die Dezimalzahl wie folgt berechnet +$$ +x=s \cdot m \cdot b^{e} +$$ +wobei +$$ +\begin{aligned} + &s=(-1)^{S} \\ + &e=E-B\\ + &B=2^{r-1}-1 + &m=1+M / 2^{p} +\end{aligned} +$$ +mit $r$ = Anzahl der Exponenten bits und p = Anzahl mantisse Bits. + + +\subsubsection{K-tanh Algorithmus +\label{transfer:subsection:Ktanh-Algorithmus}} +\cite{transfer:DBLP:journals/corr/abs-1909-07729} + +Negative Werte werden nicht separat behandelt. Diese werden dank der Symertrie um den Ursprung mit einem einfachen Vorzeichenwechsel aus den positiven berechnet. +Für $x < 0.25$ gilt $y = x$. +Ist $x > 3.75$ gitl $y = 1$. +Ist der Wert zwischen diesen Grenzen, werden über einen Lookuptable geeignete Werte gefunden um aus dem $x$ die Approximation des Tanh zu berechnen. +Dafür werden eine bestimmte Anzahl LSBs des Exponenten und MSBs der Mantisse zu einem Index $t$ zusammengestzt. Der dann die Stelle im Lookuptable zeigt. +Damit werden die richtigen Werte für $E_{t}, r_{t}, b_{t}$ aus der Tabelle, die im Vorhinein schon berechnet wurden, ausgelesen. +Damit hat man das $E$ bereits gefunden und mit der Formel +\[ + M_{o} \leftarrow\left(M_{i} \gg r\right)+b +\] + +kann das neue $M$ berechnet werden. + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} +\begin{tikzpicture} + + \node [decision] { $x<0.25$ } + [decision tree] + child { node [outcome] { $x$ } } + child { node [decision] { $x>3.75$} + child { node [outcome] { $1$ } } + child { node [outcome] { $K-tanh$ } } + }; + +\end{tikzpicture} +\caption{Gesamter Algorithmus +\label{motivation:figure:gesalgo}} +\end{figure} + +\begin{figure} +\centering +\begin{tikzpicture} + [>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{dot} = [circle, draw, fill, inner sep=0.03cm] + + \tikzstyle{brace} = [decorate, decoration={brace,amplitude=4pt}] + + \begin{scope}[] + + \node[ minimum width=0.5cm] (s) at (0, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_i$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_i$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (a) {}; + + \node[minimum width=0.5cm] (s) at (5, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_o$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_o$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (b) {}; + + \draw[yshift=-0.4cm, decorate,decoration={brace,amplitude=4pt}] (a.south) ++(0, -0.2) +(0.5,0) -- +(-0.5,0 ); + + \node[draw=black, fill=black!20, minimum width=1.5cm, minimum height= 2cm, below=1cm of a] (lut) {}; + + \node[draw=blue, inner sep=0.2cm, right = 1.5cm of lut, align=left] (box) {$E_0 \gets E$ \\ $M_0 \gets (M_i \gg r) + b$}; + + \draw[->] (a.south) +(0, -0.5) -- (lut); + \draw[->] (lut) -- node[above]{$(E,r,b)$} (box); + \draw[->] (box) -| ([xshift=0.5cm, yshift=-0.3cm]b.south); + + \end{scope} + +\end{tikzpicture} +\caption{Ablauf der K-tanh Berechnung +\label{motivation:figure:Ktanhablauf}} +\end{figure} + + +\subsection{Beispiel +\label{transfer:subsection:Ktanh-Algorithmus:Beispiel}} + +%TODO + +In diesem Abschnitt wird das Verfahren am einem Beispiel mit dem BFloat16 erklärt. Das bedeutet die Gleitkommazahlen werden mit 8 Exponenten, 7 Mantisse und einem Vorzeichen bit dargestellt. + +\subsubsection{Algorithmus für die Bestimmung der Parameter + \label{transfer:subsection:Ktanh-Algorithmus:Algo}} + +\begin{enumerate} + \item Wir berechnen zuerst den Tanh für ein gegebenes x und finden die zugehörige BFloat16-Darstellung. + \[ + y_{i}=\operatorname{TanH}\left(x_{i}\right)=(-1)^{s} \cdot 2^{E_{i}} \cdot\left(1+M_{i} / 2^{q}\right) + \] + + \item Sollten die Exponenten in einem Intervall $t$ nicht gleich sein, muss ein gemeinsamer Exponent gefunden werden, so dass + $$ + \underset{E, \hat{M}_{i} \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(y_{i}-\hat{y}_{i}\right)^{2}, \quad \text { mit } \quad E \in\left\{E_{i}\right\}, \hat{M}_{i} \in[0,127] + $$ + minimiert wird. Was bedeutet, dass der Exponent mit welchem der kleinsten quadrierten und aufsummierten Fehler entsteht gewählt wird. + ?????We pick E from the set of exponents {Ei}. If E = Ej , + then, Mˆ + j = Mj , for all j. If E > Ej , then, Mˆ + j = 0. + Similarly, for E < Ej , Mˆ + j = 2q − 1. Store this E in the + parameter table TE.????? + \item Um den Verschiebungsparameter r und den Additionsterm b zu finden, muss das folgende Optimierungsproblem gelöst werden. Auch hier wird einfach der kleinste quadrierte und aufsummierte Fehler gesucht wird. + $$ + \begin{array}{ll} + & \underset{r, b \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(\hat{M}_{i}-\left(m_{i} / 2^{r}+b\right)\right)^{2} \\ + \text { mit } & 0 \leq r \leq r_{\max } \leq p, \quad b_{\min } \leq b \leq b_{\max } + \end{array} + $$ + Dabei müssen $r_max$, $b_min$ und $b_max$ sorgfältig gewählt werden, so dass kein +\end{enumerate} + +\subsubsection{Numerisches Beispiel + \label{transfer:subsection:Ktanh-Algorithmus:Num}} +Zum Index $t = 00000$ gehört neben Anderen der Wert $x_i = 2$. Denn mit \ref{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl} folgt + +$$ +\begin{array}{|l|l|l|} + \hline S_i & E_{i} & M_{i} \\ + \hline 0 & 100000 \textbf{00} & \textbf{000} 0000 \\ + \hline +\end{array} +$$ +Der dazugehörige Tanh Wert ist +$y_i = \tanh{x_i}=0.96402758\ldots$. Es lässt sich die dazugehörige BFloat-16-Darstellung finden + +$$ +\begin{array}{|l|l|l|} + \hline S_{y_{i}} & E_{y_{i}} & M_{y_{i}} \\ + \hline 0 & 01111110 & 1110110 \\ + \hline +\end{array} +$$ +Nun müssen alle anderen Werte dieses Intervalls $t = 00000$ ausgewertet werden. Stimmen nicht alle Exponenten der $S_{y}$ überein, so muss noch ein gemeinsamer Exponent mit dem Optimierungproblem \ref{} gefunden werden. Danach kann der Verschiebe- und Additionsfaktor für das Intervall berechnet werden. +Es ergeben sich die Werte: +$$ +\begin{array}{c|ccc} + \text { Index } t & E_{t} & r_{t} & b_{t} \\ + \hline 00111 & 126 & 2 & 119 +\end{array} +$$ + + + + + + + |