Simulation der Schaltungsteile des µBitX V5 mit LTspice

Diese Seite beschreibt die Simulation der Schaltungsteile des µBitX V5 mittels LTspice und geht bei Bedarf auf die notwendigen oder hilfreichen Einstellungen ein.

Wir orientieren uns an den gekennzeichneten Funktionsgruppen im Schaltplan.

Download der Simulationsdateien

So lange die MIME-Typen in diesem Wiki nich für die LTspice-Dateien (asc, asy und plt) freigeschaltet sind, behelfen wir uns mit einem Komplett-Download der jeweiliegen Simulationspakete.

Download aller auf dieser Seite verwendeten LTspice-Dateien:

- Passive Schaltungsteile

Passive Schaltungsteile sind Schaltungen, die das Signal nicht verstärken und / oder ohne eine zusätzliche Spannungsversorgung auskommen.

Im µBitX gibt es eine Handvoll passiver, mehrpoliger LC-Filter, die sich für einen Einstieg in die Simulation sehr gut eignen.

Zum Warmwerden beginnen wir mit dem 30(nbsp)MHz Tiefpass-Filter, welches bidirektional arbeitet, also gleichwohl für den Empfang, als auch fürs Senden verwendet wird.

Die Schaltung wird in LTspice erstellt und als Datei 30mhz_lowpass.asc abgespeichert. Dabei werden zur besseren Übersicht die Ports mit den Namen der Testpunkte (TPs) (sofern vorhanden) und die Bauteile mit den gleichen Nummern (reference designator), wie im Schaltplan bezeichnet.

Hierarchische Modelleierung

Der Schaltplan wird als hierarchisches Symbol exportiert und nach einigen kosmetischen Anpassungen als 30mhz_lowpass.asy gespeichert.

Tipp: So lange Schaltplan und Symbol gleiche Namen haben und selben Verzeichnis abgelegt sind, kann im übergerordneten Schaltplan (TOP) das Symbol plaziert werden und es wird bei der Simulation der dahinterligende Schaltplan eingebunden. Das macht die Schaltung übersichtlicher.

<figure label> Oben: Schaltplan des 30(nbsp)MHz Tiefpass-Filters 30mhz_lowpass.asc; Unten: Hierarchisches Symbol 30mhz_lowpass.asy

Dateidownloads:

</caption> </figure>

Erste Simulation

Mit diesen beiden Dateien können wir nun unseren eigentlichen Schaltplan (das so genannte TOP-File) für die Simulation erstellen und als Datei µBitX_V5_30MHz-LPF_Test_manual.asc speichern. Der Abschluss des Mischers wird rein ohmsch angenommen (AC-mäßig sind die Ports des Synthesizers kurzgeschlossen) und wird durch das Netzwerk R103 || ( R102 + R101 || R100) nachgebildet.

<figure label>

Simulationsschaltung ubitx_v5_30mhz-lpf_test_manual.asc und mittels Plotfile ubitx_v5_30mhz-lpf_test_manual.plt erstellte Diagramme.

Dateidownloads:

</figure>

Hinweis: LTspice normiert die Bodediagramme auf die Amplitude der Klemmenspannung mit 1(nbsp)Volt (nicht etwa auf den Effektivert1)) der AC-Quelle! Es empfiehlt sich, die AC-Quelle mit einem Innenwiderstand Rser (in der HF-Technik üblicherweise 50(nbsp)Ω), und einer AC-Amplitde 2 einzutragen, da im Falle der Leistungsanpassung die halbe Spannung über dem Innenwiderstand abfällt und somit die Klemmenspannung 1(nbsp)V bzw. 0(nbsp)dB(V) beträgt.

Die Simulation wird als AC-Analyse mit einem Frequenzsweep über den Bereich 100(nbsp)kHz bis 100(nbsp)MHz durchgeführt.

Nachfolgend wird die Erstellung der Diagramme besprochen, jedoch erfolgt noch keine Diskussion der Ergebnisse.

Frequenzgang

Ein Klick mit dem Tastkopf (probe) auf das Signal TP12 im Schaltplan plottet den Frequenzgang (frequency response) der Schaltung, die sich sofort als ein Tiefpass mit einer Grenzfrequenz von ca. 35(nbsp)MHz entpuppt.

Abschlussimpedanz des Mischers

Es können weitere Diagrammkacheln (panes) eingefügt werden. Auf dem zweiten Pane (LTspice fängt mit dem Zählen der Panes immer unten an, so ist das zweite das darüberliegende usf.) wird die Abschlussimpedanz (Load Impedance) des Mischers als Quotient

V(tp12)/(-Ix(X1:TP1))

der Spannung über dem Testpunkt TP12 und den Strom in das Abschlussnetzwerk geplottet.
Da es sich um ein rein ohmsches Netzwerk, weißt dieses einen flachen Frequenzgang von ca. 42.9(nbsp)Ω. Eine Kontrolle mit dem Taschenrechner bestätigt diesen Wert, so dass wir in Zukunft den Abschluss mit einem Widerstand mit diesem Wert nachbilden können, was die Übersicht weiter vereinfacht.

Eingangsimpedanz

Nach dem gleichen Schema können wir die Eingangsimpedanz des Filters bestimmen (also gewissermaßen die Abschlussimpedanz der AC-Quelle).
Die Input Impedance ist der Quotient

V(v_tp2)/Ix(x1:TP2)

der Spannung am TP2 dividiert durch den in das Filter fließenden Strom.

Reflexionsfaktor

Mit der Lastimpedanz und der Generatorimpedanz lässt sich der Reflexionsfaktor Γ (engl. reflection coefficient) errechnen und als Funktion

(V(v_tp2)/Ix(x1:TP2)-50)/(V(v_tp2)/Ix(x1:TP2)+50)

plotten.

Stehwellenverhältnis (VSWR)

Aus dem Reflexionsfaktor lässt sich dann das Stehwellenverhältnis (engl. voltage standing wave ratio) berechnen und als Funktion

(1+abs((V(v_tp2)/Ix(x1:TP2)-50)/(V(v_tp2)/Ix(x1:TP2)+50)))/(1-abs((V(v_tp2)/Ix(x1:TP2)-50)/(V(v_tp2)/Ix(x1:TP2)+50)))

plotten.

Plotfile

Das Eintragen der Signale mit der Probe in die entsprechenden Diagramm-Panes ist sehr mühselig und fehleranfällig (wie oft hat man eine Klammer vergessen oder zuviel?).
Außerdem möchte man manchmal ein Diagramm näher ranzoomen oder alleine darstellen für einen Screenshot (s.o.), dann aber doch sofort zur Gesamtübersicht zurückkehren. Das ist mittels der Undo-Funktion nur bedingt möglich. Es bietet sich daher an, die einmal gemachten Einstellungen in einer sogennten plotfile abzulegen und wieder aufzurufen. Die bis jetzt gemachten Einstellungen der Diagramme (Signale, Formeln, Sklaierung der Achsen etc.) sind in der Datei µBitX_V5_30MHz-LPF_Test_manual.plt abgelegt. Das Laden der Plotfile geschieht mittels der <key>Space</key>.

Achtung: Beim Manipulieren der Diagramme (Zoom, Formeln etc.) sollte man Vorsicht walten lassen und nicht versehentlich unerwünschte Einstellungen z.B. mittels „Strg + S“ speichern, da somit das Plotfile überschrieben wird! Es emfiehlt sich ein Backup des „guten“ Plotfiles anzufertigen und dieses in einem Repository vorzuhalten.

Plot Defs

Das manuelle Eintragen der Formeln für die Signale ist nicht nur fehleranfällig, sondern die umfangreichen Formeln machen auch die Diagrammüberschrift unübersichtlich.
Es liegt daher nahe, diese Formeln in einer Art „Makro“ zusammenzufassen: https://github.com/WCP52/docs/wiki/VSWR-in-LTspice

Bei Ltspice werden diese Makros als User-Defined Functions bezeichnet und in der (leider) globalen Datei2)

 %HOMEPATH%\Documents\LTspiceXVII\plot.defs

abgelegt. Diese kann über das Menü

Plot Settings=>Edit Plot Defs File

geöffnet und editiert werden.

Man trägt sich also darin folgende Funktionen ein:

.func RefCoeff(z,z0) {(z-z0)/(z+z0)}
.func VSWR(rc) {(1+abs(rc))/(1-abs(rc))}

Damit die Funktionen wirksam werden, muss LTspice einmal geschlossen und neu gestartet werden.

Anschließend kann aus der alten Simulation eine (der Übersicht halber) neue Simulationsdatei µBitX_V5_30MHz-LPF_Test_plotdefs.asc angelegt werden. Die mittels <key>Space</key> geladene Plotfile wird ebenfalls unter dem neuen Namen µBitX_V5_30MHz-LPF_Test_plotdefs.plt gespeichert.

<figure label>

Simulationsschaltung µBitX_V5_30MHz-LPF_Test_plotdefs.asc und mittels Plot-Defs und µBitX_V5_30MHz-LPF_Test_plotdefs.plt generierte Diagramme.

Dateidownloads:

</figure>

Man sieht, dass die Funktionen, die mittels Makro RefCoeff(.) und VSWR(.) erstellt wurden, deckungsgleich sind mit den zuvor umständlich über direkte Formeleingabe geplotteten Funktionen.

Ein Wehrmutstropfen bleibt jedoch, nämlich dass man an die Markos die Impedanz des untersuchten Netzwerks (hier V(v_tp2)/Ix(x1:TP2)), als auch denn Wellenwiderstand des Generators (hier: 50) angeben muss. Doch auch das lässt sich noch verbessern, wie nachfolgendes Kapitel zeigen soll.

S-Parameter und .net-Statement

LTspice gestattet es, mittels .net-Statement umfangreiche Berechnungen aus der HF-Technik auf die Plots der AC-Analyse anzuwenden: https://www.electronicspoint.com/forums/threads/spice-ac-analysis-multiplying-or-dividing-signals.67656/

Uns interessieren hier die S-Parameter und insbesondere der S11, der identisch mit dem weiter oben definierten Reflexionsfaktor Γ ist.

Zum Studium der umfangreichen Möglichkeiten gibt es die Beispieldatei

%HOMEPATH%\Documents\LTspiceXVII\examples\Educational\S-param.asc

Wir speichern die bestehende Simulation als neue Datei µBitX_V5_30MHz-LPF_Test_net.asc ab und führen einige kleine Modifikationen durch:

  • Zusammenfassung des Abschlussnetzwerkes am Mischer in einem Widerstand R_load mit dem Wert 42.9
  • Hinzufügen des .net-Statements .net I(R_Load) V1 zur Simulationsdirektive

Nach dem Starten der Simulation erhalten wir neben den eigentlichen Spannungen und Strömen im Netzwerk auch zahlreiche Parameter aus der HF-Technik zum Plotten angeboten:

Unter anderem:
* H-Parameter H11, H12, H21, H22
* S-Parameter S11, S12, S21, S22
* Y-Parameter Y11, Y12, Y21, Y22
* Z-Parameter Z11, Z12, Z21, Z22
* Admittanzen Yin, Yout
* Impedanzen Zin, Zout

<figure label>

Simulationsschaltung µBitX_V5_30MHz-LPF_Test_net.asc und mittels Plotfile µBitX_V5_30MHz-LPF_Test_net.plt erstellte Diagramme.

Dateidownloads:

</figure>

Hier sehen wir also, dass der Plot Zin(v1) identisch ist mit der vorher manuell ausgerechneten Impedanz V(v_tp2)/Ix(x1:TP2). Analog gilt dies für den Reflexionskoeffizienten Γ RefCoeff(V(v_tp2)/Ix(x1:TP2),50) vs. S11(v1) sowie den Term VSWR(RefCoeff(V(v_tp2)/Ix(x1:TP2),50)) vs. VSWR(S11(v1)).

Damit können also die Diagrammbeschriftungen schon deutlich übersichtlicher und die Arbeit einfacher gestaltet werden. Ferner ermöglichen die S-Parameter auch die Darstellung der komplexen Anpassung, also das reaktive Verhalten der Impedanz - eine Eigenschaft, die beim VSWR durch die Betragsbildung verloren geht.

<figure label>

Darstellung des Phasenverlaufs auf der Sekundärachse (rechte Y-Achse) als gestrichelte Linie und Erkenntnis, dass die Phaseninformation beim VSWR durch die Betragsbildung verloren geht (Phase exakt Null).

Dateidownload;

</figure>

Amateurbänder als spektrale Maske

Das .net-Statement gestattet es also, einfach die Anpassung zu plotten. Was liegt näher, als sich nun die Anpassung innerhalb der Amateurbänder oder eines bestimmten Amateurbands im Detail anzuschauen?

Dazu gestattet LTspice das Hinzufügen von Annotations in Form von Text, Linien und geometrischen Formen in die Diagramme. Dieses ist jedoch manuell recht umständlich, recht ungenau und mühsehlig, so dass hier eine halbautomatische Metode beschrieben wird.

Wir speichern die Simulation unter einer neuen Datei µBitX_V5_30MHz-LPF_Test_masks.asc und generieren die folgenden Diagramme (der Übersicht halber wieder ohne Phase):

  • Frequency Response (2 x mit unterschiedlicher Skalierung, um das Sperr- und Durchlassverhalten zu studieren),
  • Input Impedance,
  • Reflection Coefficient und
  • VSWR

deren Konfiguration wir in einem neuen Plotfile µBitX_V5_30MHz-LPF_Test_masks.plt speichern.

Tabellenvorlage

Wir erstellen mit einer Tabellenkalkulation folgende Tabellen für die einzelnen Masken, die dann an entsprechender Stelle mit einem Texteditor in das Plotfile eingefügt werden können.

Download der kompletten Tabelle für LibreOffice Calc: ltspice_bandplan-mask_2019-07-14.ods

Hinweis: Zu beachten ist, dass das englische Zahlenformat verwendet wird (ggf. Gebietsschema anpassen), damit evtl. Kommazahlen korrekt mi dem Punkt . dargestellt werden.

Bei Bedarf können die obere und untere Grenze der jeweiligen Spektralen Maske generisch für alle Amateurbänder oder jedes einzelne Amateurband separat angepasst werden, sowie weitere Amateurbänder hinzugefügt oder entfernt werden.

Aktuell (2019-07-14) sind folgende Amateurbänder implementiert: ++++(ausklappen)|

Band Freq Bottom Freq Top
Unit MHz MHz
2200 m 0.1357 0.1378
630 m 0.4720 0.4790
160 m 1.810 2.000
80 m 3.500 3.800
60 m 5.3515 5.3665
40 m 7.000 7.200
30 m 10.100 10.150
20 m 14.000 14.350
17 m 18.680 18.168
15 m 21.000 21.450
12 m 24.890 24.990
10 m 28.000 29.700
6 m 50.000 54.000
4 m 69.900 70.500
2 m 144.000 146.000
70 cm 430.000 440.000

++++

SWR-Maske

Text zum Kopieren in das SWR-Pane: ++++(ausklappen)|

      Text: "" 4 (3000000, 4) ; VSWR
      Rectangle: "" 4 0 (135700, 1) (137800, 3)
      Text: "" 4 (136750, 2) ;2200 m
      Rectangle: "" 4 0 (472000, 1) (479000, 3)
      Text: "" 4 (475500, 2) ;630 m
      Rectangle: "" 4 0 (1810000, 1) (2000000, 3)
      Text: "" 4 (1905000, 2) ;160 m
      Rectangle: "" 4 0 (3500000, 1) (3800000, 3)
      Text: "" 4 (3650000, 2) ;80 m
      Rectangle: "" 4 0 (5351500, 1) (5366500, 3)
      Text: "" 4 (5359000, 2) ;60 m
      Rectangle: "" 4 0 (7000000, 1) (7200000, 3)
      Text: "" 4 (7100000, 2) ;40 m
      Rectangle: "" 4 0 (10100000, 1) (10150000, 3)
      Text: "" 4 (10125000, 2) ;30 m
      Rectangle: "" 4 0 (14000000, 1) (14350000, 3)
      Text: "" 4 (14175000, 2) ;20 m
      Rectangle: "" 4 0 (18680000, 1) (18168000, 3)
      Text: "" 4 (18424000, 2) ;17 m
      Rectangle: "" 4 0 (21000000, 1) (21450000, 3)
      Text: "" 4 (21225000, 2) ;15 m
      Rectangle: "" 4 0 (24890000, 1) (24990000, 3)
      Text: "" 4 (24940000, 2) ;12 m
      Rectangle: "" 4 0 (28000000, 1) (29700000, 3)
      Text: "" 4 (28850000, 2) ;10 m
      Rectangle: "" 4 0 (50000000, 1) (54000000, 3)
      Text: "" 4 (52000000, 2) ;6 m
      Rectangle: "" 4 0 (69900000, 1) (70500000, 3)
      Text: "" 4 (70200000, 2) ;4 m
      Rectangle: "" 4 0 (144000000, 1) (146000000, 3)
      Text: "" 4 (145000000, 2) ;2 m
      Rectangle: "" 4 0 (430000000, 1) (440000000, 3)
      Text: "" 4 (435000000, 2) ;70 cm

++++

S11-Maske (Reflexionsfaktor Γ)

Text zum Kopieren in das S11-Pane: ++++(ausklappen)|

      Text: "" 4 (3000000, 0.01) ; S11
      Rectangle: "" 4 0 (135700, 0) (137800, 1)
      Text: "" 4 (136750, 0.5) ;2200 m
      Rectangle: "" 4 0 (472000, 0) (479000, 1)
      Text: "" 4 (475500, 0.5) ;630 m
      Rectangle: "" 4 0 (1810000, 0) (2000000, 1)
      Text: "" 4 (1905000, 0.5) ;160 m
      Rectangle: "" 4 0 (3500000, 0) (3800000, 1)
      Text: "" 4 (3650000, 0.5) ;80 m
      Rectangle: "" 4 0 (5351500, 0) (5366500, 1)
      Text: "" 4 (5359000, 0.5) ;60 m
      Rectangle: "" 4 0 (7000000, 0) (7200000, 1)
      Text: "" 4 (7100000, 0.5) ;40 m
      Rectangle: "" 4 0 (10100000, 0) (10150000, 1)
      Text: "" 4 (10125000, 0.5) ;30 m
      Rectangle: "" 4 0 (14000000, 0) (14350000, 1)
      Text: "" 4 (14175000, 0.5) ;20 m
      Rectangle: "" 4 0 (18680000, 0) (18168000, 1)
      Text: "" 4 (18424000, 0.5) ;17 m
      Rectangle: "" 4 0 (21000000, 0) (21450000, 1)
      Text: "" 4 (21225000, 0.5) ;15 m
      Rectangle: "" 4 0 (24890000, 0) (24990000, 1)
      Text: "" 4 (24940000, 0.5) ;12 m
      Rectangle: "" 4 0 (28000000, 0) (29700000, 1)
      Text: "" 4 (28850000, 0.5) ;10 m
      Rectangle: "" 4 0 (50000000, 0) (54000000, 1)
      Text: "" 4 (52000000, 0.5) ;6 m
      Rectangle: "" 4 0 (69900000, 0) (70500000, 1)
      Text: "" 4 (70200000, 0.5) ;4 m
      Rectangle: "" 4 0 (144000000, 0) (146000000, 1)
      Text: "" 4 (145000000, 0.5) ;2 m
      Rectangle: "" 4 0 (430000000, 0) (440000000, 1)
      Text: "" 4 (435000000, 0.5) ;70 cm

++++

Impedanzmaske

Text zum Kopieren in das Impedance-Pane: ++++(ausklappen)|

      Text: "" 4 (3000000, 150) ; Impedance
      Rectangle: "" 4 0 (135700, 150) (137800, 16.7)
      Text: "" 4 (136750, 83.35) ;2200 m
      Rectangle: "" 4 0 (472000, 150) (479000, 16.7)
      Text: "" 4 (475500, 83.35) ;630 m
      Rectangle: "" 4 0 (1810000, 150) (2000000, 16.7)
      Text: "" 4 (1905000, 83.35) ;160 m
      Rectangle: "" 4 0 (3500000, 150) (3800000, 16.7)
      Text: "" 4 (3650000, 83.35) ;80 m
      Rectangle: "" 4 0 (5351500, 150) (5366500, 16.7)
      Text: "" 4 (5359000, 83.35) ;60 m
      Rectangle: "" 4 0 (7000000, 150) (7200000, 16.7)
      Text: "" 4 (7100000, 83.35) ;40 m
      Rectangle: "" 4 0 (10100000, 150) (10150000, 16.7)
      Text: "" 4 (10125000, 83.35) ;30 m
      Rectangle: "" 4 0 (14000000, 150) (14350000, 16.7)
      Text: "" 4 (14175000, 83.35) ;20 m
      Rectangle: "" 4 0 (18680000, 150) (18168000, 16.7)
      Text: "" 4 (18424000, 83.35) ;17 m
      Rectangle: "" 4 0 (21000000, 150) (21450000, 16.7)
      Text: "" 4 (21225000, 83.35) ;15 m
      Rectangle: "" 4 0 (24890000, 150) (24990000, 16.7)
      Text: "" 4 (24940000, 83.35) ;12 m
      Rectangle: "" 4 0 (28000000, 150) (29700000, 16.7)
      Text: "" 4 (28850000, 83.35) ;10 m
      Rectangle: "" 4 0 (50000000, 150) (54000000, 16.7)
      Text: "" 4 (52000000, 83.35) ;6 m
      Rectangle: "" 4 0 (69900000, 150) (70500000, 16.7)
      Text: "" 4 (70200000, 83.35) ;4 m
      Rectangle: "" 4 0 (144000000, 150) (146000000, 16.7)
      Text: "" 4 (145000000, 83.35) ;2 m
      Rectangle: "" 4 0 (430000000, 150) (440000000, 16.7)
      Text: "" 4 (435000000, 83.35) ;70 cm

++++

Passband-Maske

Text zum Kopieren in das Passband-Pane: ++++(ausklappen)|

      Text: "" 4 (3000000, 4) ; Passband Response
      Rectangle: "" 4 0 (135700, 0.891) (137800, 1)
      Text: "" 4 (136750, 0.9455) ;2200 m
      Rectangle: "" 4 0 (472000, 0.891) (479000, 1)
      Text: "" 4 (475500, 0.9455) ;630 m
      Rectangle: "" 4 0 (1810000, 0.891) (2000000, 1)
      Text: "" 4 (1905000, 0.9455) ;160 m
      Rectangle: "" 4 0 (3500000, 0.891) (3800000, 1)
      Text: "" 4 (3650000, 0.9455) ;80 m
      Rectangle: "" 4 0 (5351500, 0.891) (5366500, 1)
      Text: "" 4 (5359000, 0.9455) ;60 m
      Rectangle: "" 4 0 (7000000, 0.891) (7200000, 1)
      Text: "" 4 (7100000, 0.9455) ;40 m
      Rectangle: "" 4 0 (10100000, 0.891) (10150000, 1)
      Text: "" 4 (10125000, 0.9455) ;30 m
      Rectangle: "" 4 0 (14000000, 0.891) (14350000, 1)
      Text: "" 4 (14175000, 0.9455) ;20 m
      Rectangle: "" 4 0 (18680000, 0.891) (18168000, 1)
      Text: "" 4 (18424000, 0.9455) ;17 m
      Rectangle: "" 4 0 (21000000, 0.891) (21450000, 1)
      Text: "" 4 (21225000, 0.9455) ;15 m
      Rectangle: "" 4 0 (24890000, 0.891) (24990000, 1)
      Text: "" 4 (24940000, 0.9455) ;12 m
      Rectangle: "" 4 0 (28000000, 0.891) (29700000, 1)
      Text: "" 4 (28850000, 0.9455) ;10 m
      Rectangle: "" 4 0 (50000000, 0.891) (54000000, 1)
      Text: "" 4 (52000000, 0.9455) ;6 m
      Rectangle: "" 4 0 (69900000, 0.891) (70500000, 1)
      Text: "" 4 (70200000, 0.9455) ;4 m
      Rectangle: "" 4 0 (144000000, 0.891) (146000000, 1)
      Text: "" 4 (145000000, 0.9455) ;2 m
      Rectangle: "" 4 0 (430000000, 0.891) (440000000, 1)
      Text: "" 4 (435000000, 0.9455) ;70 cm

++++

Stopband-Maske

Text zum Kopieren in das Stopband-Pane: ++++(ausklappen)|

      Text: "" 4 (3000000, 0.01) ; Stopband Response
      Rectangle: "" 4 0 (135700, 0.01) (137800, 1)
      Text: "" 4 (136750, 0.505) ;2200 m
      Rectangle: "" 4 0 (472000, 0.01) (479000, 1)
      Text: "" 4 (475500, 0.505) ;630 m
      Rectangle: "" 4 0 (1810000, 0.01) (2000000, 1)
      Text: "" 4 (1905000, 0.505) ;160 m
      Rectangle: "" 4 0 (3500000, 0.01) (3800000, 1)
      Text: "" 4 (3650000, 0.505) ;80 m
      Rectangle: "" 4 0 (5351500, 0.01) (5366500, 1)
      Text: "" 4 (5359000, 0.505) ;60 m
      Rectangle: "" 4 0 (7000000, 0.01) (7200000, 1)
      Text: "" 4 (7100000, 0.505) ;40 m
      Rectangle: "" 4 0 (10100000, 0.01) (10150000, 1)
      Text: "" 4 (10125000, 0.505) ;30 m
      Rectangle: "" 4 0 (14000000, 0.01) (14350000, 1)
      Text: "" 4 (14175000, 0.505) ;20 m
      Rectangle: "" 4 0 (18680000, 0.01) (18168000, 1)
      Text: "" 4 (18424000, 0.505) ;17 m
      Rectangle: "" 4 0 (21000000, 0.01) (21450000, 1)
      Text: "" 4 (21225000, 0.505) ;15 m
      Rectangle: "" 4 0 (24890000, 0.01) (24990000, 1)
      Text: "" 4 (24940000, 0.505) ;12 m
      Rectangle: "" 4 0 (28000000, 0.01) (29700000, 1)
      Text: "" 4 (28850000, 0.505) ;10 m
      Rectangle: "" 4 0 (50000000, 0.01) (54000000, 1)
      Text: "" 4 (52000000, 0.505) ;6 m
      Rectangle: "" 4 0 (69900000, 0.01) (70500000, 1)
      Text: "" 4 (70200000, 0.505) ;4 m
      Rectangle: "" 4 0 (144000000, 0.01) (146000000, 1)
      Text: "" 4 (145000000, 0.505) ;2 m
      Rectangle: "" 4 0 (430000000, 0.01) (440000000, 1)
      Text: "" 4 (435000000, 0.505) ;70 cm

++++

Masken-Definition im Plotfile

Die so generierten Masken-Befehle können in dem Plotfile µBitX_V5_30MHz-LPF_Test_masks.plt an entsprechender Stelle zu den dazugehörigen Panes eingefügt werden.

Das vollständige Plotfile könnte nun so aussehen:3) ++++(ausklappen)|

[AC Analysis]
{
   Npanes: 5
   Active Pane: 4
   {
      traces: 1 {589832,0,"V(tp12)"}
      X: ('M',0,1e+006,9.9e+006,1e+008)
      Y[0]: (' ',0,1e-006,10,3)
      Y[1]: (' ',1,-800,80,-0)
      Log: 1 2 0
      GridStyle: 1
      PltMag: 1
      Rectangle: "" 4 0 (135700,0.01) (137800,1)
      Rectangle: "" 4 0 (472000,0.01) (479000,1)
      Rectangle: "" 4 0 (1810000,0.01) (2000000,1)
      Rectangle: "" 4 0 (3500000,0.01) (3800000,1)
      Rectangle: "" 4 0 (5351500,0.01) (5366500,1)
      Rectangle: "" 4 0 (7000000,0.01) (7200000,1)
      Rectangle: "" 4 0 (10100000,0.01) (10150000,1)
      Rectangle: "" 4 0 (14000000,0.01) (14350000,1)
      Rectangle: "" 4 0 (18680000,0.01) (18168000,1)
      Rectangle: "" 4 0 (21000000,0.01) (21450000,1)
      Rectangle: "" 4 0 (24890000,0.01) (24990000,1)
      Rectangle: "" 4 0 (28000000,0.01) (29700000,1)
      Rectangle: "" 4 0 (50000000,0.01) (54000000,1)
      Rectangle: "" 4 0 (69900000,0.01) (70500000,1)
      Rectangle: "" 4 0 (144000000,0.01) (146000000,1)
      Rectangle: "" 4 0 (430000000,0.01) (440000000,1)
      Text: "" 4 (3000000,0.01) ; Stopband Response
      Text: "" 4 (136750,0.505) ;2200 m
      Text: "" 4 (475500,0.505) ;630 m
      Text: "" 4 (1905000,0.505) ;160 m
      Text: "" 4 (3650000,0.505) ;80 m
      Text: "" 4 (5359000,0.505) ;60 m
      Text: "" 4 (7100000,0.505) ;40 m
      Text: "" 4 (10125000,0.505) ;30 m
      Text: "" 4 (14175000,0.505) ;20 m
      Text: "" 4 (18424000,0.505) ;17 m
      Text: "" 4 (21225000,0.505) ;15 m
      Text: "" 4 (24940000,0.505) ;12 m
      Text: "" 4 (28850000,0.505) ;10 m
      Text: "" 4 (52000000,0.505) ;6 m
      Text: "" 4 (70200000,0.505) ;4 m
      Text: "" 4 (145000000,0.505) ;2 m
      Text: "" 4 (435000000,0.505) ;70 cm
   },
   {
      traces: 1 {589832,0,"V(tp12)"}
      X: ('M',0,1e+006,9.9e+006,1e+008)
      Y[0]: (' ',1,0.841395141645195,0.5,1.0115794542599)
      Y[1]: (' ',1,-800,80,-0)
      Log: 1 2 0
      GridStyle: 1
      PltMag: 1
      Rectangle: "" 4 0 (135700,0.891) (137800,1)
      Rectangle: "" 4 0 (472000,0.891) (479000,1)
      Rectangle: "" 4 0 (1810000,0.891) (2000000,1)
      Rectangle: "" 4 0 (3500000,0.891) (3800000,1)
      Rectangle: "" 4 0 (5351500,0.891) (5366500,1)
      Rectangle: "" 4 0 (7000000,0.891) (7200000,1)
      Rectangle: "" 4 0 (10100000,0.891) (10150000,1)
      Rectangle: "" 4 0 (14000000,0.891) (14350000,1)
      Rectangle: "" 4 0 (18680000,0.891) (18168000,1)
      Rectangle: "" 4 0 (21000000,0.891) (21450000,1)
      Rectangle: "" 4 0 (24890000,0.891) (24990000,1)
      Rectangle: "" 4 0 (28000000,0.891) (29700000,1)
      Rectangle: "" 4 0 (50000000,0.891) (54000000,1)
      Rectangle: "" 4 0 (69900000,0.891) (70500000,1)
      Rectangle: "" 4 0 (144000000,0.891) (146000000,1)
      Rectangle: "" 4 0 (430000000,0.891) (440000000,1)
      Text: "" 4 (3000000,1) ; Passband Response
      Text: "" 4 (136750,0.9455) ;2200 m
      Text: "" 4 (475500,0.9455) ;630 m
      Text: "" 4 (1905000,0.9455) ;160 m
      Text: "" 4 (3650000,0.9455) ;80 m
      Text: "" 4 (5359000,0.9455) ;60 m
      Text: "" 4 (7100000,0.9455) ;40 m
      Text: "" 4 (10125000,0.9455) ;30 m
      Text: "" 4 (14175000,0.9455) ;20 m
      Text: "" 4 (18424000,0.9455) ;17 m
      Text: "" 4 (21225000,0.9455) ;15 m
      Text: "" 4 (24940000,0.9455) ;12 m
      Text: "" 4 (28850000,0.9455) ;10 m
      Text: "" 4 (52000000,0.9455) ;6 m
      Text: "" 4 (70200000,0.9455) ;4 m
      Text: "" 4 (145000000,0.9455) ;2 m
      Text: "" 4 (435000000,0.9455) ;70 cm
   },
   {
      traces: 1 {8454147,0,"Zin(v1)"}
      X: ('M',0,1e+006,9.9e+006,1e+008)
      Y[0]: ('_',0,10,99,1000)
      Y[1]: (' ',0,-100,20,80)
      Log: 1 1 0
      GridStyle: 1
      PltMag: 1
      Rectangle: "" 4 0 (135700,150) (137800,16.7)
      Rectangle: "" 4 0 (472000,150) (479000,16.7)
      Rectangle: "" 4 0 (1810000,150) (2000000,16.7)
      Rectangle: "" 4 0 (3500000,150) (3800000,16.7)
      Rectangle: "" 4 0 (5351500,150) (5366500,16.7)
      Rectangle: "" 4 0 (7000000,150) (7200000,16.7)
      Rectangle: "" 4 0 (10100000,150) (10150000,16.7)
      Rectangle: "" 4 0 (14000000,150) (14350000,16.7)
      Rectangle: "" 4 0 (18680000,150) (18168000,16.7)
      Rectangle: "" 4 0 (21000000,150) (21450000,16.7)
      Rectangle: "" 4 0 (24890000,150) (24990000,16.7)
      Rectangle: "" 4 0 (28000000,150) (29700000,16.7)
      Rectangle: "" 4 0 (50000000,150) (54000000,16.7)
      Rectangle: "" 4 0 (69900000,150) (70500000,16.7)
      Rectangle: "" 4 0 (144000000,150) (146000000,16.7)
      Rectangle: "" 4 0 (430000000,150) (440000000,16.7)
      Text: "" 4 (3000000,150) ; Impedance
      Text: "" 4 (136750,83.35) ;2200 m
      Text: "" 4 (475500,83.35) ;630 m
      Text: "" 4 (1905000,83.35) ;160 m
      Text: "" 4 (3650000,83.35) ;80 m
      Text: "" 4 (5359000,83.35) ;60 m
      Text: "" 4 (7100000,83.35) ;40 m
      Text: "" 4 (10125000,83.35) ;30 m
      Text: "" 4 (14175000,83.35) ;20 m
      Text: "" 4 (18424000,83.35) ;17 m
      Text: "" 4 (21225000,83.35) ;15 m
      Text: "" 4 (24940000,83.35) ;12 m
      Text: "" 4 (28850000,83.35) ;10 m
      Text: "" 4 (52000000,83.35) ;6 m
      Text: "" 4 (70200000,83.35) ;4 m
      Text: "" 4 (145000000,83.35) ;2 m
      Text: "" 4 (435000000,83.35) ;70 cm
   },
   {
      traces: 1 {536936452,0,"S11(v1)"}
      X: ('M',0,1e+006,9.9e+006,1e+008)
      Y[0]: (' ',0,0.00501187233627272,4,1)
      Y[1]: ('K',0,-1300,100,-100)
      Log: 1 2 0
      GridStyle: 1
      PltMag: 1
      Rectangle: "" 4 0 (135700,0) (137800,1)
      Rectangle: "" 4 0 (472000,0) (479000,1)
      Rectangle: "" 4 0 (1810000,0) (2000000,1)
      Rectangle: "" 4 0 (3500000,0) (3800000,1)
      Rectangle: "" 4 0 (5351500,0) (5366500,1)
      Rectangle: "" 4 0 (7000000,0) (7200000,1)
      Rectangle: "" 4 0 (10100000,0) (10150000,1)
      Rectangle: "" 4 0 (14000000,0) (14350000,1)
      Rectangle: "" 4 0 (18680000,0) (18168000,1)
      Rectangle: "" 4 0 (21000000,0) (21450000,1)
      Rectangle: "" 4 0 (24890000,0) (24990000,1)
      Rectangle: "" 4 0 (28000000,0) (29700000,1)
      Rectangle: "" 4 0 (50000000,0) (54000000,1)
      Rectangle: "" 4 0 (69900000,0) (70500000,1)
      Rectangle: "" 4 0 (144000000,0) (146000000,1)
      Rectangle: "" 4 0 (430000000,0) (440000000,1)
      Text: "" 4 (3000000,0.01) ; S11
      Text: "" 4 (136750,0.5) ;2200 m
      Text: "" 4 (475500,0.5) ;630 m
      Text: "" 4 (1905000,0.5) ;160 m
      Text: "" 4 (3650000,0.5) ;80 m
      Text: "" 4 (5359000,0.5) ;60 m
      Text: "" 4 (7100000,0.5) ;40 m
      Text: "" 4 (10125000,0.5) ;30 m
      Text: "" 4 (14175000,0.5) ;20 m
      Text: "" 4 (18424000,0.5) ;17 m
      Text: "" 4 (21225000,0.5) ;15 m
      Text: "" 4 (24940000,0.5) ;12 m
      Text: "" 4 (28850000,0.5) ;10 m
      Text: "" 4 (52000000,0.5) ;6 m
      Text: "" 4 (70200000,0.5) ;4 m
      Text: "" 4 (145000000,0.5) ;2 m
      Text: "" 4 (435000000,0.5) ;70 cm
   },
   {
      traces: 1 {65541,0,"VSWR(S11(v1))"}
      X: ('M',0,1e+006,9.9e+006,1e+008)
      Y[0]: (' ',0,1,1,6)
      Y[1]: ('m',1,-0.001,0.0002,0.001)
      Log: 1 0 0
      GridStyle: 1
      PltMag: 1
      Rectangle: "" 4 0 (135700,1) (137800,3)
      Rectangle: "" 4 0 (472000,1) (479000,3)
      Rectangle: "" 4 0 (1810000,1) (2000000,3)
      Rectangle: "" 4 0 (3500000,1) (3800000,3)
      Rectangle: "" 4 0 (5351500,1) (5366500,3)
      Rectangle: "" 4 0 (7000000,1) (7200000,3)
      Rectangle: "" 4 0 (10100000,1) (10150000,3)
      Rectangle: "" 4 0 (14000000,1) (14350000,3)
      Rectangle: "" 4 0 (18680000,1) (18168000,3)
      Rectangle: "" 4 0 (21000000,1) (21450000,3)
      Rectangle: "" 4 0 (24890000,1) (24990000,3)
      Rectangle: "" 4 0 (28000000,1) (29700000,3)
      Rectangle: "" 4 0 (50000000,1) (54000000,3)
      Rectangle: "" 4 0 (69900000,1) (70500000,3)
      Rectangle: "" 4 0 (144000000,1) (146000000,3)
      Rectangle: "" 4 0 (430000000,1) (440000000,3)
      Text: "" 4 (3000000,4) ; VSWR
      Text: "" 4 (136750,2) ;2200 m
      Text: "" 4 (475500,2) ;630 m
      Text: "" 4 (1905000,2) ;160 m
      Text: "" 4 (3650000,2) ;80 m
      Text: "" 4 (5359000,2) ;60 m
      Text: "" 4 (7100000,2) ;40 m
      Text: "" 4 (10125000,2) ;30 m
      Text: "" 4 (14175000,2) ;20 m
      Text: "" 4 (18424000,2) ;17 m
      Text: "" 4 (21225000,2) ;15 m
      Text: "" 4 (24940000,2) ;12 m
      Text: "" 4 (28850000,2) ;10 m
      Text: "" 4 (52000000,2) ;6 m
      Text: "" 4 (70200000,2) ;4 m
      Text: "" 4 (145000000,2) ;2 m
      Text: "" 4 (435000000,2) ;70 cm
   }
}

++++

Nach Ausführen der Simulation und Laden des Plotfiles mittels <key>Space</key> erhalten wir folgende Ansicht:

<figure label>

Simulationsschaltung µBitX_V5_30MHz-LPF_Test_masks.asc und mittels Plotfile µBitX_V5_30MHz-LPF_Test_masks.plt erstellte Diagramme inklusive Amateurbänder und Grenzwerte als Maske.

Dateidownloads:

</figure>

Diese Diagramme können nun weiter manuell bearbeitet werden. Es können Panes gelöscht oder Signale hinzugefügt werden und die Ansichten als eigene Plotfiles gespeichert werden, um sie für eigene Simulationen zu verwenden.

Als nächste Funktionsgruppe bietet sich die Filterbank am Senderausgang an.

Es werden nach den bewährten Schema die vier Tiefpässe Filter A LPF, Filter B LPF, Filter C LPF und das Tiefpass um L11-L13, das wir hier mit Filter 0 LPF bezeichnen wollen als hierarchischer Schaltplan und Symbol erstellt und zunächst für sich selbst getestet, bevor wir die Filter dann zusammenschalten und über eine Relais-Matrix die einzelnen Bänder auswählen können.

- Filter A LPF

<figure label>

Hierarchisches Symbol TX_LowPass_A.asy und dahinterliegender Schaltplan TX_LowPass_A.asc

Dateidownloads:

</figure>

- Filter B LPF

<figure label>

Hierarchisches Symbol TX_LowPass_B.asy und dahinterliegender Schaltplan TX_LowPass_B.asc

Dateidownloads:

</figure>

- Filter C LPF

<figure label>

Hierarchisches Symbol TX_LowPass_C.asy und dahinterliegender Schaltplan TX_LowPass_C.asc

Dateidownloads:

</figure>

- Filter 0 LPF

<figure label>

Hierarchisches Symbol TX_LowPass_0.asy und dahinterliegender Schaltplan TX_LowPass_0.asc

Dateidownloads:

</figure>


Im µBitX kommen nur Dioden-Mischer zum Einsatz. Da sie ohne Versorgung auskommen, werden sie hier zu dem passiven Schaltungsteilen gezählt.

- Aktive Schaltungsteile

Aktive Schaltungsteile verstärken das Signal oder benötigen eine zusätzliche Spannungsversorgung.


1)
Der geneigte Leser möge hierzu eigene Untersuchungen anstellen.
2)
D.h. es teilen sich alle möglichen Simulationen diese Makros und es kann schnell unübersichtlich werden.
3)
LTspice sortiert leider die Zeilen um, so dass die optische Zuordnung der Texte zu dem graphischen Blöcken verloren geht.
  • /var/www/virtual/funkfr/wiki.funkfreun.de/data/pages/wissen/ltspice/ubitx/start.txt
  • Zuletzt geändert: 06/12/2019 19:45
  • von db1bmn