|
Sonic |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 16.12.2011, 16:05
Titel: Fourierspektrum dBµV
|
|
Hallo Leute,
ich muss eine Frequenzanalyse von mehreren Datensätzen (Spannungssignale) machen. Das jeweilige Spektrum soll folgendermaßen geplottet werden:
X-Achse: Hz
Y-Achse: dBµV
Weiss jemand ob man dafür das Signal vor der Fouriertransformation in dBµV umrechnen muss oder danach?
Es wäre auch super, wenn mir jemand sagen könnte, wie man in diesem Fall einen sinnvollen Frequenzvektor erstellt über den man plotten kann um ein sinnvolles Ergebnis zu bekommen.
Danke schonmal vielmals und schönes WE
Gruß Sonic
|
|
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 18.12.2011, 16:35
Titel:
|
|
Du solltest dir mal das umfassende FFT-Beispiel hier in der Skriptecke ansehen. Dort findest du alles was du benötigst, sogar fast fertig. Ob du nun µV hast spielt da keine Rolle. Wichtig bei der Umrechnung in dB, die übrigens erst nach der Transformation erfolgt, ist die Formel für Spannungen zu benutzen... 20*log10(Ua/Ue)
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 18.12.2011, 18:39
Titel:
|
|
Hi DSP,
ja das beispiel kenn ich bereits, ich wusste nur nicht wann die Umrechnung in dBµV erfolgen muss, aber danke für deinen Hinweis.
Ich meine nur, die Abtastfrequenz hängt ja von der Abtastzeit ab und von der wiederum der Frequenzvektor über den geplottet wird.
Es ist so dass ich Datensätze aus der Simulation und aus Messungen habe, wobei die Messdaten schon in transformierter Form vorliegen.
Bei den Simulationsdaten müsste ich ja die Schrittweite verwenden in der das Modell berechnet wird oder?
Momentan hab ich aber mit variabler Schrittweite simuliert...meinst du (oder wer anders) dass ich nochmal mit fixer Schrittweite simulieren muss und dann die fft durchführen?
Grüße Sonic
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 18.12.2011, 18:45
Titel:
|
|
Du benötigst auf jeden Fall für ein Frequenzspektrum, wie es in dem Skript dargestellt wird, eine feste Abtastfrequenz. Die Schrittweite df der diskreten Frequenzen ist davon abhängig. Mit df lässt sich ja dann sehr einfach ein Frequenzvektor von z.B. 0...fs/2 [Hz] darstellen.
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 19.12.2011, 09:49
Titel:
|
|
okay, super vielen dank für deine Hilfe!!
Aber es is schon so, dass ich bei der Auswertung der Simulation die Sampletime von Simulink als dt verwende oder?
Und diese Sampletime muss mehr als doppelt so hoch sein als die maximal vorkommende Frequenz soweit so gut aber was ist aber mit den Harmonischen der höchsten Frequenz? die werden ja dann nicht erfasst oder wie seh ich das?
gruß Sonic
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 19.12.2011, 11:42
Titel:
|
|
noch eine Frage zu dem Beispielskript zur fft,
warum wird über x_fa-fn geplottet und nicht nur über x_fa?
Gruß
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 20.12.2011, 16:15
Titel:
|
|
|
|
|
Ok...du bringst da noch ein paar Sachen durcheinander.
Du hast deine Sampletime Ts
Fs = 1/Ts = Abtastfrequenz
Nach dem Abtasttheorem muss Fs > 2* f sein, wobei f die höchste Signalfrequenz in deinem Messsignal ist. In der Regel wählt man hier aber einen deutlich höheren Faktor als 2. Ist das Theorem schon verletzt, werden auch die Harmonischen nicht stimmen, bzw. das Signal würde die Frequenzen gar nicht enthalten, da sie auf Grund von Unterabtastung zu einem neuen Signal niederer Freq. geworden sind. Somit bezieht sich das f nicht nur auf die Grundfreq. deines Signals sondern alle Freq. (eben auch die höchste Harmonische).
Nun zur Frage mit dem Frequenzvektor:
Die fft() Funktion berechnet ein zweiseitiges Spektrum:
-Fs/2...0...+Fs/2
In dem Skript wird sowohl diese, als auch die Darstellung 0...+Fs/2 (-df) verwendet. Da man ja aber mit negativen Freq. nichts anfangen kann, stellt man in der Regel nur den positven Bereich dar. Fs/2 wird auch als Nyquistfrequenz bezeichnet, wobei diese in dem Skript nicht dargestellt wird. Sie ist zwar im Ergebnisvektor der fft vorhanden, der Wert aber meist sehr ungenau. Daher wird noch die Schrittweite df abgezogen, so dass nur die diskreten Spektrallinien ohne Fs/2 vorhanden sind. Die Schrittweite bzw. Auflösung deines Frequenzspektrums df ist abhängig von
df = Fs/N
wobei N die Anzahl von Messwerten ist. In deinem Fall würde ich daher nicht den Vektor x_fa sondern x_fn verwenden. Ich hoffe es ist jetzt klarer!
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 21.12.2011, 14:23
Titel:
|
|
so, danke erstmal für deine Erklärung.
Mich interessiert der Frequenzbereich bis ca 120MHz, d.h. ich müsste mit einer Frequenz > 240 MHz abtasten um alle vorkommenden Frequenzen zu erwischen, was wiederum bedeuten würde, dass ich mit einer Sampletime < 4.2e-9 simulieren muss oder?
Das Problem an der Sache ist wie gesagt, dass mein Modell mit Variabler Schrittweite läuft. Das jetzt alles umzustellen auf fixed-step sprengt deutlich den rahmen meiner thesis.
Kann ich jetzt also her gehen und die maximale Schrittweite auf 4.2e-9 setzten und dann eine Art Mittelwert für Ts berechnen quasi
Ts = Simulationsdauer/Anzahl der Werte ?
Oder kann ich dann einfach 4.2e-9 als Abtastzeit annehmen?
Wenn das richtig ist und ich dann den Frequenzvektor wie im Beispiel bilde, dann sollten doch auch die Frequenzen bis 120MHz dargestellt sein oder seh ich das falsch?
Gruß Sonic
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 10:40
Titel:
|
|
|
|
|
Wie schon gesagt, wird in der Praxis ein deutlich höherer Faktor als 2 gewählt. Ich empfehle dir mindestens mit 500 Hz abzutasten.
Zitat: |
Das Problem an der Sache ist wie gesagt, dass mein Modell mit Variabler Schrittweite läuft. Das jetzt alles umzustellen auf fixed-step sprengt deutlich den rahmen meiner thesis. |
Das verstehe ich wiederum nicht...ich bin aber auch kein Simulink-Profi. Man kann doch die Schrittweite global festlegen. Wo ist das Problem? Bei einer variablen Schrittweite kann ich dir nicht weiterhelfen. Ich habe bisher immer mit einer festen Abtastrate gearbeitet. Ich befürchtet, dass bei einer gemittelten Abtastrate dein Spektrum ungenau wird bzw. der notwendige Frequenzvektor (hier geht ja die Abtastrate ein) für die x-Achse wird dann nicht zum Ergebnis der fft() passen. Es lässt sich zwar darstellen, aber der Amplitudenwert muss nicht zwangsläufig bei der Frequenz aus dem selbsterstellten Freq.-vektor liegen. Dessen solltest du dir bewusst sein.
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 10:54
Titel:
|
|
ja es is nich einfach damit getan die abtastweite global festzulegen, man muss die entprechenden blöcke auch anpassen und und und...
ich habe jetzt die maximale Schrittweite in der Simulation so begrenzt, dass ich auf eine Abtastfrequenz von 330MHz komme. Das ist so gering dass die Abtastzeit eigentlich nicht variieren sollte. Mal schauen wie sich das auf das Spektrum auswirkt.
Ja du hast recht, es is mir aufgefallen dass die x-Achse nicht so ganz zum Ergebniss der fft passt, aber mal schauen was passiert wenn man die fourier analyse mit den neuen Daten durchführt.
Falls es klappen sollte werd ich das hier noch rein stellen, vielleicht hat der ein oder andere ein ähnliches Problem.
Danke schön auf jeden Fall für deine Geduld und deine Unterstützung!!!
und in diesem Sinne ein schönes Weihnachtsfest
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 11:15
Titel:
|
|
Zitat: |
Ja du hast recht, es is mir aufgefallen dass die x-Achse nicht so ganz zum Ergebniss der fft passt, aber mal schauen was passiert wenn man die fourier analyse mit den neuen Daten durchführt. |
Das sollte sich ja leicht überprüfen lassen, in dem du den Zeitvektor der Simulation abspeicherst. Mit diff(t_sim) kannst du ja dann kontrollieren, ob überall die gleiche Schrittweite vorliegt.
|
|
|
Scriptor |
Forum-Century
|
|
Beiträge: 217
|
|
|
|
Anmeldedatum: 22.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.12.2011, 12:53
Titel:
|
|
Hallo Sonic,
Du kannst auch das x auf equidistanz interpolieren. probier mal interp1.
Grüße!!
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 13:11
Titel:
|
|
Hi Scriptor,
verstehe ich das richtig, ich interpoliere meinen Zeitvektor so, als ob ich das signal mit Fa = 330Mhz abgetastet hätte?
Aber dann muss ich doch das eigentliche Signal auch Interpolieren um die selbe länge der Vektoren zu erhalten, weil nur der Zeitvektor allein bringt mit ja eigentlich nicht viel oder?
Oder kann ich da beide Signale gleichzeitig interpolieren?
Gruß Sonic
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 13:27
Titel:
|
|
Ich verstehe das so, dass du dein Messignal auf die neue Abtastrate interpolieren sollst. Du hast ja den Zeitvektor (evtl. mit varialer Schrittweite) und die dazu gehörigen Y-Werte aus der Simulation.
Du kannst nun mit interp1 eine neue Zeitachse mit festem dt vorgeben und die Y-Werte interpolieren.
Das wäre ein sinnvoller Vorschlag. Allerdings gilt es im Anschluss natürlich zu ermitteln, welchen Einfluss die Interpolation auf die Genauigkeit hat, um sie nachher bei der Beurteilung des Spektrums mit einbeziehen zu können.
|
|
|
Sonic |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 16.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 22.12.2011, 14:33
Titel:
|
|
Also ich habe das eben versucht. Leider funktioniert das nicht, da die Werte für die Zeit so klein sind, dass MATLAB sie nicht mehr unterscheiden kann...shit, das wäre natürlich super gewesen wenn das geklappt hätte...
nun bleibt nur der lange weg über die simulation mit der mini steptime...
trotzdem danke für die Vorschläge!!!!
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|