Casse-tête : bruit blanc enregistré, resynchronisé et ajusté en gain avec son original
- 17 réponses
- 4 participants
- 1 551 vues
- 5 followers

lalebarde

Je vous propose le petit jeu suivant, dont j'aimerais trouver la solution. J'utilise sox(http://sox.sourceforge.net) sous Linux.
Le but du jeu est le suivant :
- Générer un bruit blanc mono compris entre 50 Hz et 2 kHz, durée 10' : [/i]
- Jouer ce bruit blanc et l'enregistrer ; j'ai décalé le play de 1" volontairement pour ne pas rater le début (100 ms auraient du suffire) : [/i]
- Traiter l'enregistrement pour le synchroniser avec l'original et l'ajuster en gain (ici j'ai mis un gain de 1 arbitrairement) pour qu'après différence, le signal ne valle que le bruit résiduel de la chaîne play + ambiance de votre bureau + record : [/i]
Amorce de solution :
- Pour me resyncroniser, je préfixe le bruit blanc avec un LA de 1" : [/i]
- L'algorithme de synchronisation comprend une phase grossière par recharche de saut de puissance (c'est là que je justifie la seconde de décalage entre le play et le record), et une phase fine par correlation sur le LA. Quand j'édite les deux fichiers sous Audacity, ça a l'air pile-poil ! On peut aussi réaliser cette synchro à la main sous Audacity.
- Une fois synchronisé, je calcule le gain à appliquer en calculant la puissance du signal d'origine et celle de celui enregistré sur une période de 1" après le LA. Que du gros bon sens n'est-ce pas ? On peut par exemple utiliser les fonctions trim et stat de sox pour réaliser cela.
Et bien pour moi, ça ne marche pas.

Première remarque : si la chaîne play/record présente des distorsions temporelles de l'ordre de la période d'échantillonnage, c'est normal que ça ne marche pas car on soustrait des échantillons de bruits blancs non synchrones et on obtient un magnifique nombre aléatoire en résultat. La fréquence d'échantillonnage étant de 44100 Hz, ou 23 us, il faut des distortions temporelles inférieures à mettons 5 us pour être tranquile. Mon expérience se faisant sur un PC, j'imagine, mais peut-être me trompe-je, que ce n'ai pas un problème.
Deuxième remarque : je parle bien ici de distorsions temporelles et non pas de latence. La latence n'est gênante que si elle est distordue.
Quelqu'un a-t-il une idée pour faire que ça marche ?

Danguit

il faut des distortions temporelles inférieures à mettons 5 us pour être tranquile.

lalebarde

Pour éclairer les choses, c'est pour faire des recherhes personnelles sur la propagation du son. Comme je veux mesurer des phénomènes non linéaires, je ne peux pas me contenter de travailler avec des sinusoïdes. Et pour voir comment le son a été modulé, je dois dans ma méthode de mesure le soustraire à l'original après l'avoir recalé en temps et amplitude.
Pour ce qui est des distorsion temporelles, voici une suite d'échantillons sonores non distordus :
111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999
et la même avec de la distorsion temporelle (très exagérée pour illustrer) :
111111112222222333333444445555555666666666777777777777888888888888888999999999999999999999
Cela peut être du par exemple à un battement mécanique dans la rotation d'une platine disque.

Danguit

Je ne vois pas ce qui interdit d'utiliser des sinusoïdes pour analyser des non-linéarités. J'aurais même tendance à penser que cela facilite les choses (et c'est ce que je cherche à faire habituellement).
[ Dernière édition du message le 19/10/2012 à 08:18:00 ]

lalebarde

Pour ce qui est de l'utilisation des sinusoïdes en analyse de systèmes non linéaires, tu ne peux tout simplement pas décomposer ton signal d'entrée en série de fourrier et le recomposer à la sortie. Le résultat serait faux.
Je cherche juste à comprendre pourquoi ma méthode ne marche pas. Est-ce du à une distorsion temporelle au niveau de la carte son ? Est-ce qu'avec une carte haut de gamme ça pourrait marcher ? Ou bien est-ce que je commets une erreur quelque part ?

Danguit

Pour ce qui est de l'utilisation des sinusoïdes en analyse de systèmes non linéaires, tu ne peux tout simplement pas décomposer ton signal d'entrée en série de fourrier et le recomposer à la sortie. Le résultat serait faux.
Et pour voir comment le son a été modulé, je dois dans ma méthode de mesure le soustraire à l'original après l'avoir recalé en temps et amplitude.
Je ne connais pas (sauf erreur) de démodulation par une simple soustraction. Il me semble que démodulation implique plutôt multiplication.
[ Dernière édition du message le 19/10/2012 à 09:26:45 ]

nuin373

Il me semble que ce serai plus pertinent avec un bruit rose,
du moins en ce qui concerne la distorsion.
Laptop i7, Sonar X2 Producer, UA101 (2), Quadmic, Solo6 Be, set micros

lalebarde

Il me semble que ce serai plus pertinent avec un bruit rose,
du moins en ce qui concerne la distorsion.
Je passe mon bruit blanc dans un passe-bande avant de l'utiliser, ce qui est je crois équivalent dans le principe au bruit rose, avec l'avantage que je sélectionne ma plage de travail.

lalebarde

Je ne connais pas (sauf erreur) de démodulation par une simple soustraction. Il me semble que démodulation implique plutôt multiplication.
Je ne démodule pas en soustrayant, je cherche à extraire une modulation effectuée sur un bruit blanc en soustrayant le bruit blanc d'origine.
J'ai modifié ma méthode pour étalonner toute ma chaîne de production. J'obtiens quelque chose d'à peu près satisfaisant.

Danguit

Je ne démodule pas en soustrayant, je cherche à extraire une modulation effectuée sur un bruit blanc en soustrayant le bruit blanc d'origine.

lalebarde

Une modulation ne fait pas forcément référence aux termes spécialisés moduler/démoduler. C'est un terme du langage courant. Je n'ai pas utilisé le terme signal car il s'agit bien ici d'un phénomène physique qui module mon bruit blanc ou tout autre support que j'aurais mis à la place. Dans mon cas d'espèce, je ne peux pas faire de mesure de signal direct car le phénomène est trop peu énergétique. Le bruit blanc que j'utilise est juste un support. L'énergie nécessaire pour moduler un tel support est plus faible que pour générer un signal.
Par analogie, on pourrait comparer le frottement statique au frottement dynamique en mécanique. L'effort pour mettre en mouvement un mobile est supérieur à celui nécessaire pour le maintenir en vitesse.
Et nous sommes ici sur des ondes mécaniques soumises aux frottements de l'air.

Danguit

Mais je n'ai certainement pas tous les éléments pour juger si ma proposition est réaliste.
Edit :
Je me pose une question : la connaissance de la variation du décalage en fonction du temps serait-elle suffisante pour caractériser le phénomène ?
[ Dernière édition du message le 19/10/2012 à 18:05:59 ]

Traumax

Je sais pas de quoi vous parlez, mais j'ai l’impression de lire La Recherche.
Dans quel but tu fais ça lalebarde ?

lalebarde

Je me pose une question : la connaissance de la variation du décalage en fonction du temps serait-elle suffisante pour caractériser le phénomène ?
Non.

lalebarde

Dans quel but tu fais ça lalebarde ?

Danguit


lalebarde








Traumax

Citation :
c'est pour faire des recherhes personnelles sur la propagation du son.
C'est vague. Je voulais savoir ce que tu cherches a propos de la propagation.
- < Liste des sujets
- Charte