====== 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 {{ :wissen:ltspice:ubitx:ubitx_v5_db1bmn_colored_ocr_2019-07-16.pdf |Schaltplan}}. ====== Download der Simulationsdateien ====== So lange die MIME-Typen in diesem Wiki nich für die LTspice-Dateien ({{:wissen:ltspice:icons:asc.png|}}asc, {{:wissen:ltspice:icons:asy.png|}}asy und plt) freigeschaltet sind, behelfen wir uns mit einem Komplett-Download der jeweiliegen Simulationspakete. **Download** aller auf dieser Seite verwendeten LTspice-Dateien: * {{ :wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_simulationsdateien_2019-07-21.zip |}} ====== - Passive Schaltungsteile ====== Passive Schaltungsteile sind Schaltungen, die das Signal nicht verstärken und / oder ohne eine zusätzliche Spannungsversorgung auskommen. ===== - Filter ===== Im µBitX gibt es eine Handvoll passiver, mehrpoliger LC-Filter, die sich für einen Einstieg in die Simulation sehr gut eignen. ==== - 30 MHz LPF ==== 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. {{ :wissen:ltspice:ubitx:30mhz_lpf.png?400 |}} 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.
{{ :wissen:ltspice:ubitx:30mhz_lowpass.asc.png?400 |}} {{ :wissen:ltspice:ubitx:30mhz_lowpass.asy.png?400 |}} Oben: Schaltplan des 30(nbsp)MHz Tiefpass-Filters ''30mhz_lowpass.asc''; Unten: Hierarchisches Symbol ''30mhz_lowpass.asy''\\ \\ Dateidownloads: * {{ :wissen:ltspice:ubitx:simulation:30mhz_lowpass.asc |}} * {{ :wissen:ltspice:ubitx:simulation:30mhz_lowpass.asy |}}
=== 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.
{{wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_manual.png}} Simulationsschaltung ''ubitx_v5_30mhz-lpf_test_manual.asc'' und mittels Plotfile ''ubitx_v5_30mhz-lpf_test_manual.plt'' erstellte Diagramme.\\ \\ Dateidownloads: * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_manual.asc |}} * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_manual.plt |}}
**Hinweis:** LTspice normiert die Bodediagramme auf die **Amplitude der Klemmenspannung** mit 1(nbsp)Volt (nicht etwa auf den Effektivert((Der geneigte Leser möge hierzu eigene Untersuchungen anstellen.))) 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 == {{wissen:ltspice:ubitx:30mhz_lpf_frequency_response.png}} 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. {{wissen:ltspice:ubitx:30mhz_lpf_load_impedance.png}} 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. {{wissen:ltspice:ubitx:30mhz_lpf_input_impedance.png}} == Reflexionsfaktor == Mit der Lastimpedanz und der Generatorimpedanz lässt sich der [[wpde>Reflexionsfaktor]] Γ (engl. //reflection coefficient//) errechnen und als Funktion (V(v_tp2)/Ix(x1:TP2)-50)/(V(v_tp2)/Ix(x1:TP2)+50) plotten. {{wissen:ltspice:ubitx:30mhz_lpf_reflection_coefficient.png}} == Stehwellenverhältnis (VSWR) == Aus dem Reflexionsfaktor lässt sich dann das [[wpde>Stehwellenverhältnis]] (engl. //[[wp>Standing_wave_ratio|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. {{wissen:ltspice:ubitx:30mhz_lpf_vswr.png}} === 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// {{:wissen:ltspice:shortcuts:ltspice_undo.png|}} 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 Space. **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 Datei((D.h. es teilen sich alle möglichen Simulationen diese Makros und es kann schnell unübersichtlich werden.)) %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 Space geladene Plotfile wird ebenfalls unter dem neuen Namen ''µBitX_V5_30MHz-LPF_Test_plotdefs.plt'' gespeichert.
{{wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_plotdefs.png}} Simulationsschaltung ''µBitX_V5_30MHz-LPF_Test_plotdefs.asc'' und mittels ''Plot-Defs'' und ''µBitX_V5_30MHz-LPF_Test_plotdefs.plt'' generierte Diagramme.\\ \\ Dateidownloads: * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_plotdefs.asc |}} * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_plotdefs.plt |}} * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_plotdefs:plot.defs |}}
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 [[wpde>Streuparameter|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 [[wpde>Zweitor#Zweitorgleichungen_und_Parameter|Parameter aus der HF-Technik]] zum Plotten angeboten: | {{ :wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net_traces.png?400 }} | 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'' |
{{wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net.png}} Simulationsschaltung ''µBitX_V5_30MHz-LPF_Test_net.asc'' und mittels Plotfile ''µBitX_V5_30MHz-LPF_Test_net.plt'' erstellte Diagramme.\\ \\ Dateidownloads: * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net.asc |}} * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net.plt |}}
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.
{{wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net_phase.png}} 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; * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_net_phase.plt |}}
=== 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**: {{ :wissen:ltspice:ubitx: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 == {{wissen:ltspice:ubitx:pasted:20190714-225400.png}} 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 Γ) == {{wissen:ltspice:ubitx:pasted:20190714-225539.png}} 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 == {{wissen:ltspice:ubitx:pasted:20190714-230031.png}} 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 == {{wissen:ltspice:ubitx:pasted:20190714-230107.png}} 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 == {{wissen:ltspice:ubitx:pasted:20190714-230351.png}} 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:((LTspice sortiert leider die Zeilen um, so dass die optische Zuordnung der Texte zu dem graphischen Blöcken verloren geht.)) ++++(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 Space erhalten wir folgende Ansicht:
{{wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_masks.png}} 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: * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_masks.asc |}} * {{ wissen:ltspice:ubitx:ubitx_v5_30mhz-lpf_test_masks.plt |}}
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. ==== - TX LP-Filters ==== Als nächste Funktionsgruppe bietet sich die Filterbank am Senderausgang an. {{wissen:ltspice:ubitx:tx_lp_filters.png}} 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 ===
{{wissen:ltspice:ubitx:tx_lowpass_a.png}} Hierarchisches Symbol ''TX_LowPass_A.asy'' und dahinterliegender Schaltplan ''TX_LowPass_A.asc''\\ \\ Dateidownloads: * {{wissen:ltspice:ubitx:tx_lowpass_a.asc}} * {{wissen:ltspice:ubitx:tx_lowpass_a.asy}}
=== - Filter B LPF ===
{{wissen:ltspice:ubitx:tx_lowpass_b.png}} Hierarchisches Symbol ''TX_LowPass_B.asy'' und dahinterliegender Schaltplan ''TX_LowPass_B.asc''\\ \\ Dateidownloads: * {{wissen:ltspice:ubitx:tx_lowpass_b.asc}} * {{wissen:ltspice:ubitx:tx_lowpass_b.asy}}
=== - Filter C LPF ===
{{wissen:ltspice:ubitx:tx_lowpass_c.png}} Hierarchisches Symbol ''TX_LowPass_C.asy'' und dahinterliegender Schaltplan ''TX_LowPass_C.asc''\\ \\ Dateidownloads: * {{wissen:ltspice:ubitx:tx_lowpass_c.asc}} * {{wissen:ltspice:ubitx:tx_lowpass_c.asy}}
=== - Filter 0 LPF ===
{{wissen:ltspice:ubitx:tx_lowpass_0.png}} Hierarchisches Symbol ''TX_LowPass_0.asy'' und dahinterliegender Schaltplan ''TX_LowPass_0.asc''\\ \\ Dateidownloads: * {{wissen:ltspice:ubitx:tx_lowpass_0.asc}} * {{wissen:ltspice:ubitx:tx_lowpass_0.asy}}
---- ===== - Mischer ===== 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. ===== - Verstärker =====