WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fourierspektrum dBµV

 

Sonic
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 16.12.2011, 17:05     Titel: Fourierspektrum dBµV
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.12.2011, 17:35     Titel:
  Antworten mit Zitat      
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)
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 18.12.2011, 19:39     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.12.2011, 19:45     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 19.12.2011, 10:49     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 19.12.2011, 12:42     Titel:
  Antworten mit Zitat      
noch eine Frage zu dem Beispielskript zur fft,
warum wird über x_fa-fn geplottet und nicht nur über x_fa?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.12.2011, 17:15     Titel:
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 21.12.2011, 15:23     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.12.2011, 11:40     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 22.12.2011, 11:54     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.12.2011, 12:15     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2011, 13:53     Titel:
  Antworten mit Zitat      
Hallo Sonic,

Du kannst auch das x auf equidistanz interpolieren. probier mal interp1.

Grüße!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 22.12.2011, 14:11     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.12.2011, 14:27     Titel:
  Antworten mit Zitat      
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.

Code:

N = ... % Anzahl Messwerte
t_sim = 1...N % Zeitvektor aus Simulation
y_sim = 1...N % Amplitudenvektor aus Simulation
t_inpter = 1...N % Zeitvektor mit fester Schrittweite
y_interp = interp1(t_sim,y_sim,t_interp)
 


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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sonic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 16.03.10
Wohnort: ---
Version: 2007b
     Beitrag Verfasst am: 22.12.2011, 15:33     Titel:
  Antworten mit Zitat      
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!!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.