Application au projet PACT (pourquoi ce module est adapté etc.)
Résultats avec la méthode implémentée + comparaison avec version de Pyroomacoustics
Livrable
Code de votre groupe en Python avec quelques résultats.
Plan
I - Transformée de Fourier à court terme
II - Modèle et hypothèse
III - Algorithme MUSIC
I - Transformée de Fourier à court terme
La transformée de Fourier discrète
Soit un signal discret $x_0,\dots,x_{N-1}$. Sa transformée de Fourier (discrète) est:
$$
X(f) = \sum_{n=0}^{N-1}x_ne^{-i\frac{2\pi f n}{N}}
$$
On obtient une représentation fréquentielle du signal
Complexité algorithmique : $O(N^2)$
Il existe une version édulcorée qui réduit la complexité $O(N^2)$ en $O(N\log(N))\\$ (cf. Cooley-Tukey FFT algorithm)
On emploiera la FFT dans la suite.
Transformée de Fourier à Court Terme (TFCT)
Découpage d'un signal en plusieurs séquences
multiplication par un fenêtrage (Pourquoi ? cf.poly OASIS)
FFT sur chacune des séquences
On obtient un signal "temps-fréquence" $X(f,t)$
Spectrogramme de puissance
Module au carré des coefficients
$$
S(f,t) = |X(f,t)|^2 \qquad\qquad\qquad \texttt{(Spectrogramme de Puissance)}
$$
Pour une meilleure représentation, on calcule le log du SP.
II - Modèle et hypothèse
Position du problème
Propagation du son (champ proche)
L'explication ici est extrêmement simplifié par rapport à un vrai cours d'acoustique (mais sera suffisant pour implémenter un algorithme de localisation)
quand la source n'est pas loin des microphones (moins de 50cm pour des micros espacées de 5-10cm)
alors la propagation du son est représentée par des ondes sphériques.
Si on considère $M$ microphones aux points $m_1, \dots, m_M$ et $p_1, \dots, p_L$ $L$ points avec ses coordonnées cartésiennes
et $r_{ml}$ la distance euclidienne entre le point $a_l$ et le $n$-ème microphone
alors les vecteurs de pointage (représentant la propagation de la source au microphone) est un vecteur $\bold{a}_l(f) \in \mathbb{C}^M$ donnée par :
$c_0 \approx 331$ m.s${^{-1}}$ : célérité du son dans l'air sec avec une température à 20°C.
Propagation du son (champ lointain)
quand la source est plus loin des microphones (plus de 50cm pour des micros espacées de 5-10cm)
alors la propagation du son est représentée par des ondes planes et les sources peuvent être supposés être à l'infini
On estimera juste des angles d'arrivées (Azimuth et élévation) et non des distances
Si on considère $M$ microphones aux points $m_1, \dots, m_M$ et $\overrightarrow{u}_1, \dots, \overrightarrow{u}_L$ $L$ vecteurs unitaires orientés dans la direction de point lointain $L$
alors le vecteur de pointage $\bold{a}_l(f) \in \mathbb{C}^M$ est donnée par :
$k_f(l) = 2\pi f / c_0 \overrightarrow{u}_l$ : le vecteur d'onde
$.$ dans l'exponentielle représente ici le produit scalaire
Les $\overrightarrow{u}_l$ sont par exemple des coordonnées sphériques (si on prend l'azimuth et élévation) ou des coordonnées circulaires avec un rayon de $1$
Modèle acoustique
Soient $s_1,\dots,s_N$ $N$ sources ponctuelles que l'on souhaite localiser
on suppose la TFCT effectuée sur ces sources et on note $\bold{s}_{ft}= [s_{1ft}, \dots, s_{Nft}]^\top \in \mathbb{C}^M$ le vecteur contenant les sources ponctuelles au point temps-fréquence $f,t$
Soit $\bold{x}_{ft}= [x_{1ft}, \dots, x_{Nft}]^\top \in \mathbb{C}^M$ l'acquisition du signal par $M$ microphones
On définit également le vecteur $\bold{n}_{ft}=[n_{1ft}, \dots, n_{Mft}]^\top \in \mathbb{C}^M$ qui est un bruit additif parasitant l'acquisition des $M$ microphones, indépendante du signal
Un modèle classique (avec une réverbération "raisonnable") est de supposer le modèle de mélange suivant :
où $\bold{A}_f \in \mathbb{C}^{M \times N}$ est appelée matrice de mélange et a le rôle de représenter la "propagation acoustique" des sources au microphones.
Idée : faire une décomposition en valeurs propres de la matrice de covariance du mélange $R_{x, ft} = \mathbb{E}(\bold{x}_{ft}\bold{x}_{ft}^\top)$ et exploiter le fait que les espaces propres engendrant le bruit et la sources sont orthogonaux
D'après $\bold{x}_{ft} = A_{f}\bold{s}_{ft} + \bold{n}_{ft}$ on obtient (si $n$ est gaussien de covariance $\sigma^2 I_M$) :
avec $R_{s,ft}$ la matrice de covariance de la source.
Un estimateur de $R_{x, ft}$ (si les sources sont immobiles) est donnée par : $$\widehat{\mathbf{R}}_{\mathbf{x}, f}=T^{-1} \sum_{t=1}^T \mathbf{x}_{f t} \mathbf{x}_{f t}^{\mathrm{H}}$$
Attention ! cette algorithme ne marche que quand $N \leq M$
Suite MUSIC
On peut alors montrer (c'est la contribution de MUSIC) que :
$R_{x, ft}$ est de rang plein
Les $N \leq M$ plus grandes valeurs propres de $R_{x, ft}$ engendrent l'espace propre du signal $\bold{Q}_{s,f} \in \mathbb{C}^{M \times N}$
l'espace propre du bruit $\bold{Q}_{n,f} \in \mathbb{C}^{M \times (M-N)}$ est orthogonal à $\bold{Q}_{s,f}$
En particulier, il est possible de montrer que si $\theta$ est l'angle d'arrivé d'une source alors $\bold{a}_{f}^H(\theta)q_{n,ft} = 0$ où $q_{n,ft}$ est un vecteur propre de l'espace propre du bruit.
La fonction suivante (appelé pseudo spectre) :
$$
P_f^{\operatorname{MUSIC}}(\theta)=\frac{1}{\mathbf{a}_f^H(\theta) \mathbf{Q}_{\mathbf{n}, f t} \mathbf{Q}_{\mathbf{n}, f t}^H \mathbf{a}_f(\theta)}
$$
tend alors vers l'infini pour les directions de la source $\implies$ on en déduit notre algorithme de localisation !
Résumé de l'algorithme
Calculer $\widehat{\mathbf{R}}_{\mathbf{x}, f}$ et faire une décomposition en valeurs propres pour obtenir $\mathbf{Q}_{\mathbf{n}, f}$ à partir des $N-M$ plus petites valeurs propres
Calculer $\sum_f P_f^{\text {MUSIC }}\left(\theta_l\right)$ pour différents points $\left\{\theta_l\right\}_l$ et faire du "pick peaking"
Variante encore plus performante et simple à implémenter: Norm-MUSIC