Browse Source

popravil grafe in narisal odziv modulatorja

master
Andrej 1 month ago
parent
commit
c5941217c5
  1. 8034
      grafi/floor.eps
  2. 12
      grafi/floor.tex
  3. 21
      grafi/modulator.csv
  4. 712
      grafi/modulator.eps
  5. 131
      grafi/modulator.tex
  6. 4
      grafi/plot-floor
  7. 26
      grafi/plot-mod
  8. 2
      grafi/plot-pn
  9. 8024
      grafi/pn.eps
  10. 12
      grafi/pn.tex
  11. 0
      modulator/16v.s2p
  12. 21
      modulator/files.txt
  13. 21
      modulator/modulator.csv
  14. BIN
      modulator/modulator.pdf
  15. 39
      modulator/parse.py
  16. 25
      modulator/plot-mod

8034
grafi/floor.eps
File diff suppressed because it is too large
View File

12
grafi/floor.tex

@ -84,15 +84,15 @@
\csname LTb\endcsname%%
\put(860,640){\makebox(0,0)[r]{\strut{}$-160$}}%
\csname LTb\endcsname%%
\put(860,1152){\makebox(0,0)[r]{\strut{}$-140$}}%
\put(860,1105){\makebox(0,0)[r]{\strut{}$-140$}}%
\csname LTb\endcsname%%
\put(860,1664){\makebox(0,0)[r]{\strut{}$-120$}}%
\put(860,1571){\makebox(0,0)[r]{\strut{}$-120$}}%
\csname LTb\endcsname%%
\put(860,2175){\makebox(0,0)[r]{\strut{}$-100$}}%
\put(860,2036){\makebox(0,0)[r]{\strut{}$-100$}}%
\csname LTb\endcsname%%
\put(860,2687){\makebox(0,0)[r]{\strut{}$-80$}}%
\put(860,2501){\makebox(0,0)[r]{\strut{}$-80$}}%
\csname LTb\endcsname%%
\put(860,3199){\makebox(0,0)[r]{\strut{}$-60$}}%
\put(860,2966){\makebox(0,0)[r]{\strut{}$-60$}}%
\csname LTb\endcsname%%
\put(980,440){\makebox(0,0){\strut{}$10^{2}$}}%
\csname LTb\endcsname%%
@ -104,7 +104,7 @@
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%%
\put(180,1919){\rotatebox{-270}{\makebox(0,0){\strut{}Phase noise (dBc/Hz)}}}%
\put(180,1919){\rotatebox{-270}{\makebox(0,0){\strut{}Phase noise floor (dBc/Hz)}}}%
\put(2860,140){\makebox(0,0){\strut{}Frequency offset (Hz)}}%
\csname LTb\endcsname%%
\put(3838,3036){\makebox(0,0)[r]{\strut{}VCXO}}%

21
grafi/modulator.csv

@ -0,0 +1,21 @@
0.0,-3.327735472795853,-0.932286108809762
2.0,-3.205544300953254,0.008298610691969925
4.0,-3.051230001851625,1.252697026409556
6.0,-2.837358592124422,2.890104690580857
8.0,-2.625410249566475,4.930878509217796
10.0,-2.392726121285174,6.949879664624267
12.0,-2.194835205227847,8.889893768211968
14.0,-2.01688666619548,10.82537491221712
16.0,-1.870289025346301,12.62789565757799
18.0,-1.730279034643245,14.27167913786338
20.0,-1.631688349926105,15.8131332478929
22.0,-1.535082856785756,17.15806357575284
24.0,-1.447067902037157,18.31279513524401
26.0,-1.388345191367347,19.24958342804053
27.0,-1.368059243151184,19.68809845896513
27.5,-1.371589961800412,19.8043968697311
28.0,-1.371343856386517,19.94999882542416
28.5,-1.350046419108711,20.10931987001011
29.0,-1.349241280748691,20.12845714245531
29.5,-1.355618880924385,20.25314263808756
30.0,-1.329032192521498,20.51652873949228

712
grafi/modulator.eps

@ -0,0 +1,712 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: modulator.tex
%%Creator: gnuplot 5.2 patchlevel 6
%%CreationDate: Fri Jul 1 10:26:49 2022
%%DocumentFonts:
%%BoundingBox: 50 50 305 191
%%EndComments
%%BeginProlog
/gnudict 256 dict def
gnudict begin
%
% The following true/false flags may be edited by hand if desired.
% The unit line width and grayscale image gamma correction may also be changed.
%
/Color true def
/Blacktext false def
/Solid false def
/Dashlength 1 def
/Landscape false def
/Level1 false def
/Level3 false def
/Rounded false def
/ClipToBoundingBox false def
/SuppressPDFMark false def
/TransparentPatterns false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/Gamma 1.0 def
/BackgroundColor {-1.000 -1.000 -1.000} def
%
/vshift -66 def
/dl1 {
10.0 Dashlength userlinewidth gnulinewidth div mul mul mul
Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
} def
/dl2 {
10.0 Dashlength userlinewidth gnulinewidth div mul mul mul
Rounded { currentlinewidth 0.75 mul add } if
} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/doclip {
ClipToBoundingBox {
newpath 50 50 moveto 305 50 lineto 305 191 lineto 50 191 lineto closepath
clip
} if
} def
%
% Gnuplot Prolog Version 5.2 (Dec 2017)
%
%/SuppressPDFMark true def
%
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/N {newpath moveto} bind def
/Z {closepath} bind def
/C {setrgbcolor} bind def
/f {rlineto fill} bind def
/g {setgray} bind def
/Gshow {show} def % May be redefined later in the file to support UTF-8
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow {currentpoint stroke M 0 vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
{pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
/BL {stroke userlinewidth 2 mul setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/AL {stroke userlinewidth 2 div setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/UL {dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def} def
/PL {stroke userlinewidth setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
3.8 setmiterlimit
% Classic Line colors (version 5.0)
/LCw {1 1 1} def
/LCb {0 0 0} def
/LCa {0 0 0} def
/LC0 {1 0 0} def
/LC1 {0 1 0} def
/LC2 {0 0 1} def
/LC3 {1 0 1} def
/LC4 {0 1 1} def
/LC5 {1 1 0} def
/LC6 {0 0 0} def
/LC7 {1 0.3 0} def
/LC8 {0.5 0.5 0.5} def
% Default dash patterns (version 5.0)
/LTB {BL [] LCb DL} def
/LTw {PL [] 1 setgray} def
/LTb {PL [] LCb DL} def
/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
/LT0 {PL [] LC0 DL} def
/LT1 {PL [2 dl1 3 dl2] LC1 DL} def
/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def
/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def
/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
/LT5 {PL [4 dl1 2 dl2] LC5 DL} def
/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def
/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def
/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def
/SL {[] 0 setdash} def
/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
/Dia {stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt} def
/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt} def
/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke} def
/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt} def
/Star {2 copy Pls Crs} def
/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill} def
/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill} def
/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt} def
/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill} def
/Pent {stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt} def
/PentF {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore} def
/Circle {stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt} def
/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
/C1 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath} bind def
/C2 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C3 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C4 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C5 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc} bind def
/C6 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C7 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C8 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C9 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath} bind def
/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C11 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C12 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C13 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C14 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc} bind def
/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath} bind def
/Square {dup Rec} bind def
/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill Bsquare} bind def
/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare} bind def
/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare} bind def
/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare} bind def
/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
/DiaE {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke} def
/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke} def
/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke} def
/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke} def
/PentE {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore} def
/CircE {stroke [] 0 setdash
hpt 0 360 arc stroke} def
/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
/DiaW {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke} def
/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke} def
/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke} def
/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke} def
/PentW {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore} def
/CircW {stroke [] 0 setdash
hpt 0 360 arc Opaque stroke} def
/BoxFill {gsave Rec 1 setgray fill grestore} def
/Density {
/Fillden exch def
currentrgbcolor
/ColB exch def /ColG exch def /ColR exch def
/ColR ColR Fillden mul Fillden sub 1 add def
/ColG ColG Fillden mul Fillden sub 1 add def
/ColB ColB Fillden mul Fillden sub 1 add def
ColR ColG ColB setrgbcolor} def
/BoxColFill {gsave Rec PolyFill} def
/PolyFill {gsave Density fill grestore grestore} def
/h {rlineto rlineto rlineto closepath gsave fill grestore stroke} bind def
%
% PostScript Level 1 Pattern Fill routine for rectangles
% Usage: x y w h s a XX PatternFill
% x,y = lower left corner of box to be filled
% w,h = width and height of box
% a = angle in degrees between lines and x-axis
% XX = 0/1 for no/yes cross-hatch
%
/PatternFill {gsave /PFa [ 9 2 roll ] def
PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
clip
currentlinewidth 0.5 mul setlinewidth
/PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
0 0 M PFa 5 get rotate PFs -2 div dup translate
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 M 0 PFs V} for
0 PFa 6 get ne {
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
} if
stroke grestore} def
%
/languagelevel where
{pop languagelevel} {1} ifelse
dup 2 lt
{/InterpretLevel1 true def
/InterpretLevel3 false def}
{/InterpretLevel1 Level1 def
2 gt
{/InterpretLevel3 Level3 def}
{/InterpretLevel3 false def}
ifelse }
ifelse
%
% PostScript level 2 pattern fill definitions
%
/Level2PatternFill {
/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
bind def
/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke}
>> matrix makepattern
/Pat1 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
>> matrix makepattern
/Pat2 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
8 8 L 8 0 L 0 0 L fill}
>> matrix makepattern
/Pat3 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
0 12 M 12 0 L stroke}
>> matrix makepattern
/Pat4 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
0 -4 M 12 8 L stroke}
>> matrix makepattern
/Pat5 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
0 12 M 8 -4 L 4 12 M 10 0 L stroke}
>> matrix makepattern
/Pat6 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
>> matrix makepattern
/Pat7 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
12 0 M -4 8 L 12 4 M 0 10 L stroke}
>> matrix makepattern
/Pat8 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
-4 0 M 12 8 L -4 4 M 8 10 L stroke}
>> matrix makepattern
/Pat9 exch def
/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
} def
%
%
%End of PostScript Level 2 code
%
/PatternBgnd {
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
} def
%
% Substitute for Level 2 pattern fill codes with
% grayscale if Level 2 support is not selected.
%
/Level1PatternFill {
/Pattern1 {0.250 Density} bind def
/Pattern2 {0.500 Density} bind def
/Pattern3 {0.750 Density} bind def
/Pattern4 {0.125 Density} bind def
/Pattern5 {0.375 Density} bind def
/Pattern6 {0.625 Density} bind def
/Pattern7 {0.875 Density} bind def
} def
%
% Now test for support of Level 2 code
%
Level1 {Level1PatternFill} {Level2PatternFill} ifelse
%
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
%
Level1 SuppressPDFMark or
{} {
/SDict 10 dict def
systemdict /pdfmark known not {
userdict /pdfmark systemdict /cleartomark get put
} if
SDict begin [
/Title (modulator.tex)
/Subject (gnuplot plot)
/Creator (gnuplot 5.2 patchlevel 6)
% /Producer (gnuplot)
% /Keywords ()
/CreationDate (Fri Jul 1 10:26:49 2022)
/DOCINFO pdfmark
end
} ifelse
%
% Support for boxed text - Ethan A Merritt Sep 2016
%
/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put
userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put
/Boxing true def } def
/ExtendTextBox { dup type /stringtype eq
{ Boxing { gsave dup false charpath pathbbox
dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse
dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse
dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse
dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse
grestore } if }
{} ifelse} def
/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M
TBx1 TBxmargin sub TBy2 TBymargin add L
TBx2 TBxmargin add TBy2 TBymargin add L
TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def
/DrawTextBox { PopTextBox stroke /Boxing false def} def
/FillTextBox { gsave PopTextBox fill grestore /Boxing false def} def
0 0 0 0 InitTextBox
/TBxmargin 20 def
/TBymargin 20 def
/Boxing false def
/textshow { ExtendTextBox Gshow } def
%
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
doclip
50 50 translate
0.050 0.050 scale
0 setgray
newpath
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 640 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 1039 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 1437 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 1836 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 2234 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 2633 M
63 0 V
stroke
0.00 0.38 0.68 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
980 640 M
0 63 V
stroke
LTb
1494 640 M
0 63 V
stroke
2007 640 M
0 63 V
stroke
2521 640 M
0 63 V
stroke
3034 640 M
0 63 V
stroke
3548 640 M
0 63 V
stroke
4061 640 M
0 63 V
stroke
4061 640 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 972 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 1304 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 1637 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 1969 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 2301 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
4061 2633 M
-63 0 V
stroke
0.87 0.09 0.12 C
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
2.000 UL
LTb
980 2633 N
980 640 L
3081 0 V
0 1993 V
-3081 0 V
Z stroke
1.000 UL
LTb
0.150 3804 640 103 1992 BoxColFill
1.000 UP
2.000 UL
LTb
0.00 0.38 0.68 C
LTb
LCb setrgbcolor
0.87 0.09 0.12 C
LTb
LCb setrgbcolor
LTb
% Begin plot #1
5.000 UL
LTb
0.00 0.38 0.68 C
980 777 M
205 98 V
206 123 V
205 170 V
206 169 V
205 186 V
205 157 V
206 142 V
205 117 V
206 112 V
205 78 V
205 77 V
206 71 V
205 46 V
103 17 V
51 -3 V
52 0 V
51 17 V
51 1 V
52 -5 V
51 21 V
stroke
LTw
% End plot #1
% Begin plot #2
5.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
0.87 0.09 0.12 C
980 910 M
205 63 V
206 82 V
205 109 V
206 136 V
205 134 V
205 129 V
206 128 V
205 120 V
206 109 V
205 103 V
205 89 V
206 77 V
205 62 V
103 29 V
51 8 V
52 10 V
51 10 V
51 1 V
52 9 V
51 17 V
stroke
LTw
% End plot #2
2.000 UL
LTb
LCb setrgbcolor
[] 0 setdash
2.000 UL
LTb
980 2633 N
980 640 L
3081 0 V
0 1993 V
-3081 0 V
Z stroke
1.000 UP
2.000 UL
LTb
stroke
grestore
end
showpage
%%Trailer

131
grafi/modulator.tex

@ -0,0 +1,131 @@
% GNUPLOT: LaTeX picture with Postscript
\begingroup
\makeatletter
\providecommand\color[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package color not loaded in conjunction with
terminal option `colourtext'%
}{See the gnuplot documentation for explanation.%
}{Either use 'blacktext' in gnuplot or load the package
color.sty in LaTeX.}%
\renewcommand\color[2][]{}%
}%
\providecommand\includegraphics[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package graphicx or graphics not loaded%
}{See the gnuplot documentation for explanation.%
}{The gnuplot epslatex terminal needs graphicx.sty or graphics.sty.}%
\renewcommand\includegraphics[2][]{}%
}%
\providecommand\rotatebox[2]{#2}%
\@ifundefined{ifGPcolor}{%
\newif\ifGPcolor
\GPcolortrue
}{}%
\@ifundefined{ifGPblacktext}{%
\newif\ifGPblacktext
\GPblacktextfalse
}{}%
% define a \g@addto@macro without @ in the name:
\let\gplgaddtomacro\g@addto@macro
% define empty templates for all commands taking text:
\gdef\gplbacktext{}%
\gdef\gplfronttext{}%
\makeatother
\ifGPblacktext
% no textcolor at all
\def\colorrgb#1{}%
\def\colorgray#1{}%
\else
% gray or color?
\ifGPcolor
\def\colorrgb#1{\color[rgb]{#1}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color[rgb]{1,0,0}}%
\expandafter\def\csname LT1\endcsname{\color[rgb]{0,1,0}}%
\expandafter\def\csname LT2\endcsname{\color[rgb]{0,0,1}}%
\expandafter\def\csname LT3\endcsname{\color[rgb]{1,0,1}}%
\expandafter\def\csname LT4\endcsname{\color[rgb]{0,1,1}}%
\expandafter\def\csname LT5\endcsname{\color[rgb]{1,1,0}}%
\expandafter\def\csname LT6\endcsname{\color[rgb]{0,0,0}}%
\expandafter\def\csname LT7\endcsname{\color[rgb]{1,0.3,0}}%
\expandafter\def\csname LT8\endcsname{\color[rgb]{0.5,0.5,0.5}}%
\else
% gray
\def\colorrgb#1{\color{black}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color{black}}%
\expandafter\def\csname LT1\endcsname{\color{black}}%
\expandafter\def\csname LT2\endcsname{\color{black}}%
\expandafter\def\csname LT3\endcsname{\color{black}}%
\expandafter\def\csname LT4\endcsname{\color{black}}%
\expandafter\def\csname LT5\endcsname{\color{black}}%
\expandafter\def\csname LT6\endcsname{\color{black}}%
\expandafter\def\csname LT7\endcsname{\color{black}}%
\expandafter\def\csname LT8\endcsname{\color{black}}%
\fi
\fi
\setlength{\unitlength}{0.0500bp}%
\ifx\gptboxheight\undefined%
\newlength{\gptboxheight}%
\newlength{\gptboxwidth}%
\newsavebox{\gptboxtext}%
\fi%
\setlength{\fboxrule}{0.5pt}%
\setlength{\fboxsep}{1pt}%
\begin{picture}(5102.00,2834.00)%
\gplgaddtomacro\gplbacktext{%
\colorrgb{0.00,0.38,0.68}%%
\put(860,640){\makebox(0,0)[r]{\strut{}-3.5}}%
\colorrgb{0.00,0.38,0.68}%%
\put(860,1039){\makebox(0,0)[r]{\strut{}-3.0}}%
\colorrgb{0.00,0.38,0.68}%%
\put(860,1437){\makebox(0,0)[r]{\strut{}-2.5}}%
\colorrgb{0.00,0.38,0.68}%%
\put(860,1836){\makebox(0,0)[r]{\strut{}-2.0}}%
\colorrgb{0.00,0.38,0.68}%%
\put(860,2234){\makebox(0,0)[r]{\strut{}-1.5}}%
\colorrgb{0.00,0.38,0.68}%%
\put(860,2633){\makebox(0,0)[r]{\strut{}-1.0}}%
\csname LTb\endcsname%%
\put(980,440){\makebox(0,0){\strut{}$0$}}%
\put(1494,440){\makebox(0,0){\strut{}$5$}}%
\put(2007,440){\makebox(0,0){\strut{}$10$}}%
\put(2521,440){\makebox(0,0){\strut{}$15$}}%
\put(3034,440){\makebox(0,0){\strut{}$20$}}%
\put(3548,440){\makebox(0,0){\strut{}$25$}}%
\put(4061,440){\makebox(0,0){\strut{}$30$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,640){\makebox(0,0)[l]{\strut{}$-5$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,972){\makebox(0,0)[l]{\strut{}$0$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,1304){\makebox(0,0)[l]{\strut{}$5$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,1637){\makebox(0,0)[l]{\strut{}$10$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,1969){\makebox(0,0)[l]{\strut{}$15$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,2301){\makebox(0,0)[l]{\strut{}$20$}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4181,2633){\makebox(0,0)[l]{\strut{}$25$}}%
}%
\gplgaddtomacro\gplfronttext{%
\colorrgb{0.00,0.38,0.68}%%
\put(180,1636){\rotatebox{-270}{\makebox(0,0){\strut{}Insersion loss (dB)}}}%
\colorrgb{0.87,0.09,0.12}%%
\put(4781,1636){\rotatebox{-270}{\makebox(0,0){\strut{}Phase shift (\degree)}}}%
\csname LTb\endcsname%%
\put(2520,140){\makebox(0,0){\strut{}Modulation voltage (V)}}%
}%
\gplbacktext
\put(0,0){\includegraphics{modulator}}%
\gplfronttext
\end{picture}%
\endgroup

4
grafi/plot-floor

@ -5,10 +5,10 @@ set terminal epslatex size 9cm,6cm font ',10pt' color colortext
set output 'floor.tex'
set xlabel 'Frequency offset (Hz)'
set ylabel 'Phase noise (dBc/Hz)'
set ylabel 'Phase noise floor (dBc/Hz)'
set format x '$10^{%T}$'
set xrange [100:100000]
set yrange [-160:-60]
set yrange [-160:-50]
set key top right
set grid
set grid mxtics

26
grafi/plot-mod

@ -0,0 +1,26 @@
#!/usr/bin/gnuplot
set datafile separator ','
set terminal epslatex size 9cm,5cm font ',10pt' color colortext
set output 'modulator.tex'
set border linewidth 2
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 5
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 5
set style rect fc lt -1 fs solid 0.15 noborder
set obj rect from 27.5, graph 0 to 28.5, graph 1
set xlabel 'Modulation voltage (V)'
set ylabel 'Insersion loss (dB)' textcolor linestyle 1
set y2label 'Phase shift (\degree)' textcolor linestyle 2
set format y '%.1f'
set xtics nomirror
set ytics 0.5 nomirror textcolor linestyle 1
set y2tics textcolor linestyle 2
unset key
plot 'modulator.csv' u 1:2 w lines linestyle 1,\
'modulator.csv' u 1:3 w lines axes x1y2 linestyle 2

2
grafi/plot-pn

@ -8,7 +8,7 @@ set xlabel 'Frequency offset (Hz)'
set ylabel 'Phase noise (dBc/Hz)'
set format x '$10^{%T}$'
set xrange [100:100000]
set yrange [-150:-50]
set yrange [-160:-50]
set key top right
set grid
set grid mxtics

8024
grafi/pn.eps
File diff suppressed because it is too large
View File

12
grafi/pn.tex

@ -82,15 +82,17 @@
\begin{picture}(5102.00,3400.00)%
\gplgaddtomacro\gplbacktext{%
\csname LTb\endcsname%%
\put(860,896){\makebox(0,0)[r]{\strut{}$-140$}}%
\put(860,640){\makebox(0,0)[r]{\strut{}$-160$}}%
\csname LTb\endcsname%%
\put(860,1408){\makebox(0,0)[r]{\strut{}$-120$}}%
\put(860,1105){\makebox(0,0)[r]{\strut{}$-140$}}%
\csname LTb\endcsname%%
\put(860,1920){\makebox(0,0)[r]{\strut{}$-100$}}%
\put(860,1571){\makebox(0,0)[r]{\strut{}$-120$}}%
\csname LTb\endcsname%%
\put(860,2431){\makebox(0,0)[r]{\strut{}$-80$}}%
\put(860,2036){\makebox(0,0)[r]{\strut{}$-100$}}%
\csname LTb\endcsname%%
\put(860,2943){\makebox(0,0)[r]{\strut{}$-60$}}%
\put(860,2501){\makebox(0,0)[r]{\strut{}$-80$}}%
\csname LTb\endcsname%%
\put(860,2966){\makebox(0,0)[r]{\strut{}$-60$}}%
\csname LTb\endcsname%%
\put(980,440){\makebox(0,0){\strut{}$10^{2}$}}%
\csname LTb\endcsname%%

0
modulator/16.s2p → modulator/16v.s2p

21
modulator/files.txt

@ -0,0 +1,21 @@
"00v.s2p",
"02v.s2p",
"04v.s2p",
"06v.s2p",
"08v.s2p",
"10v.s2p",
"12v.s2p",
"14v.s2p",
"16.s2p",
"18v.s2p",
"20v.s2p",
"22v.s2p",
"24v.s2p",
"26v.s2p",
"27.5v.s2p",
"27v.s2p",
"28.5v.s2p",
"28v.s2p",
"29.5v.s2p",
"29v.s2p",
"30v.s2p"

21
modulator/modulator.csv

@ -0,0 +1,21 @@
0.0,-3.327735472795853,-0.932286108809762
2.0,-3.205544300953254,0.008298610691969925
4.0,-3.051230001851625,1.252697026409556
6.0,-2.837358592124422,2.890104690580857
8.0,-2.625410249566475,4.930878509217796
10.0,-2.392726121285174,6.949879664624267
12.0,-2.194835205227847,8.889893768211968
14.0,-2.01688666619548,10.82537491221712
16.0,-1.870289025346301,12.62789565757799
18.0,-1.730279034643245,14.27167913786338
20.0,-1.631688349926105,15.8131332478929
22.0,-1.535082856785756,17.15806357575284
24.0,-1.447067902037157,18.31279513524401
26.0,-1.388345191367347,19.24958342804053
27.0,-1.368059243151184,19.68809845896513
27.5,-1.371589961800412,19.8043968697311
28.0,-1.371343856386517,19.94999882542416
28.5,-1.350046419108711,20.10931987001011
29.0,-1.349241280748691,20.12845714245531
29.5,-1.355618880924385,20.25314263808756
30.0,-1.329032192521498,20.51652873949228

BIN
modulator/modulator.pdf

39
modulator/parse.py

@ -0,0 +1,39 @@
from linecache import getline
import csv
line = getline("00v.s2p", 406)
print(line)
files = [
"00v.s2p",
"02v.s2p",
"04v.s2p",
"06v.s2p",
"08v.s2p",
"10v.s2p",
"12v.s2p",
"14v.s2p",
"16v.s2p",
"18v.s2p",
"20v.s2p",
"22v.s2p",
"24v.s2p",
"26v.s2p",
"27v.s2p",
"27.5v.s2p",
"28v.s2p",
"28.5v.s2p",
"29v.s2p",
"29.5v.s2p",
"30v.s2p"]
with open("modulator.csv","w") as cs:
writer = csv.writer(cs, delimiter=',')
for f in files:
V = float(f.split('v')[0])
line = getline(f,406).split()
s21 = float(line[3])
ph = float(line[4])
writer.writerow([V,s21,ph])

25
modulator/plot-mod

@ -0,0 +1,25 @@
#!/usr/bin/gnuplot
set datafile separator ","
set terminal pdf
set output "modulator.pdf"
set border linewidth 2
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 5
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 5
set style rect fc lt -1 fs solid 0.15 noborder
set obj rect from 27.5, graph 0 to 28.5, graph 1
set xlabel "Voltage (V)"
set ylabel "S21 mag (dB)" textcolor linestyle 1
set y2label "angle (degree)" textcolor linestyle 2
set xtics nomirror
set ytics nomirror textcolor linestyle 1
set y2tics textcolor linestyle 2
unset key
plot "modulator.csv" u 1:2 w lines linestyle 1,\
"modulator.csv" u 1:3 w lines axes x1y2 linestyle 2
Loading…
Cancel
Save