Transistor/matlab logarithmisches Millimeterpapier?
Hallo Leute,
ich habe folgendes Problem. Ich muss den Amplitudenfrequenzgang eines Transistor auf logarithisches Millimeterpapier darstellen. Ich habs probiert, bin aber langsam echt am Ende. Das sind meine Werte, dabei ist f in Hz = x und Ua/Ue = y. So sieht der Code für matlab aus:
x = [10 101 1021 2500 5000 7500 10000 12540 15070 17600 20030 22520 25060 30000 41000 50000 60500 70300 81000 90600 100000];
y = [1.896 25.598 151.694 179.66 184.877 185.589 185.589 185.114 184.403 183.455 182.507 181.559 180.374 177.767 171.130 164.019 156.198 148.850 140.554 133.206 125.859];
loglog(x,y,'-')
grid on
Wenn ich das jetzt versuche zu plotten, dann kommt sowas raus:
Es soll aber so aussehen:
Vielleicht gibt es jemanden der mir helfen kann?
3 Antworten
Es ist natürlich sehr verführerisch sich einfach einer Funktion zu bedienen, die automatisch die x-Werte transformiert in log(x)-Werte, um den 10er-Potenzen eine vernünftige Skalierung zu geben.
semilogx() nehmen und fertig ist die Geschichte.
Aber, was ist da eigentlich passiert? Wie erklärst Du Schrittweiten? Kannst Du sie auch selbst logarithmisch skalieren? Und wie kannst Du logarithmische Werte zusätzlich stauchen oder strecken um eine kürzere oder längere x-Achse zu erhalten?
Wenn Du anstelle von log(x) mit 2 log(x) oder gar 5 log(x) rechnest, was passiert dann?
Und was passiert mit (1/2) log(x) oder gar (1/5) log(x)?

Vielen vielen Dank, jetzt hat es glücklicherweise endlich geklappt. Das sind wirklich sehr gut Fragen, ehrlich gesagt weiß ich die Antwort nicht. Ich könnte eine Anwort geben, aber die wäre falsch. Dieses Themengebiet ist ziemlich neu für mich.
Bei deiner ursprünglichen Darstellung ist nur die x-Achse logarithmisch. Aber mittels loglog() in Matlab werden beide Achsen logarithmisch dargestellt. Du solltest daher loglog() durch semilogx() ersetzen.
Die y-Achse soll nicht logarithmisch dargestellt werden, nur die x-Achse. Suchst du dafür eine Matlab-Darstellung?
Das Themengebiet ist ziemlich neu für mich, hatte mir schon irgendwie gedacht, dass da ein Fehler ist. Wie genau macht man das dann mit matlab?