Hei, ich habe eine Schaltung vermessen welche ich von 0-5V durch gesweept habe. Nun habe ich 10 S-Parameter Files mit 0V, 0.5V, 1V, 1.5V,...5V. Jetzt möchte ich die gemessenen Werte über die Spannung auftragen. Also Y-Achse S21 Werte und X-Achse die Spannung von 0-5V. Das Problem ist das ich ja nun 10 verschiedene S-Parameter Files habe und dies nun irgendwie zusammenschreiben und die Information der Spannung noch eintragen müsste damit ich meinen gewünschten Plot bekäme. Wie macht man das? Wie macht Ihr das? Oben mal 2 S-Parameter Files von mit bei verschiedenen Spannung gemessen. Grüße
Ja, mit Matlab (wenn Du es hast) kann man die Daten als Matrizen importieren/laden, um anschließend diese in geeigneter Weise zusammenfügen (Concatenating) (cat-funktion war für mich auch sehr nützlich gewesen) oder die benötigten Daten durch geeignetes Indizierung "rausfiltern". Man kann aber 2D-Plots auch mit Excel hinkriegen, wenn man die s2p-files erst nacheinader importiert und dann die benötigten S-Parameter nebeneinander stellt - dass lässt sich vielleicht mit den 10 Dateien noch bewältigen. Wenn Du aber mehr davon hast (oder die Messung mal wiederholen willst) ist die Matlab-Variante viel einfacher. Außerdem fällt mir ein, dass Du Zugang zum ADS hast - dort kann man die Messdaten als Touchstone importieren, simulieren (mit jeweils 2 Ports) und anschließend darstellen (wird sogar das Vergleich mit der Simulation einfacher sein, wenn Du dein Duplexer vorher mit ADS designed hast). Was die Qualität der Bilder angeht, bevorzuge ich für mich eher Matlab.
Sawyer M. schrieb: > Wie macht man das? - Daten aus den Files einlesen - Daten passend anordnen/umsortieren - Plot erzeugen > Wie macht Ihr das? - Daten aus den Files einlesen - Daten passend anordnen/umsortieren - Plot erzeugen Deine, mit der eigenwilligen Extension "s2p" versehenen Files sind ganz normale Textdateien, die du mit jeder Tabellenkalkulation oder sonstigem Rechenprogramm importieren kannst. Die Bedeutung der Zahlen solltest du allerdings schon kennen.
Hm, ja Matlab habe ich. Ich weis auch das man mit: obj = sparameters(filename) S-Parameter importieren kann. Das Problem wo ich für mich habe ist, das in meinen S-Parameter die aufgenommen worden keine Information der angelegten Spannung enthalten sind. Jetzt müsste ich die S-Parameter einlesen. Also 10x hintereinander mit obj = sparameters(data,freq); Jedesmal mit einer anderen variablen Zuweisung. Dann kann ich ja mit hs = rfparam(S,2,1); meine S21 Parameter bestimmen und mit rfplot(hs,2,1,'angle’); die Phase ausgeben. Also so: clc; clear all; s1 = sparameters(filename); s2 = sparameters(filename); s3 = sparameters(filename); s4 = sparameters(filename); s5 = sparameters(filename); obj1 = sparameters(s1,2e9) obj2 = sparameters(s2,2e9) obj3 = sparameters(s3,2e9) obj4 = sparameters(s4,2e9) obj5 = sparameters(s5,2e9) figure(1) hold on rfplot(hs,2,1,'angle') xlabel('Volt'); ylabel('Phase‘); Jedoch weis ich nun nicht, wie man für file s1 = 0V und s2 = 0,5V usw. alle in eine Plot bekomme mit einer Verbundenen Linie. Irgendwie müsste ich ja die Spannung mit einem Zähler hoch zählen. Hat mir da jemand einen Tipp oder ist das viel zu kompliziert wie ich das angefangen habe? Am Ende habe ich über 100 Schrittweiten und somit über 100 S-Parameterfiles, deshalb möchte ich einen unkomplizierte Lösung finden. Vielen Dank für eure Hilfe
Genaugenommen gibt das doch einen dreidimsionalen Plot. X-Achse Spannung, Y-Achse Frequenz, z-Achse Betrag.
In der Simulation geht es ja einfacher. Und da sieht es so aus wie oben im Bild. Nun möchte ich halt die S-Parameter von den Messungen genauso zusammen führen. Jede Gerade ist eine bestimmte Frequenz
Welchen Sinn amcht es die S-Parameter von 4000 Frequenzen zu einem Wert zusammenzufassen oder möchtest du jetzt 4000 Kurven plotten? Zeichne doch mal ein Bild wie du dir das Ergebnis vorstellst.
:
Bearbeitet durch User
Helmut S. schrieb: > Welchen Sinn amcht es die S-Parameter von 4000 Frequenzen zu einem Wert > zusammenzufassen oder möchtest du jetzt 4000 Kurven plotten? > > Zeichne doch mal ein Bild wie du dir das Ergebnis vorstellst. Ich glaube da habe ich mich ein wenig umständlich ausgedrückt. Die 3 Kurven oben sind nur 3 Frequenzen die mich explizit interessieren. Ich kann ja dann in Matlab sagen nur diese Frequenz interessiert mich. Jedoch die Schrittweise der VCO ist bis jetzt auf 0,5V gewählt worden, diese wird aber in Zukunft kleiner gewählt deshalb werden es ja mehr S-Parameter Files die ich dann bei der Messung aufnehmen werde. Doch zu aller erst möchte ich es mit 0,5V ausprobieren die S-Parameter wie oben im Bild darzustellen sodass die Phase über die VCO dargestellt wird. Deshalb oben meine anfängliche Idee des Matlab Codes.
Das einfachste wäre du schreibst ein kleines Programm in irgend einer Skriptsprache das die eine Zeile mit der gesuchten Frequenz aus allen deinen Files heraussucht und in eine neue Textdatei speichert. Dazu muss man natürlich sicher sein, dass entweder die Frequenz bis auf genügend viele Ziffern in allen Files eindeutig vorhanden ist oder es immer die n-te Zeile ist. 1.500012503125782E9 -8.991496257157110 .......
Helmut S. schrieb: > Dazu muss man natürlich sicher sein, dass entweder die Frequenz bis > auf genügend viele Ziffern in allen Files eindeutig vorhanden ist oder > es immer die n-te Zeile ist. Bei Floating Point ist ein Test auf Gleichheit immer kritisch. Da muss man schon sehr genau wissen, was man tut und wie die Zahlen aussehen. Besser ist ein Größer/Kleiner-Vergleich. Statt z.B. auf "=2.000137534383596E9" zu prüfen, wäre hier ein Test auf ">1.9998E9" i.A. besser. Damit ist man auch auf der sicheren Seite, wenn die "2.00000E9" als "1.999999...E9" ausgeworden wurde. Davon abgesehen ist es natürlich völlig sinnbefreit, wenn die Daten mit 16 Stellen ausgeworfen werden. Ich wage mal zu behaupten, dass das Gerät diese Genauigkeit nie und nimmer her gibt. Da enthält der Datenfile größtenteils Zufallszahlen ohne messtechnische Bedeutung.
Hm, kann mir keiner was zum Matlab Code sagen? Oder kann ich was in den Header der S-Parameter schreiben?
Ich habe es bis jetzt in Matlab nicht geschafft den Plot zu genieren aus vielen verschiedenen Datensätzen. Hat mir jemand ein Beispiel oder einen Ansatz wie ich da lösen könnte. Es wurde oben sofort gesagt mit Matlab aber nicht wie das gehen kann. Ich verstehe auch nicht den Aufbau von s2p Parameter. Sonst könnte ich es als Text Datei einlesen und gezielt die Werte herausgreifen die ich möchte. Oder gibt es eine Möglichkeit mit ADS dies zu tun? Das Porblem ist ja das jedes File bei einer anderen Spannung gemessen wurde. Diese Information steckt nicht in der Datei und das verursacht mir ja die Probleme wenn ich die Phasenänderung über die Spannung auftragen möchte. Hat mir jemand einen Ansatz??
> Ich verstehe auch nicht den Aufbau von s2p Parameter. Da kann ich dir helfen. # HZ S DB R 50.0 Du hast DB und die Frequenz in Hz. Dein Bezugssystem hat R=50Ohm. Die Reihenfolge der Daten ist S11, S21, S12, S22 mit jeweils Betrag in DB und Phase in Grad. Aufbau der Zeile: FREQ 20log10|S11| <S11 20log10|S21| <S21 20log10|S12| <x12 20log10|S22| <S22 < Zeichen für Winkel in Grad log10 ist der Logarithmus zur Basis 10. -1.378815439892719E1 = -1,3788....*10^1 1. Zeile 1.450000000000000E9 -1.378815439892719E1 -1.398580144069250E1 -2.374888270287687 1.730248290172491E2 -2.438510372274786 1.717659098696045E2 -1.416139426776584E1 -1.683125281489606E1 http://cp.literature.agilent.com/litweb/pdf/genesys200801/sim/linear_sim/sparams/touchstone_file_format.htm Auszug au dem Link For .s1p files: # [ HZ KHZ MHZ / GHZ] [ S Y Z ] [ MA DB RI ] [ Rn ] For .s2p files: # [ HZ KHZ MHZ / GHZ ] [ S Y Z G H ] [ MA DB RI ] [ Rn ] For .snp (n >= 3) files: # [ HZ KHZ MHZ / GHZ ] [ S ] [ MA / DB / RI ] [ Rn ] where square brackets [...] indicate optional information; .../.../.../ indicates that you select one of the choices; and, n is replaced by a positive number. S-Parameter Data Frequency data lines contain the data of interest. A special format is used for 2-port data files where all of the network parameter data for a single frequency is listed on one line. The order of the network parameters is: S11, S21, S12, S22 For 3-port or higher data files, the network parameters appear in the file in a matrix form, each row starting on a separate line. A maximum of four network parameters (with 2 real numbers for each) appear on any line. The remaining network parameters are continued on as many additional lines as are needed. The following sections describe the data-line format for single and multi-port components. S-Parameter Data Line Format The frequency line data will have one of the following formats: Magnitude Angle <FREQ> |S11| <S11 |S21| <S21 |S12| <S12 |S22| <S22 Real Imaginary <FREQ> Re{S11} Im{S11} Re{S21} Im{S21} Re{S12} Im{S12} Re{S22} Im{S22} dB Angle <FREQ> 20log10|S11| <S11 20log10|S21| <S21 20log10|S12| <x12 20log10|S22| <S22 Note: For each s1p and s2p file format, the data must be on one line.
Helmut S. schrieb: >> Ich verstehe auch nicht den Aufbau von s2p Parameter. > > Da kann ich dir helfen. > > # HZ S DB R 50.0 > > Du hast DB und die Frequenz in Hz. Dein Bezugssystem hat R=50Ohm. > > Die Reihenfolge der Daten ist S11, S21, S12, S22 mit jeweils Betrag in > DB und Phase in Grad. > > Aufbau der Zeile: > > FREQ 20log10|S11| <S11 20log10|S21| <S21 20log10|S12| <x12 > 20log10|S22| <S22 > > > < Zeichen für Winkel in Grad > log10 ist der Logarithmus zur Basis 10. > -1.378815439892719E1 = -1,3788....*10^1 > > 1. Zeile > 1.450000000000000E9 -1.378815439892719E1 -1.398580144069250E1 > -2.374888270287687 1.730248290172491E2 -2.438510372274786 > 1.717659098696045E2 -1.416139426776584E1 -1.683125281489606E1 > > Neun Werte deshalb weil ( ich liste mal auf): 1.450000000000000E9 ->Frequenz -1.378815439892719E1 -> S11 -2.374888270287687 -> S21 -1.398580144069250E1 -> S12 1.730248290172491E2 -> S22 -2.438510372274786 -> Phase S11 1.717659098696045E2 -> PhaseS21 -1.416139426776584E1 -> Phase S12 -1.683125281489606E1 -> Phase S22 > http://cp.literature.agilent.com/litweb/pdf/genesys200801/sim/linear_sim/sparams/touchstone_file_format.htm > > Auszug au dem Link > > For .s1p files: # [ HZ KHZ MHZ / GHZ] [ S Y Z ] [ MA / DB / > RI ] [ Rn ] > > For .s2p files: # [ HZ KHZ MHZ / GHZ ] [ S Y Z G H ] [ > MA DB RI ] [ Rn ] > > For .snp (n >= 3) files: # [ HZ KHZ MHZ / GHZ ] [ S ] [ MA / DB > / RI ] [ Rn ] > > where square brackets [...] indicate optional information; .../.../.../ > indicates that you select one of the choices; and, n is replaced by a > positive number. > > S-Parameter Data > > Frequency data lines contain the data of interest. A special format is > used for 2-port data files where all of the network parameter data for a > single frequency is listed on one line. The order of the network > parameters is: > > S11, S21, S12, S22 > > For 3-port or higher data files, the network parameters appear in the > file in a matrix form, each row starting on a separate line. A maximum > of four network parameters (with 2 real numbers for each) appear on any > line. The remaining network parameters are continued on as many > additional lines as are needed. > > The following sections describe the data-line format for single and > multi-port components. > > S-Parameter Data Line Format > > The frequency line data will have one of the following formats: > > Magnitude Angle > > <FREQ> |S11| <S11 |S21| <S21 |S12| <S12 |S22| <S22 > > Real Imaginary > > <FREQ> Re{S11} Im{S11} Re{S21} Im{S21} Re{S12} Im{S12} Re{S22} > Im{S22} > > dB Angle > > <FREQ> 20log10|S11| <S11 20log10|S21| <S21 20log10|S12| <x12 > 20log10|S22| <S22 > > Note: For each s1p and s2p file format, the data must be on one line. Könnte ich in den Header noch die Information meiner Spannung mit einfügen? Weil das große Ziel das ich habe ist die 3 S-Parameter Files einzulesen und nach Spannung und Phase bei einer Frequenz aufzutragen. So wie das Bild was ich weiter oben mal eingefügt habe. In ADS habe ich diesen Plot erzeugt. Wenn ich da die Parameter Exportieren für den Plot schmei´t der mir eine txt Datei aus mit dieser Struktur: freq 0 plot_vs(unwrap(phase(S(2,1))), VDC)[0, ::] 2.45000000000000020E9 0.00000000000000000E0 8.32652660336566260E1 2.45000000000000020E9 1.00000000000000000E-1 8.54076035571150700E1 2.45000000000000020E9 2.00000000000000000E-1 8.75898023712521120E1 2.45000000000000020E9 3.00000000000000040E-1 8.98112303715735830E1 2.45000000000000020E9 4.00000000000000000E-1 9.20711427736930870E1 2.45000000000000020E9 5.00000000000000000E-1 9.43686797042637340E1 2.45000000000000020E9 6.00000000000000000E-1 9.67028655869293810E1 2.45000000000000020E9 7.00000000000000000E-1 9.90726085926933030E1 2.45000000000000020E9 7.99999999999999910E-1 1.01476701603890510E2 ..... Könnte ich meine Messergebnisse auch so umschreiben?
:
Bearbeitet durch User
> Könnte ich meine Messergebnisse auch so umschreiben?
Dann schreib halt ein Python-Skript und lies die eine Zeile bei 2,45GHz
aus allen s2p-Files und schreib die dann eine neue Datei.
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.