|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Étudiant Inscription : juillet 2012 Messages : 17 ![]() |
Bonjour tout le monde,
je vous explique mon soucis, merci de me dire si vous avez une idée d'où mes problèmes viennent Tout d'abord, voici le contexte - j'ai une courbe bruité et j'ai fais une FFT de ce signal sous matlab afin d'avoir le spectre du signal. - les j'ai environ 6000 fréquences et celles qui me dérange sont les basses fréquences et quelques autres que je n'ai pas encore très bien identifiées. - pour commencer à filtrer j'ai essayé des filtres sous matlab mais apparemment ils ne semblent pas convenir à ma situation car tous les filtres que j'utilise déforment mon signal sur des zones que je ne veux pas (les pentes ne sont plus respectées or je veux vraiment garder les pentes de montées et descente, c'est juste le bruit des plateaux que je veux virer ). - Du coup, j'ai voulu annuler les fréquences basses de mon signal à l'aide de matlab et reconstruire le signal temporel à l'aide d'une FFT inverse. Résultats - Lorsque je passe de mon spectre (où j'ai mis les amplitudes à 0 pour les basses fréquences) à un signal temporelle à l'aide d'une FFT inverse j'ai un soucis : ==> la forme du signal résultant est nickel :Bravo1: mais l'amplitude de la courbe n'est plus la même que celle du signal de départ ! (l'amplitude à diminuée) Explication du coup, je voudrais savoir si vous pourriez m'expliquer pourquoi mon amplitude générale à diminuer ? et comment la remettre à son niveau de départ. => je précise que si je fais une FFT de mon signal et une FFT inverse tout de suite après ça marche nickel => c'est lorsque je supprime des amplitudes de la FFT que je perds en amplitude globale. Ce qui m'etonne là dedans est que j'ai fais un test : => mettre toutes les amplitudes maximale du signal à 0 et je m'attendais au même résultat, mais là non... mon amplitude est bonne ![]() Mon code voici mon bout de code (et la PJ): Code :
|
||
|
|
00
|
|
|
#2 | |||
![]() ![]() Jérôme Inscription : septembre 2009 Messages : 5 167 ![]() |
Bonsoir,
Si tu avais lu comme je te l'avais conseillé un cours sur la FFT, tu saurais que ton bruit est situé dans les hautes fréquences, contrairement à ton signal qui est plus dans les basses. Donc oui si tu annules les basses, tu vas voir ton signal disparaître. Code :
Sauf que ce que tu fais est faux, ou disons imcomplet. Je te rappelle (ou pas ) que ton spectre est symétrique.
__________________
Débutant en MATLAB ? Vous voulez faire une Interface Graphique ? Les Tutoriels et la FAQ sont là pour vous aider ![]() Une erreur ? "Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).Citation:
|
|||
|
|
10
|
|
|
#3 | |||
|
Invité régulier
![]() Étudiant Inscription : juillet 2012 Messages : 17 ![]() |
Citation:
oui en effet je sais que le bruit est dans les hautes fréquences mais ici je conserve bien les basses frequences puisque je classe par ordre croissant et je ne garde que les premieres frequences ? D'ailleurs mon signal reconstruit est très bien représenté frequentiellement : - la forme generale de la courbe est tout à fait respectée et les harmoniques eux sont virés... - le seul soucis est que j'ai perdu en amplitude .... Citation:
Citation:
Par contre je ne vois pas trop les consequences : - Lorsque je fais un spectre je ne trace que la moitié car si je trace le graph complet j'ai une symétrie inutile. ça OK :-) - par contre lorsque je fais une ifft j'ai bien besoin du spectre complet pour reconstruire comme il faut le signal dans le domaine temporelle ? ou je ne prends qu'une moitié meme pour le "ifft" ? ps : par contre ce que je n'ai pas compris dans tout ça c'est pourquoi l'amplitude est modifiée EDIT : j'ai modifié mon bout de code qu'il y avait plus haut car j'avais fais une petite erreur... A présent tout va bien à part la gestion de la symétrie (et mon probleme d'amplitude de mes courbes qui ont beaucoup diminuées -> mais ça doit être lié à ce probleme de symétrie) Je tente une explication, peux tu me dire si c'est correct ? - je prends mon vecteur de fréquence et je le divise en deux - dans ce vecteur j'efface les amplitude des fréquences les plus hautes - ensuite j'efface aussi les amplitudes des fréquences symétrique par rapport à la fréquence moyenne ? - ensuite j'effectue ma transformée de Fourier inverse ? j'ai peut etre un autre soucis : mon vecteur de frequence n'est pas une puissance de 2 ? du coup ça peut poser probleme lors de l'utilisation d'une transformée de fourier inverse "ifft" ? si oui pk ? (je n'ai pas trop compris pk en general on veut un vecteur multiple de 2) |
|||
|
|
01
|
Copyright © 2000-2013 - www.developpez.com