Je suis en train de faire un peu de traitement de signal à l'aide d'un fichier audio (enregistrements de piano) je trouve les notes et onsets Effectuez ensuite l'opération FFT sur chaque apparition. Cependant je trouve que pour certaines notes leur 2ème harmonique a une amplitude bien supérieure à celle fondamentale ... Pourquoi est-ce ??? Comment puis-je éliminer cela et la fréquence correcte ??Traitement du signal en utilisant Matlab
Répondre
Démarrer à l'aide d'un filtre passe-bas pour couper certaines des harmoniques d'ordre supérieur. Si les enregistrements de piano que vous essayez de traiter ont été enregistrés dans une plage de 3 octaves, cela devrait aider considérablement.
Ensuite, essayez d'ajuster votre amplitude d'onde. Voici un article qui traite de la façon dont la distorsion harmonique se dégrade un signal, et comment vous pouvez échanger le rapport signal-bruit pour distorsion harmonique.
http://www.mathworks.com/help/signal/examples/analyzing-harmonic-distortion.html
Si vous voulez plus d'une solution intégrée à la maison sans filtrage du signal, voici ce que je vais essayer, en supposant que l'amplitude maximale du signal correspond soit à la base, 2ème harmonique ou harmonique 3 1) Trouvez la fréquence f du signal maximal 2) Si le signal à f/2 ou f/3 est beaucoup plus grande que le plancher de bruit, appelez cette fréquence votre fondamentale
Alternativement, 1) Trouvez la fréquence f le signal maximum 2) recherche ci-dessus dans l'intervalle [f/2, 2 * f] et trouver le pic neare st f. 3) On suppose la différence entre f et le pic le plus proche est égal à 1 à la fréquence fondamentale.
Vous devrez adapter ces méthodes à vos données. Assurez-vous que vos données ne présentent pas uniquement des harmoniques d'ordre impair ou ont des harmoniques d'ordre élevé très fortes. Ces méthodes ne fonctionneront pas bien si plusieurs notes sont jouées simultanément.
Vous pouvez également essayer de corriger vos données pour la sensibilité de l'oreille humaine, car cela peut être la raison pour laquelle les 2èmes harmoniques sont plus forts sur une FFT que ce que l'oreille détecte par rapport à la fondamentale. Voir http://en.wikipedia.org/wiki/Absolute_threshold_of_hearing
- 1. Traitement du signal numérique dans Matlab
- 2. Traitement du signal en utilisant "TERM"
- 3. Traitement du signal en C++
- 4. Traitement du signal en Python
- 5. Traitement du signal dans Matlab (Automatic Music Genre Classification)
- 6. Traitement du signal
- 7. Bibliothèque C++ pour le traitement du signal
- 8. Traitement du signal en Python multi-thread
- 9. Traitement du signal dans Go
- 10. Traitement du signal Erlang Linux
- 11. Traitement du signal sous UNIX
- 12. Traitement du signal du pilote à l'application
- 13. nodejs traitement du signal de l'enfant
- 14. Traitement du signal dans les pylônes
- 15. Redéfinir les défauts de traitement du signal
- 16. Bibliothèque de traitement du signal numérique iOS5?
- 17. Corrélation du signal vectoriel dans Matlab
- 18. Traitement du signal de segfault SIGSEGV doit déterminer la cause du segfault en utilisant siginfo_t
- 19. Beat Signal Plot Matlab
- 20. Traitement du signal pour fichier audio en python
- 21. Traitement du signal en C++ (en utilisant la variable d'instance à l'intérieur de la méthode)
- 22. Filtre moyen dans MATLAB sans boucles ni boîte à outils de traitement du signal
- 23. Matlab Dessin: analyse de la fréquence du signal
- 24. Traitement du signal audio Développement de l'interface graphique en utilisant Qt, Comment?
- 25. Matlab Query: traitement d'image, édition du script
- 26. Traitement du signal/du son: faire vibrer du texte en musique
- 27. Retirer le bruit impulsif du fichier .wav en utilisant Matlab
- 28. Traitement webcam en temps réel à Matlab
- 29. Filtre passe-bas sur un signal numérique dans matlab
- 30. Matlab Batch traitement fichier .csv