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

Berechnung der Energie im Zeit- und Frequenzbereich

 

chur3055
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 30.10.15
Wohnort: Lev
Version: ---
     Beitrag Verfasst am: 30.10.2015, 10:40     Titel: Berechnung der Energie im Zeit- und Frequenzbereich
  Antworten mit Zitat      
Hallo zusammen,

ich bin neu hier im Forum und habe folgendes Problem:

Ich möchte die Energie eines Signals berechnen. Die Energie des Signals kann sowohl im Zeit- als auch im Frequenzbereich berechnet werden (siehe Parsevalsches Theorem).

Hier mein Programmcode:

Code:
% Zeitvektor
% 256 Werte mit einer Abtastfrequenz von 100Hz
t= 0:0.01:2.55;
% Vektor für Plot Frequenzbereich
n = 0:1:255;

% Erzeugung Signal im Zeitbereich
u1 =rectpuls(t);

% Berechnung der Energie im Zeitbereich
energie_rect = sum(abs(u1).^2)

%FFT
G1 = fft(u1,length(t))/length(t);

% Berechnung der Energie im Frequenzbereich
energie_rect_FD = sum(abs(G1).^2)


Ich erhalte jedoch unterschiedliche Werte für die Energie, die mit dem Faktor der Blocklänge (hier 256) im Frequenzbereich kleiner ist.

1) Warum ist dies so?
2) Die korrekte FFT des Zeitsignals muss doch auf die Blocklänge N normiert werden oder?

Für eure Mühe danke ich euch im Voraus!

Gruß
Christopher
Private Nachricht senden Benutzer-Profile anzeigen


ch3ft0ny
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 20.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2015, 11:35     Titel:
  Antworten mit Zitat      
Hi,

du summierst ja die quadrierten Funktionswerte im Zeitbereich bzw ,die Amplituden im Frequenzbereich ja nur auf aber du musst die quadrierten Funktionswerte über die Zeit , bzw. Amplitudenwerte über die Frequenz z.B. mithilfe der Trapezregel integrieren,

Code:

energie_rect = trapz(t,u1.^2)
 


analog würde für den Frequenzbereich gelten

Code:

energie_rect_FD = trapz(f,G1.^2)
 


wobei f der zugehörige Frquenzvektor ist, sprich die Freqenzachse des Amplitudenspektrums

PS: der Frequenzbereich der fft geht von -fs/2 bis + fs/2 und ist achssymetrisch zur Amplitudenachse mit fs = Abtastfrquenz

Die Frequenz fs/2 heißt Nyquisttfrequez
Private Nachricht senden Benutzer-Profile anzeigen
 
chur3055
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 30.10.15
Wohnort: Lev
Version: ---
     Beitrag Verfasst am: 30.10.2015, 12:39     Titel:
  Antworten mit Zitat      
Hi,

meine Frage hat sich geklärt.

Bei der Berechnung der Energie im Zeitbereich muss man darauf achten, dass der Wert um den Faktor N kleiner ist als bei der Berechnung im Frequenzbereich, sofern man die FFT des Signals nichts normiert. Dies kommt aus der Parsevalschen Theorie zustande. Sofern man die FFT auf die Länge normiert, wird die berechnete Energie im Frequenzbereich um den Faktor 1/N kleiner als die berechnete Energie im Zeitbereich, da man den Faktor 1/(N^2) bei der Berechnung der Energie im Frequenzbereich rein bekommt.

Deshalb:
1) Energieberechnung FFT nicht normiert --> Multiplikation berechnete Energie im Frequenzbereich mit 1/N

1) Energieberechnung FFT normiert --> Multiplikation berechnete Energie im Frequenzbereich mit N

Ich hoffe ich kann in Zukunft Fragen diesbezüglich damit beantworten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jodok

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2017, 15:18     Titel: Spät aber nicht zuspät
  Antworten mit Zitat      
Ich bin auf das selbe Problem wie Chur3055 gestossen und habe mir folgendes überlegt.

Aus Parseval:
E(t) = int(x(t)^2 dt) = E(f) = sum(X(f)^2) [fmin,fmax]

P(t)=E(t)/T = P(f) = E(f)/T = E(f)*df = E(f)*(fs/N)

Betrachten wir E(f) und P(f)

E(f) erlangen wir durch das Quadrat der NICHT-normierten FFT.
P(f) erlangen wir durch das Quadrat der NICHT-normierten FFT multipliziert mit fs.
(df = fs/N entsprcht der Abtastfrequenz) fs=1/T
Will man nun P(f) aus der normierten FFT erlangen, so soll man das Quadrat des normierten FFT-Spektrums mit N multiplizieren, da N quadratisch eingeht und mit fs
multiplizieren.

Anmerkung: Häufig wird nicht ein absoluter Wert für Energie und Leistung benötigt, da oft die relative Änderung genügt. In dem Falle darf die Leistung so definiert werden: P(f) = E(f)/N, oder man begnügt sich gleich mit der Signalenergie E(f). Diese verhält sich linear zur Signalleistung.

Gruss
 
Neues Thema eröffnen Neue Antwort erstellen



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.