2015-12-07 1 views
3

Je débute dans le traitement du signal numérique. Je les exemples de données de capteur suivantCalculer l'énergie des données du domaine temporel

Time(milliseconds)   data 
------------------ ------------------- 
0      0.30865225195884705 
60     0.14355185627937317 
100     -0.16846869885921478 
156     -0.2458019256591797  
198     -0.19664153456687927 
258     0.27148059010505676 
305     -0.16949564218521118 
350     -0.227480947971344 
397     0.23532353341579437 
458     0.20740140974521637 

ce qui signifie la fin du temps 0 I ont la valeur 0.30865225195884705 et la fin du temps 60 I ont la valeur 0.14355185627937317 et ainsi de suite.

Les données proviennent du capteur à chaque 10 milliseconds. Donc, je suppose que le taux d'échantillonnage devrait être fixé à 100 Hz. Je veux calculer l'énergie totale du signal dans le domaine temporel.

je lis qu'il peut être calculé en utilisant le théorème de Parseval comme suit:

enter image description here

X[k] est le DFT de x[n], à la fois de la longueur N.

Toute suggestion, comment puis-je calculer l'énergie totale en utilisant MATLAB?

Répondre

3

Le théorème de Parseval est utile pour lier l'énergie du domaine temporel au domaine fréquentiel. Toutefois, si vous n'avez pas besoin d'effectuer d'autres calculs dans le domaine de fréquence, vous pouvez calculer directement l'énergie dans le domaine du temps avec:

Energy = sum(abs(x).^2) 

Si d'autre part, vous devez convertir le signal à la fréquence domaine pour d'autres raisons, vous pouvez également calculer l'énergie avec (selon le théorème de Parseval):

Xf = fft(x); % compute the DFT (using the Fast Fourier Transform) 
Energy = sum(abs(Xf).^2)/length(Xf); % Get the energy using Parseval's theorem 
+0

Je dois le convertir en domaine fréquentiel – danishjo

+0

Merci. Ai-je besoin de la colonne Heure des données du capteur? – danishjo

+0

Autre que de confirmer que vous obtenez des données régulièrement échantillonnées, et d'obtenir le taux d'échantillonnage (qui est nécessaire pour faire la correspondance entre les bacs DFT et la fréquence en Hz), pas vraiment. – SleuthEye

2

théorème de Parseval et l'analyse DFT appliquent uniquement à bande limitée des données échantillonnées à des intervalles égaux réguliers (taux d'échantillonnage constant au-dessus Fmax * 2). Puisque vos horodatages ne sont pas régulièrement espacés, vous devrez les utiliser pour interpoler un vecteur de nouveaux échantillons régulièrement espacés avant de pouvoir calculer l'énergie en utilisant l'équation de Parseval. Ou vous devrez faire une intégration numérique au lieu d'une simple addition.

+0

J'ai réalisé le problème. Je vous remercie. Existe-t-il une méthode ou une implémentation permettant de créer des données espacées de manière égale à partir de mes données de capteur? – danishjo