Bonjour.
Je travaille sur un hydrophone sous-marin qui enregistre en continu (24h/24h) tous les sons présents sous l’eau. Je travaille sur Matlab R2001b (7.13.0.564). Le but de mon étude est de filtrer le son afin d’observer le son des cétacés (notamment ceux émettant en basse fréquence. Outre l’utilisation de la fonction « filter », j’aimerais faire un filtre de détection par rapport à l’énergie du signal. Je voudrais donc prendre un morceau du signal où je n’aurais observé (visuellement et auditivement) aucun son autre que le bruit de fond (pas de cétacé, pas de bateau… Juste le bruit de la mer lui-même) et définir que toute séquence supérieure en énergie à ce morceau contient un bruit d’intérêt (que cela soit bateau, cétacé…). De cette manière, je gagnerai du temps en écoute du fichier audio en écoutant que les morceaux d’intérêt au lieu d’écouter les 24h d’enregistrements.
Actuellement l’hydrophone n’a pas été déployé donc je n’ai pas à ma disposition beaucoup de fichiers pour m’entrainer. J’ai réalisé un code sur le peu de son que j’ai. Le problème des sons que j’ai pour l’instant c’est qu’il y a présence de cétacés sur pratiquement tout le fichier donc il y a beaucoup de détection. Mon code a l’air de marcher mais je voudrais savoir votre avis et surtout si vous pensez que cela peut marcher sur un fichier plus long.
Merci par avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 [x,fs]=wavread('Take57.wav'); [N,p]=size(x); t=0:1/fs:(N-1)/fs; position1=1e7 %entre position 1 et 2, je n'ai observé aucune détection position2=1.2e7 a=x(position1:position2); M=max(abs(a)); for k=1:N if x(k)>M y(k)=1; else y(k)=0; end end figure; plot(t,y,'r') title('détection avec la section d interet')
Partager