From a7faac209c274977c1f782aeeadecfca5051db34 Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Mon, 8 Jun 2026 14:09:29 +0200 Subject: [PATCH 1/2] refactor: inter und kreuzmodulation --- contents/drawings/1095.svg | 633 ++++++++++++++++++ contents/drawings/1095.tex | 91 +++ contents/drawings/1095.txt | 1 + contents/drawings/1096.svg | 301 +++++++++ contents/drawings/1096.tex | 135 ++++ contents/drawings/1096.txt | 0 .../intermodulation_kreuzmodulation.md | 28 +- 7 files changed, 1188 insertions(+), 1 deletion(-) create mode 100644 contents/drawings/1095.svg create mode 100644 contents/drawings/1095.tex create mode 100644 contents/drawings/1095.txt create mode 100644 contents/drawings/1096.svg create mode 100644 contents/drawings/1096.tex create mode 100644 contents/drawings/1096.txt diff --git a/contents/drawings/1095.svg b/contents/drawings/1095.svg new file mode 100644 index 0000000..282eae9 --- /dev/null +++ b/contents/drawings/1095.svg @@ -0,0 +1,633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contents/drawings/1095.tex b/contents/drawings/1095.tex new file mode 100644 index 0000000..ad8b552 --- /dev/null +++ b/contents/drawings/1095.tex @@ -0,0 +1,91 @@ +\begin{tikzpicture} + +\begin{axis}[ + xmin=0, + xmax=45, + ymin=-68, + ymax=8, + xlabel={Frequenz in MHz}, + ylabel={Leistung}, + xtick={0,5,10,15,20,25,30,35,40,45}, + ytick={}, + yticklabels={}, + grid=major, + axis lines=left, + axis line style={-Triangle}, + clip=false, + label style={font=\small}, + width=\linewidth, + height=\linewidth*0.45, +] + +% Beispiel: +% f1 = 10 MHz +% f2 = 11 MHz + +% Bereich um die Eingangssignale +\fill[gray!15] (axis cs:8.5,-67.9) rectangle (axis cs:12.5,8); +\node[font=\scriptsize, align=center, anchor=west] at (axis cs:12.25,5.0) +{Bereich um\\$f_1$ und $f_2$}; + +% Hilfsmakro: +% #1 = Frequenz +% #2 = Pegel +% #3 = Farbe +% #4 = Beschriftung +\newcommand{\spectrumline}[4]{% + \draw[#3, line width=1.4pt] + (axis cs:#1,-68) -- (axis cs:#1,#2) + node[ + pos=1, + rotate=90, + anchor=west, + font=\scriptsize, + inner sep=1.5pt, + #3 + ] {$#4$}; +} + +% ------------------------------------------------------------ +% Eingangssignale: 1. Ordnung +% ------------------------------------------------------------ +\spectrumline{10}{0}{green!60!black}{f_1\;(1)} +\spectrumline{11}{0}{green!60!black}{f_2\;(1)} + +% ------------------------------------------------------------ +% Produkte 2. Ordnung +% ------------------------------------------------------------ +\spectrumline{1}{-25}{violet!80!black}{f_2-f_1\;(2)} + +\spectrumline{20}{-25}{violet!80!black}{2f_1\;(2)} +\spectrumline{21}{-25}{violet!80!black}{f_1+f_2\;(2)} +\spectrumline{22}{-25}{violet!80!black}{2f_2\;(2)} + +% ------------------------------------------------------------ +% Produkte 3. Ordnung +% ------------------------------------------------------------ +\spectrumline{9}{-40}{red!75!black}{2f_1-f_2\;(3)} +\spectrumline{12}{-40}{red!75!black}{2f_2-f_1\;(3)} + +\spectrumline{30}{-40}{red!75!black}{3f_1\;(3)} +\spectrumline{31}{-40}{red!75!black}{2f_1+f_2\;(3)} +\spectrumline{32}{-40}{red!75!black}{f_1+2f_2\;(3)} +\spectrumline{33}{-40}{red!75!black}{3f_2\;(3)} + +% ------------------------------------------------------------ +% Produkte 4. Ordnung, ausgewählte Produkte +% ------------------------------------------------------------ +\spectrumline{2}{-55}{orange!90!black}{2f_2-2f_1\;(4)} + +\spectrumline{19}{-55}{orange!90!black}{3f_1-f_2\;(4)} +\spectrumline{23}{-55}{orange!90!black}{3f_2-f_1\;(4)} + +\spectrumline{40}{-55}{orange!90!black}{4f_1\;(4)} +\spectrumline{41}{-55}{orange!90!black}{3f_1+f_2\;(4)} +\spectrumline{42}{-55}{orange!90!black}{2f_1+2f_2\;(4)} +\spectrumline{43}{-55}{orange!90!black}{f_1+3f_2\;(4)} +\spectrumline{44}{-55}{orange!90!black}{4f_2\;(4)} + +\end{axis} + +\end{tikzpicture} \ No newline at end of file diff --git a/contents/drawings/1095.txt b/contents/drawings/1095.txt new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/contents/drawings/1095.txt @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/contents/drawings/1096.svg b/contents/drawings/1096.svg new file mode 100644 index 0000000..920dbee --- /dev/null +++ b/contents/drawings/1096.svg @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contents/drawings/1096.tex b/contents/drawings/1096.tex new file mode 100644 index 0000000..076ce39 --- /dev/null +++ b/contents/drawings/1096.tex @@ -0,0 +1,135 @@ +\begin{tikzpicture} + +\begin{axis}[ + width=\linewidth*\getDarcImageFactor, + height=0.9*\linewidth*\getDarcImageFactor, + xmin=-50, + xmax=15, + ymin=-90, + ymax=38, + xlabel={Eingangsleistung $P_\text{in}$}, + ylabel={Ausgangsleistung $P_\text{out}$}, + xtick={-50,-40,-30,-20,-10,0,10}, + ytick={-80,-60,-40,-20,0,20,30}, + yticklabels={}, + xticklabels={}, + grid=major, + axis lines=left, + axis line style={-Triangle}, + clip=false, + legend style={draw, fill=white, font=\footnotesize, at={(0.98,0.02)}, anchor=south east}, +] + +\def\G{20} +\def\IIP{10} +\def\OIP{30} +\def\PSAT{21} + +% ------------------------------------------------------------ +% Sättigungsleistung +% ------------------------------------------------------------ +\addplot[ + orange!90!black, + very thick +] coordinates { + (-50,\PSAT) + (15,\PSAT) +}; +\addlegendentry{Sättigung} + +% ------------------------------------------------------------ +% Reales Grundsignal mit Kompression und Sättigung +% ------------------------------------------------------------ +\addplot[ + DARCblue, + very thick, + smooth +] coordinates { + (-50,-30) + (-40,-20) + (-30,-10) + (-20,0) + (-10,9.5) + (-5,14.0) + (0,17.5) + (5,19.8) + (10,20.7) + (15,20.95) +}; +\addlegendentry{$f_1$ und $f_2$} + + +% ------------------------------------------------------------ +% Ideale Grundsignal-Gerade, extrapoliert +% ------------------------------------------------------------ +\addplot[ + DARCblue, + very thick, + dashed, + domain=-50:\IIP, + samples=2 +] {x+\G}; +\addlegendentry{} + + +% ------------------------------------------------------------ +% Reale IM3-Produkte mit Kompression und gleicher Sättigung +% ------------------------------------------------------------ +\addplot[ + DARCred, + very thick, + smooth +] coordinates { + (-30,-90) + (-25,-75) + (-20,-60) + (-15,-45) + (-10,-30) + (-5,-15) + (0,0) + (3,8.5) + (5,13.0) + (7,16.2) + (9,18.4) + (11,19.7) + (13,20.45) + (15,20.85) +}; +\addlegendentry{3. Ordnung} + + +% ------------------------------------------------------------ +% IM3-Produkte: ideale Gerade, extrapoliert +% ------------------------------------------------------------ +\addplot[ + DARCred, + very thick, + dashed, + domain=-30:\IIP, + samples=2 +] {3*x}; +\addlegendentry{} + +% ------------------------------------------------------------ +% IP3: Schnittpunkt der extrapolierten Geraden +% ------------------------------------------------------------ +\addplot[ + black, + only marks, + mark=*, + mark size=2.4pt +] coordinates {(\IIP,\OIP)}; + +\draw[densely dashed] + (axis cs:\IIP,-90) -- (axis cs:\IIP,\OIP); + +\draw[densely dashed] + (axis cs:-50,\OIP) -- (axis cs:\IIP,\OIP); + +\node[anchor=south west] + at (axis cs:\IIP,\OIP) + {IP3}; + +\end{axis} + +\end{tikzpicture} \ No newline at end of file diff --git a/contents/drawings/1096.txt b/contents/drawings/1096.txt new file mode 100644 index 0000000..e69de29 diff --git a/contents/sections/intermodulation_kreuzmodulation.md b/contents/sections/intermodulation_kreuzmodulation.md index 614c18b..5981565 100644 --- a/contents/sections/intermodulation_kreuzmodulation.md +++ b/contents/sections/intermodulation_kreuzmodulation.md @@ -13,7 +13,33 @@ Um ein starkes unerwünschtes Signal bereits vor dem Empfängereingang zu unterd Die Großsignalfestigkeit eines Empfängers kann durch den sog. Intercept Point dritter Ordnung (IP3) beschrieben werden. Er ist ein Maß für den Punkt an dem unerwünschte Mischprodukte 3. Ordnung den Amplitudenwert des Eingangssignales erreichen. Je höher der IP3 eines Empfängers ist, desto größere Signale kann dieser noch störungsfrei verarbeiten. -%TODO: Weitere Informationen zu IP3 ggf. Tipp, Grafik zu IP3 + +Wir betrachten in dieser Vertiefung den IP3 als Kenngröße für die Großsignalfestigkeit eines Empfängers. Allgemein entstehen Mischprodukte durch Nichtlinearitäten in Verstärkern, Mischern oder anderen Empfängerstufen. Bei zwei Eingangssignalen $f_1$ und $f_2$ können Intermodulationsprodukte der Form + +$f_\text{mix} = \left| m \cdot f_1 \pm n \cdot f_2 \right|$ + +entstehen, wobei $m,n \in \mathbb{N}_0$ gilt und nicht beide Koeffizienten gleichzeitig null sein dürfen. Die Ordnung eines solchen Mischprodukts ergibt sich aus der Summe der Koeffizienten: + +$\text{Ordnung} = m+n$ + +Besonders kritisch sind die Intermodulationsprodukte 3. Ordnung, da sie häufig wieder in der Nähe der ursprünglichen Eingangssignale liegen. Dadurch können sie in den gewünschten Empfangsbereich fallen und sind dann durch nachfolgende Filter nur schwer oder gar nicht mehr zu entfernen. + +In der folgenden Abbildung [ref:a_intermodulation] ist die Intermodulation zweier Signale $f_1$ und $f_2$ dargestellt. Die Intermodulationsprodukte 3. Ordnung sind dabei besonders hervorgehoben: + +[picture:1095:a_intermodulation:Intermodulation von zwei Signalen $f_1$ und $f_2$] + +Wichtig ist: Diese Intermodulationsprodukte werden nicht von außen empfangen, sondern entstehen erst im Empfänger durch nichtlineares Verhalten. Mit einem Zweitontest kann man die Linearität eines Empfängers untersuchen. Dazu werden zwei definierte Eingangssignale eingespeist. Erscheinen neben diesen beiden Grundsignalen zusätzlich Intermodulationsprodukte 3. Ordnung im Spektrum, zum Beispiel im Wasserfalldiagramm, ist dies ein Hinweis auf nichtlineares Verhalten. + +Die Abbildung [ref:a_zweitontest] zeigt einen Zweitontest mit einem Powersweep, bei dem die Intermodulationsprodukte 3. Ordnung deutlich sichtbar werden. + +[picture:1096:a_zweitontest:Zweitontest mit Powersweep] + +Trägt man die Ausgangsleistung über der Eingangsleistung auf, steigen die Grundsignale im linearen Bereich mit einer Steigung von $1{:}1$. Die Intermodulationsprodukte 3. Ordnung steigen dagegen mit einer Steigung von $3{:}1$. Verlängert man die linearen Bereiche dieser beiden Kurven, ergibt sich ein theoretischer Schnittpunkt. Dieser Punkt wird IP3, also Intercept Point 3. Ordnung, genannt. + +Der IP3 beschreibt somit den extrapolierten Punkt, an dem die Intermodulationsprodukte 3. Ordnung rechnerisch die gleiche Ausgangsleistung wie die Grundsignale erreichen würden. In der Praxis wird dieser Punkt meist nicht erreicht, da der Empfänger vorher in Kompression oder Sättigung gerät. + +Je höher der IP3 eines Empfängers ist, desto besser ist seine Großsignalfestigkeit. Ein hoher IP3 bedeutet, dass auch starke Nachbarsignale verarbeitet werden können, ohne dass störende Intermodulationsprodukte im gewünschten Empfangsbereich entstehen. + [question:AF221] From 47d9df99e5867efb06ddec7e20d3468d2b51beda Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Sun, 14 Jun 2026 11:39:39 +0200 Subject: [PATCH 2/2] feature: new picture for modulation degree --- contents/drawings/1098.svg | 106 +++++++++++++++++++++++++++++++++++++ contents/drawings/1098.tex | 40 ++++++++++++++ contents/drawings/1098.txt | 0 3 files changed, 146 insertions(+) create mode 100644 contents/drawings/1098.svg create mode 100644 contents/drawings/1098.tex create mode 100644 contents/drawings/1098.txt diff --git a/contents/drawings/1098.svg b/contents/drawings/1098.svg new file mode 100644 index 0000000..64275bb --- /dev/null +++ b/contents/drawings/1098.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contents/drawings/1098.tex b/contents/drawings/1098.tex new file mode 100644 index 0000000..b67c908 --- /dev/null +++ b/contents/drawings/1098.tex @@ -0,0 +1,40 @@ +% Author: Prof. Dr. Matthias Jung, DL9MJ +% Year: 2026 +\begin{tikzpicture} + \pgfplotsset{samples=200} + \begin{axis}[ + axis on top, + axis lines=middle, + height=6cm, + scale only axis, + width=\linewidth*\getDarcImageFactor, + ticks=none, + axis line style={-Triangle}, + xticklabel style={/pgf/number format/.cd,fixed,precision=1,use comma,fixed,fixed zerofill}, + xmin = 0, + ymin = -2.5, + xmax = 3*pi, + ymax = 3, + domain = 0:3*pi, + thick, + smooth, + no markers] + \addplot+[name path=A,ultra thick, black] { 0.75*sin(deg(x))+1.5}; + \addplot+[name path=B,ultra thick, black] {-0.75*sin(deg(x))-1.5}; + \addplot[DARCgray] fill between[of=A and B]; + + \path(axis cs: 0.5*pi, 2.25) -- (axis cs: 0.5*pi, 2.75) coordinate(s1); + \path(axis cs: 1.5*pi, 0.75) -- (axis cs: 1.5*pi, 2.75) coordinate(e1); + \path(axis cs: 1.5*pi, 0.75) -- (axis cs: 1.5*pi, 2.75) coordinate(s2); + \path(axis cs: 2.5*pi, 2.25) -- (axis cs: 2.5*pi, 2.75) coordinate(e2); + \path(axis cs: 2.5*pi, 0.00) coordinate(s3); + \path(axis cs: 2.5*pi, 2.25) coordinate(e3); + \path(axis cs: 1.5*pi, 0.00) coordinate(s4); + \path(axis cs: 1.5*pi, 0.75) coordinate(e4); + + \draw[dashed] (axis cs: 0, 1.5+0.75) -- (axis cs: 3*pi, 1.5+0.75); + \draw[dashed] (axis cs: 0, 1.5-0.75) -- (axis cs: 3*pi, 1.5-0.75); + \end{axis} + \DARCmeasure{s3}{e3}{0,0}{90}{\rotatebox{-90}{$U_\text{max}$}} + \draw[Triangle-Triangle] (s4) -- (e4) node[midway,anchor=east]{$U_\text{min}$}; +\end{tikzpicture} \ No newline at end of file diff --git a/contents/drawings/1098.txt b/contents/drawings/1098.txt new file mode 100644 index 0000000..e69de29