Question

Actuellement, je fait une FFT d'un ensemble de données qui me donne une parcelle avec une fréquence à axe x et de l'amplitude à l'axe y. Je voudrais calculer l'aire sous le graphique pour me donner l'énergie.

Je ne suis pas sûr de savoir comment la zone d'une durée déterminée parce que je suis sans l'équation et aussi je veux seulement une certaine zone de la parcelle plutôt que la zone entière sous la parcelle. Est-il possible que je peux le faire?

Était-ce utile?

La solution

Il y a plusieurs façons de faire l'intégration numérique avec Matlab. Voici un exemple:

%# create some data
x = linspace(0,pi/2,100); %# 100 equally spaced points between 0 and pi/2
y = sin(x);

%# integrate using trapz, which calculates the area in the trapezoid defined by 
%# x(k),x(k+1),y(k),y(k+1) for k=1:length(x)
integral = trapz(x,y);

%# if you only want to integrate part of the data, do
partialIntegral = trapz(x(10:20),y(10:20));

%# show the integrated area
figure, 
area(x,y); 
hold on, 
area(x(10:20),y(10:20),'FaceColor','red')

Autres conseils

La FFT est discrète, non continue - il vous suffit de résumer toutes les valeurs de bin. Si vous regardez le spectre de puissance (magnitude au carré), alors les valeurs bin sont en W / Hz, vous devrez multiplier chaque valeur (ou bien simplement la somme), par la largeur du bac en Hz pour obtenir le pouvoir (et d'où l'énergie totale dans l'échantillon d'entrée).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top