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
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 |
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
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.