Forum: PC Hard- und Software Kurven aus VNA in Gnuplot


von Stephan B. (Gast)


Lesenswert?

Hallo,
ich weiß nicht sorecht in welchem Forum ich das Posten soll - aber ich 
denke dass Offtopic das beste hierfür ist.

Ich habe Messkurven aus einem VNA(R&S) als CSV-Datei gespeichert.
Die Daten Liegen nun in folgendem Format vor:

freq[Hz]  re:Trc1_Sdd11  im:Trc1_Sdd11
1,00E+05  2,19E-02  -2,43E-04
1,02E+05  2,19E-02  -1,97E-04
1,05E+05  2,19E-02  -2,02E-04
1,07E+05  2,19E-02  -1,84E-04
1,10E+05  2,19E-02  -1,79E-04
[...]

Ich möchte nun mit der Formel: 
20*LOG10(SQRT(re:Trc1_Sdd11^2+im:Trc1_Sdd11^2))
Die Beträge ausrechnen und mit GNUPlot über eine Logarithmischen 
Frequenzskala plotten.

freq[Hz]  re:Trc1_Sdd11
1,00E+05  2,19E-02
1,02E+05  2,19E-02
1,05E+05  2,19E-02
1,07E+05  2,19E-02
1,10E+05  2,19E-02
[...]

Kann mir bitte jemand dabei helfen?
Ich zweifle leider schon daran dass GNUPlot das berechenen kann...
Das würde heißen ich brauche noch ein zweites Tool für die umrechnungne 
und dann GNUPlot fürs Plotten.

//Ach ja: Bevor jemand so schlau ist und mit den Tipp gibt die 5 Werte 
von Hnad zu berechnen: Es geht um hunderte Frequenzpunkte. Das ist nur 
ein Ausschnitt zur Verdeutlichung :-)

Vielen Dank

: Verschoben durch User
von Test (Gast)


Lesenswert?

Nimm eben Openoffice und gut. Alternativ was richtiges wie Matlab

von wosnet (Gast)


Lesenswert?

Hier mal ein einfaches Beispiel, das alles wichtige enthalten sollte.
Gnuplot kann problemlos Werte berechnen, siehe auch die sehr gute 
gnuplot doku.
1
reset
2
3
set terminal postscript eps enhanced dashlength 5 "LMRoman10-Regular" 24 size 9cm,6cm
4
     
5
set output "jtran.eps"
6
7
set size 1,1
8
9
set rmargin 1
10
set lmargin 1
11
set bmargin 1
12
set tmargin 1
13
14
unset key
15
set xlabel 'f / Hz'
16
set xrange [1e3:1e9]
17
set xtics 10
18
set format x "10^{%L}"
19
set logscale x
20
set ylabel 'jitter transfer / dB' 1
21
set yrange [-80:5]
22
set ytics (-80,-60,-40,-20,0)
23
set grid xtics nomxtics ytics nomytics noy2tics nomy2tics lw 1 lt 4, lw 0.1
24
set pointsize 3
25
set samples 1000
26
27
db(mag) = 20*log10(mag)
28
29
set datafile separator ","
30
31
set style line 2 lw 4
32
33
plot "jtran_mask.csv" using ($1):($2) with lines ls 2 , \
34
     "jtran_data.csv" using ($1):(db($2)) with lines lt 1 lw 3

von Karl (Gast)


Lesenswert?

Test schrieb:
> Nimm eben Openoffice und gut. Alternativ was richtiges wie Matlab

Die Vorschläge waren beide sinnlos. Beide Programme sind nicht zum 
plotten.

Ein ordentlicher Vorschlag wäre Qitplot oder wenn's was Richtiges sein 
soll Origin

von Stephan B. (Gast)


Lesenswert?

Karl schrieb:
> Ein ordentlicher Vorschlag wäre Qitplot oder wenn's was Richtiges sein
> soll Origin

Origin ist leider viel zu teuer. Qtiplot ist super - sowas hab ich schon 
lange gesucht.
Vielen Dank!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Falls die Gnuplot-Lösung trotzdem noch von Interesse ist:
1
set decimalsign locale
2
set logscale x
3
plot "data" every ::1 using 1:(20*log10(sqrt($2**2+$3**2))) with lines

Damit die Kommata als Dezimaltrennzeichen interpretiert werden, muss die
Enviromnment-Variable LC_NUMERIC (oder LANG, wenn LC_NUMERIC nicht
existiert) auf eine deutsche Locale (bei mir bspw. de_DE.utf8) gesetzt
sein. Alternativ kann der gewünschte Locale-String in Gnuplot auch
explizit angegeben werden mit
1
set decimalsign locale "de_DE.utf8"

Mit "every ::1" wird die erste Datenzeile (mit den Spaltenüberschriften)
übersprungen. "using 1:(20*log10(sqrt($2**2+$3**2)))" gibt an, dass die
x-Werte aus Spalte 1 genommen und die y-Werte aus den Spalten 2 und 3
gemäß der angegebenen Formel berechnet werden.

von Stephan B. (Gast)


Lesenswert?

Vielen Dank nochmals - auch die GNUPlot Lösung werde ich noch testen.
100% zufrieden bin ich mit Qtiplot leider nicht. Die Software ist 
irgendwie sehr buggy.
Zu Zeit teste ich:
http://scidavis.sourceforge.net
Ist wohl ein Fork von Qtiplot

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.