Je suis assez nouveau sur DSP et j'ai fait des recherches sur les filtres possibles pour lisser les données de l'accéléromètre en python. Un exemple du type de données que je vais expérimenter peut être vu dans l'image suivante:
Essentiellement, je cherche des conseils pour lisser ces données pour éventuellement les convertir en vitesse et en déplacement. Je comprends que les accéléromètres des téléphones portables sont extrêmement bruyants.
Je ne pense pas pouvoir utiliser un filtre de Kalman pour le moment car je ne peux pas saisir l'appareil pour référencer le bruit produit par les données (j'ai lu qu'il est essentiel de placer l'appareil à plat et de trouver la quantité de bruit de ces lectures?)
La FFT a produit des résultats intéressants. L'une de mes tentatives a été de FFT le signal d'accélération, puis de rendre les basses fréquences pour avoir une valeur FFT absolue de 0. Ensuite, j'ai utilisé l'arithmétique oméga et la FFT inverse pour obtenir un tracé de la vitesse. Les résultats sont les suivants:
Est-ce une bonne façon de procéder? J'essaie de supprimer la nature bruyante globale du signal, mais des pics évidents, comme à environ 80 secondes, doivent être identifiés.
Je suis également fatigué d'utiliser un filtre passe-bas sur les données de l'accéléromètre d'origine, ce qui a fait un excellent travail de lissage, mais je ne sais pas vraiment où aller à partir d'ici. Tout conseil sur la route à suivre à partir d'ici serait vraiment utile!
EDIT: Un peu de code:
for i in range(len(fz)):
testing = (abs(Sz[i]))/Nz
if fz[i] < 0.05:
Sz[i]=0
Velfreq = []
Velfreqa = array(Velfreq)
Velfreqa = Sz/(2*pi*fz*1j)
Veltimed = ifft(Velfreqa)
real = Veltimed.real
Donc, essentiellement, ive a effectué une FFT sur mes données d'accéléromètre, donnant Sz, filtré les hautes fréquences à l'aide d'un simple filtre de mur de briques (je sais que ce n'est pas idéal). Ensuite, j'utilise l'arithmétique oméga sur la FFT des données. Merci également à datageist d'avoir ajouté mes images dans mon message :)
fz
tableau, il semble que vous appliquiez un filtre passe-haut à la place.