Correction/filtrage semi-automatisé (DStudio v5)
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
ok. donc dans fenetrage de ... à ... ms
le premier chiffre est négatif dans l'exemple. tout va bien.
Ce qui sera instructif maintenant c'est de faire sur une IR de mesure, la FFT sans fenetrage, fenetre rectangulaire et fenetre tukey. (une mesure un plus sérieuse que le micro et hp du portable car ils sont si proches et si mal placés que c'est quasi impossible de fenetrer utile.)
On devrait bien voir les réponses en fréquence changer.
le premier chiffre est négatif dans l'exemple. tout va bien.
Ce qui sera instructif maintenant c'est de faire sur une IR de mesure, la FFT sans fenetrage, fenetre rectangulaire et fenetre tukey. (une mesure un plus sérieuse que le micro et hp du portable car ils sont si proches et si mal placés que c'est quasi impossible de fenetrer utile.)
On devrait bien voir les réponses en fréquence changer.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Oui, mais cela changé.
Maintenant on a une case a cocher pour dire que l'on veut fenêtrer.
Une valeur Left et une valeur Right.
Verra demain, mais entre deux éclaircies je devrais pouvoir appliquer le fenêtrage et voir le résultat sur une réponse en fréquence.
Par contre, ce sera tukey ou rien vu que l'on n'a pas d'options de fenêtrage
PS : Pour les tests, j'utilise le mode Import á la place de Mesure; bien plus rapide et efficace.
Maintenant on a une case a cocher pour dire que l'on veut fenêtrer.
Une valeur Left et une valeur Right.
Verra demain, mais entre deux éclaircies je devrais pouvoir appliquer le fenêtrage et voir le résultat sur une réponse en fréquence.
Par contre, ce sera tukey ou rien vu que l'on n'a pas d'options de fenêtrage
PS : Pour les tests, j'utilise le mode Import á la place de Mesure; bien plus rapide et efficace.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Voici le résultat :
Deux fois la même mesure avec des fenêtrages différents.
Deux fois la même mesure avec des fenêtrages différents.
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
Cette impulse est trop clean !
un zero tout plat et net avant le pic et aucune réflexion plus loin. On va pas constater de différences dans les aigus. On voit après 3 à 4 ms sur la rouge arriver une bosse de graves, pas bien haute qui s'étale jusque vers 10ms. Il devrait y avoir absence de graves sur la bleue, ce qui se voit. C'est beau quand la pratique rejoint la théorie
Mais bon, cela me fait penser a autre chose : on sait que fenetrer a T secondes rend la réponse en fréquence en dessous de 1/T invalide. C'est en dessous de la résolution de la FFT donc le tracé ne correspond à rien.
T est la longueur a partir du vrai T0 de la réponse. Pour la courbe bleue ce serait de 0 à +2,5 = 2,5ms. La partie de fenetre rallongée avant t0 ne compte pas. La courbe bleue est valide au dessus de 400Hz. La rouge c'est a partir de 1/0,019 = 53Hz.
Arta rajoute un trait rouge le long de l'axe des x de 0 à 1/T pour le signaler. REW ne trace tout simplement pas la courbe entre 0 et 1/T. C'est mieux amha de le signaler d'une manière ou d'une autre pour éviter de mauvaises interprétations.


Mais bon, cela me fait penser a autre chose : on sait que fenetrer a T secondes rend la réponse en fréquence en dessous de 1/T invalide. C'est en dessous de la résolution de la FFT donc le tracé ne correspond à rien.
T est la longueur a partir du vrai T0 de la réponse. Pour la courbe bleue ce serait de 0 à +2,5 = 2,5ms. La partie de fenetre rallongée avant t0 ne compte pas. La courbe bleue est valide au dessus de 400Hz. La rouge c'est a partir de 1/0,019 = 53Hz.
Arta rajoute un trait rouge le long de l'axe des x de 0 à 1/T pour le signaler. REW ne trace tout simplement pas la courbe entre 0 et 1/T. C'est mieux amha de le signaler d'une manière ou d'une autre pour éviter de mauvaises interprétations.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Cette impulse est le résultat d'une mesure à faible distance.
C'est propre, net, sans bavure et adapté au filtrage actif.
1/T oui, mais approximativement car dépendra du placement du T0, de l'endroit où l'on se trouve dans la FFT ...
Donc cela reste une approximation.
Ne pas afficher avant 1/T devrait être possible en mettant Null comme valeur de point. Mais cela va pas aller avec la simu.
Afficher un trait ou autre va être trop compliqué, on a trop de courbes à gérer.
Par contre tout simplement afficher dans la fenêtre Impulse la valeur de 1/T pourrait être une aide.
Puis n'étant pas partisan du fenêtrage ....
C'est propre, net, sans bavure et adapté au filtrage actif.

1/T oui, mais approximativement car dépendra du placement du T0, de l'endroit où l'on se trouve dans la FFT ...
Donc cela reste une approximation.
Ne pas afficher avant 1/T devrait être possible en mettant Null comme valeur de point. Mais cela va pas aller avec la simu.
Afficher un trait ou autre va être trop compliqué, on a trop de courbes à gérer.
Par contre tout simplement afficher dans la fenêtre Impulse la valeur de 1/T pourrait être une aide.
Puis n'étant pas partisan du fenêtrage ....
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
l'erreur de placement de T0 (le véritable départ de l'impulse) dépend du "bruit" sur l'IR et éventuellement précis à 1 échantillon près. En général c'est largement acceptable. Ton idée de placer par défaut T0 a 6% de l'IR c'est déjà très pertinent.thierryvalk a écrit :1/T oui, mais approximativement car dépendra du placement du T0, de l'endroit où l'on se trouve dans la FFT ...
Donc cela reste une approximation.
"L'endroit ou on se trouve dans la FFT" n'intervient pas la dedans ou alors je ne comprend pas ce que tu veux dire. Sur ton exemple bleu tu peux changer ta borne inférieur de la fenêtre à -0,5 au lieu de -3 et ça ne changera rien au tracé des courbes. Rallonger la fenetre vers la gauche augmente artificiellement la résolution sans rien apporter.
oui information utile mais fugace. Les gens regardent les courbes et ont la mémoire courte!Par contre tout simplement afficher dans la fenêtre Impulse la valeur de 1/T pourrait être une aide.
Une simu qui se base sur des données fausses est fausse aussiNe pas afficher les courbes avant 1/T devrait être possible en mettant Null comme valeur de point. Mais cela va pas aller avec la simu.

Soit DS v5 est fait pour de la correction d'ensemble en salle et on se fiche du fenetrage et de ce qui y est lié. Soit il s'adresse aussi à la mesure d'enceintes et il y a des incontournables : alignement temporel, fenetrage , collage de mesures nearfield+farfield, etc. C'est un choix, y a pas de mauvaise réponse. Mais présenter des choses fausses qui pretent à répandre la confuse c'est pas bien, amha.
Dans excel tous les calculs qui font intervenir un null deviennent null, sans plantage. Les calculs de simu ne sont pas genés par des courbes partielles. Y pas moyen de faire pareil en C# ?
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Sais pas trop, mais il me semble que la notion de Null ne soit pas applicable à tous les types de variable.
Un tableau créé en double par exemple à zéro partout.
Au fait j'ai revérifié, mais pour moi REW affiche bien aussi la courbe avant le 1/T du fenêtrage.
Sinon, j'ai avancé dans l'enregistrement de tout ce petit monde.
DStudio va enregistrer un fichier par courbe.
On a 2 cas, soit une mesure avec Impulse et donc pas besoin de sa réponse en fréquence soit uniquement une réponse en fréquence.
Pour faire simple, on enregistre aussi les réponses en fréquences des mesures avec Impulse, par contre à la lecture on ne lira que l'Impulse.
Voici ce que cela donne pour 3 courbes, l'une par mesure et les 2 autres par import de réponse en fréquence:
Voici le début d'un fichier Impulse:
Un tableau créé en double par exemple à zéro partout.
Au fait j'ai revérifié, mais pour moi REW affiche bien aussi la courbe avant le 1/T du fenêtrage.
Sinon, j'ai avancé dans l'enregistrement de tout ce petit monde.
DStudio va enregistrer un fichier par courbe.
On a 2 cas, soit une mesure avec Impulse et donc pas besoin de sa réponse en fréquence soit uniquement une réponse en fréquence.
Pour faire simple, on enregistre aussi les réponses en fréquences des mesures avec Impulse, par contre à la lecture on ne lira que l'Impulse.
Voici ce que cela donne pour 3 courbes, l'une par mesure et les 2 autres par import de réponse en fréquence:
Voici le début d'un fichier Impulse:
Code : Tout sélectionner
16384 T0 index
48 Left Window
312 Right Window
1 Windowed On
0
7,99325120079757E-06
1,07304486186098E-05
2,31449331195285E-06
-3,08443999723836E-06
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
thierryvalk a écrit :Au fait j'ai revérifié, mais pour moi REW affiche bien aussi la courbe avant le 1/T du fenêtrage.
ah non c'est sur qu'il ne le fait pas chez moi.
Suis encore tombé dans le piège ce matin ! Me demandais pourquoi ma mesure ne s'affichait qu'a partir de 100Hz... grrr j'ai encore fait une bétise ? eh non, c'est que pour tester j'avais mis hier des parametres ultra court de fenetre pour les tests de tukey et le bougre s'en est rappelé pour la mesure de ce matin!
sinon, tu penseras à nous donner la correspondance numéro = courbe
qu'on sache qui est qui si on veut s'échanger une courbe en particulier

Re: Correction/filtrage semi-automatisé
En refaisant rapidement le tour de DS5, je trouve que le menu déroulant "option des boutons "mesures"" n'est pas très pratique. Ça fait faire des allers retours entre les onglets, au risque de faire une erreur ou quelque chose comme ça.. Je propose soit : un petit bouton "importer courbes" à côté du bouton mesure, mais avec le risque de surcharger l'écran. Ou sinon lorsqu'on clique sur mesure, une fenêtre propose soit d'importer, soit une mesure.
Egalement, je ne sais pas si c'est fait/prévu, mais lorsqu'on mesure un tweeter, ça serait peut-être pas mal de forcer la fréquence de départ du sweep à une certaine fréquence, pour pas abîmer le tweet. Ce pourrait être un paramètre dans l'onglet mesure car il y a de la place.

Egalement, je ne sais pas si c'est fait/prévu, mais lorsqu'on mesure un tweeter, ça serait peut-être pas mal de forcer la fréquence de départ du sweep à une certaine fréquence, pour pas abîmer le tweet. Ce pourrait être un paramètre dans l'onglet mesure car il y a de la place.

- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Oui, je ne sais pas encore bien quoi faire.
Via la fenêtre "Courbes", on a dans le menu click droit de chaque courbe la possibilité de faire un Import.
C'est moins direct, mais si l'on fait l'essentiel des mesures directement à partir de DStudio ce n'est pas un problème.
Par contre, comme je l'ai écris plus haut, j'utilise l'import à la place de vraies mesures lors des tests, mais c'est pour des tests et non une utilisation normale.
Pour le sweep, ce sera fait avec 3 paramètres :
Fréquence de début, fréquence de fin et longueur en secondes.
Via la fenêtre "Courbes", on a dans le menu click droit de chaque courbe la possibilité de faire un Import.
C'est moins direct, mais si l'on fait l'essentiel des mesures directement à partir de DStudio ce n'est pas un problème.
Par contre, comme je l'ai écris plus haut, j'utilise l'import à la place de vraies mesures lors des tests, mais c'est pour des tests et non une utilisation normale.
Pour le sweep, ce sera fait avec 3 paramètres :
Fréquence de début, fréquence de fin et longueur en secondes.
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
comme louis : pas naturel le bouton mesure qui peut soit déclencher une mesure soit en importer une selon un paramétrage qui se trouve dans un autre onglet. C'est pas idéal.
Partons de l'idée que mesurer est ce qu'on fera naturellement et qu'importer est une option secondaire.
L'import est possible par le menu bouton droit dans la fenetre Courbes.
Je serai d'avis que ces boutons lancent la mesure, de virer le menu déroulant de paramétrage et de renommer partout ces boutons en "mesurer". Montre plus clairement qu'une action va etre engagée.
Il est aussi envisageable d'ajouter sur tous les boutons "mesurer" un menu clic droit pour importer. Une sorte de raccourci.
j'aimagine saisie libre pour freq debut et fin et menu déroulant pour choisir la durée parmi quelques valeurs bien choisies selon Fs ?
Partons de l'idée que mesurer est ce qu'on fera naturellement et qu'importer est une option secondaire.
L'import est possible par le menu bouton droit dans la fenetre Courbes.
Je serai d'avis que ces boutons lancent la mesure, de virer le menu déroulant de paramétrage et de renommer partout ces boutons en "mesurer". Montre plus clairement qu'une action va etre engagée.
Il est aussi envisageable d'ajouter sur tous les boutons "mesurer" un menu clic droit pour importer. Une sorte de raccourci.
thierryvalk a écrit :Pour le sweep, ce sera fait avec 3 paramètres :
Fréquence de début, fréquence de fin et longueur en secondes.
j'aimagine saisie libre pour freq debut et fin et menu déroulant pour choisir la durée parmi quelques valeurs bien choisies selon Fs ?
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
La durée est fonction de la bande de fréquences que l'on désire utilisée et la précision et certainement de plein d'autres choses qui convient à chaque utilisateur.
Voici donc tout simplement :
Et si l'on met un début plus grand que la fin il ne se passe simplement rien.![Dan.San :]](./images/smilies/8.gif)
Voici donc tout simplement :
Et si l'on met un début plus grand que la fin il ne se passe simplement rien.
![Dan.San :]](./images/smilies/8.gif)
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
ce que je voulais dire a propos de la durée c'est que si l'utilisateur saisit de façon quelconque, ça ne donnera pas un nb de samples en puissance de 2 et rendra la suite des calculs plus compliqués. Je ne sais pas comment tout s'enchaine ensuite pour arriver à une impulse de longeur 32K et il me semble qu'il faut partir d'un sweep de longueur déjà puissance de 2 pour que ce soit clean.
REW et Arta demandent de saisir un nb de samples (32K, 64K, 128K, 256K, 512K et jusqu'à 1M pour REW) et calculent la durée selon Fs. Je sais que DRC a besoin d'une durée, et ça me parait plus sage de la déduire du nb de samples plutôt que de la laisser en saisie.
ps: en lisant des choses sur DRC, je tombe sur une phrase utile pour le choix de cartes son :
en résumé : si carte son resample en 48K => utiliser du 48K depuis le début sinon pauvre qualité de mesure.
REW et Arta demandent de saisir un nb de samples (32K, 64K, 128K, 256K, 512K et jusqu'à 1M pour REW) et calculent la durée selon Fs. Je sais que DRC a besoin d'une durée, et ça me parait plus sage de la déduire du nb de samples plutôt que de la laisser en saisie.
ps: en lisant des choses sur DRC, je tombe sur une phrase utile pour le choix de cartes son :
Beware cheap, resampling, soundcards
Most cheap game oriented soundcards often include a sample rate converter in their design, so that input streams running at different sample rates can be played together by resampling them at the maximum sample rate supported by the soundcard DAC. Usually this is 48 kHz as defined by the AC97 standard. These sample rate converters often are of abysmal quality, causing all sort of aliasing artifacts.
Most deconvolution based impulse response measurement methods, including the log sweep method, are quite robust and noise insensitive, but cause all sorts of artifacts when non harmonic but signal related distortion is introduced, even at quite low levels. The aliasing artifacts introduced by low quality sample rate converters are exactly of this kind and are one of the most common cause of poor quality impulse response measurements and consequently of correction artifacts.
en résumé : si carte son resample en 48K => utiliser du 48K depuis le début sinon pauvre qualité de mesure.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Vu sous cet angle ok.
Mais je ne connais pas la relation entre durée en longueur de la FFT.
Faudra, à mon avis, faire des tests et voir la longueur du fichier impulse.pcm.
J'avais lu pour la carte son, de toute manière pour le moment tout se fait en 48K et je compte laisser comme cela sans donner la possibilité de changer.
Je pense que toutes les cartes son supportent le 48K.
Mais je ne connais pas la relation entre durée en longueur de la FFT.
Faudra, à mon avis, faire des tests et voir la longueur du fichier impulse.pcm.
J'avais lu pour la carte son, de toute manière pour le moment tout se fait en 48K et je compte laisser comme cela sans donner la possibilité de changer.
Je pense que toutes les cartes son supportent le 48K.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Un bouton en plus.
Ne s'affichera que lorsque le générateur audio sera actif.
Il faudra donc toujours aller dans l'onglet Mesure pour l'activer et pas de Pause car trop compliqué à faire.
Pour le Sweep je conserve une fenêtre fixe qui annule la mesure, ce sont deux choses différentes.

Ne s'affichera que lorsque le générateur audio sera actif.
Il faudra donc toujours aller dans l'onglet Mesure pour l'activer et pas de Pause car trop compliqué à faire.
Pour le Sweep je conserve une fenêtre fixe qui annule la mesure, ce sont deux choses différentes.
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
Spontanément, je dirai même longueur que le sweep mais c'est du vogelpick! A aucun moment je n'ai vu dans DRC ou Sox qu'on pouvait forcer une longueur. C'est lors de la déconvolution (lsconv) que ça se passe.thierryvalk a écrit :Vu sous cet angle ok.
Mais je ne connais pas la relation entre durée en longueur de la FFT.
Faudra, à mon avis, faire des tests et voir la longueur du fichier impulse.pcm.
Faudra de toutes manière "comprimer" a un moment pour que ça corresponde à la FFT de 32K et c'est bien plus facile de "comprimer" si c'est un multiple de 32K.
oui le 48k est un standard a cause du cinema et des jeux qui sont en 48K. Tout le monde supporte bien. C'est l'upsale du 44.1 en 48K qui pose souci avec les cartes son bas de gamme. Le CD est né avant le DVD, sinon tout serait en 48K (ou 96 ou 192)J'avais lu pour la carte son, de toute manière pour le moment tout se fait en 48K et je compte laisser comme cela sans donner la possibilité de changer.
Je pense que toutes les cartes son supportent le 48K.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Correction/filtrage semi-automatisé
Les nouveautés et avancées :
Pas encore fini mais l'oscillo pour les burst a été revu.
On peut régler le gain pour améliorer l'affichage.
Détecte les 2 valeurs les plus hautes et y place un curseur.
1er peak donne juste la latence de la carte son et l'on peut voir que d'un démarrage à l'autre ce temps n'est pas constant.
Ensuite Delta donne l'écart entre les 2 peak en retranchant 0.5s qui est le temps coté générateur.
Et j'ai une erreur de 1 sample.
En l'état c'est pas encore bien utile, faut encore gérer la commutation des sorties.
Du provisoire dans l'onglet Mesure.
La liste des Devices Asio de votre PC.
Pas encore opérationnel, mais juste pour voir s'il n'y a pas de soucis à ce stade.
En simple clic sur un Device va faire apparaitre ses entrées et sorties. (Ne pas cliquer sur ces dernières)
Un double clic sur un Device va faire ouvrir son Control Panel.
Le temps de compiler et je met cette version en page 1 pour les testeurs.
Pas encore fini mais l'oscillo pour les burst a été revu.
On peut régler le gain pour améliorer l'affichage.
Détecte les 2 valeurs les plus hautes et y place un curseur.
1er peak donne juste la latence de la carte son et l'on peut voir que d'un démarrage à l'autre ce temps n'est pas constant.
Ensuite Delta donne l'écart entre les 2 peak en retranchant 0.5s qui est le temps coté générateur.
Et j'ai une erreur de 1 sample.

En l'état c'est pas encore bien utile, faut encore gérer la commutation des sorties.
Du provisoire dans l'onglet Mesure.
La liste des Devices Asio de votre PC.
Pas encore opérationnel, mais juste pour voir s'il n'y a pas de soucis à ce stade.
En simple clic sur un Device va faire apparaitre ses entrées et sorties. (Ne pas cliquer sur ces dernières)
Un double clic sur un Device va faire ouvrir son Control Panel.
Le temps de compiler et je met cette version en page 1 pour les testeurs.
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Correction/filtrage semi-automatisé
un grand classique: faut il compter les poteaux ou les espaces entre les poteaux ?thierryvalk a écrit :Et j'ai une erreur de 1 sample.![]()

Retourner vers « DSPiy général »
Qui est en ligne
Utilisateurs parcourant ce forum : Bing [Bot] et 8 invités