Salut @razzortec,
Ce format est assez exotique et n'existe pas dans LinFIR.
Ceci-dit, je vais prendre le temps de l'implémenter pour une prochaine version. En attendant il doit être possible de faire une conversion, peut-être en passant par rePhase, ou alors manuellement.
Aurais-tu un exemple de ces filtres exporté via rePhase? Cela m'aiderait pour l'implémentation. Merci!
LinFIR - Mesures et égalisation FIR/IIR
Modérateur : SYLEX
- Arnwald
- 10 dB
- Messages : 44
- Enregistré le : 20 févr. 2026, 20:33
- Localisation : Saxon, Valais, Suisse
- Contact :
Re: LinFIR - Mesures et égalisation FIR/IIR
Arnaud Demion
LinFIR — https://linfir.demaudio.com
LinFIR — https://linfir.demaudio.com
- Dagda
- Fondateur
- Messages : 2181
- Enregistré le : 08 mars 2024, 17:16
- Localisation : Est parisien (94)
- Contact :
Re: LinFIR - Mesures et égalisation FIR/IIR
https://www.youtube.com/@SoundPixelLab
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toutes réflexions pour ne pas offenser les imbéciles.
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toutes réflexions pour ne pas offenser les imbéciles.
Re: LinFIR - Mesures et égalisation FIR/IIR
Merci
Un exemple ici
Dans mon language, c'est la voie low, 6000 taps, de 0 à 200hz, filtrage LR 150, et retard de 35 ms
Un exemple ici
Dans mon language, c'est la voie low, 6000 taps, de 0 à 200hz, filtrage LR 150, et retard de 35 ms
- Arnwald
- 10 dB
- Messages : 44
- Enregistré le : 20 févr. 2026, 20:33
- Localisation : Saxon, Valais, Suisse
- Contact :
Re: LinFIR - Mesures et égalisation FIR/IIR
Top, merci! J'ai tout le nécessaire pour ajouter le format. Ce sera pour la prochaine version. :-)
Arnaud Demion
LinFIR — https://linfir.demaudio.com
LinFIR — https://linfir.demaudio.com
Re: LinFIR - Mesures et égalisation FIR/IIR
Merci Arnwald
Par contre, je pense qu'il va y avoir un autre problème.
Le filtrage FIR induit un retard qui dépand du nombre de taps et de la fréquence d'échantillonage, avec la formule:
Nombre de Taps/ 2x fréquence d''échantillonge ( Je ne vous apprends rien), ce qui dans mon cas pour la voie Low ( 6000 taps et 48 K) fait 62.5 ms Dans rephase, il est possible de décaler dans le temps l'impulse de filtrage
Exemple avec -50 ms, ce qui ramène le retard à 12.5ms J'ai une installation HC, et j'utilise le FIR sur les frontales , droite , centrale, et gauche, mais pas les surrounds
Au niveau des surrounds, je suis limité à 20 ms pour le retard,, d'ou mon besoin de limiter le retard sur les frontales.
Et après tout ça , il faut encore gèrer le décalage entre l'image et le son
Par contre, je pense qu'il va y avoir un autre problème.
Le filtrage FIR induit un retard qui dépand du nombre de taps et de la fréquence d'échantillonage, avec la formule:
Nombre de Taps/ 2x fréquence d''échantillonge ( Je ne vous apprends rien), ce qui dans mon cas pour la voie Low ( 6000 taps et 48 K) fait 62.5 ms Dans rephase, il est possible de décaler dans le temps l'impulse de filtrage
Exemple avec -50 ms, ce qui ramène le retard à 12.5ms J'ai une installation HC, et j'utilise le FIR sur les frontales , droite , centrale, et gauche, mais pas les surrounds
Au niveau des surrounds, je suis limité à 20 ms pour le retard,, d'ou mon besoin de limiter le retard sur les frontales.
Et après tout ça , il faut encore gèrer le décalage entre l'image et le son
- Arnwald
- 10 dB
- Messages : 44
- Enregistré le : 20 févr. 2026, 20:33
- Localisation : Saxon, Valais, Suisse
- Contact :
Re: LinFIR - Mesures et égalisation FIR/IIR
Si je puis me permettre, il ne faut absolument pas procéder de la sorte.
Avec ces paramètres, rePhase va générer un filtre à phase linéaire, pour lequel la formule (n_taps - 1)/2 est effectivement valable. Pour ce type de filtres, l'énergie avant le pic est aussi importante que celle qui se situe après. Décaler le milieu de 50 ms revient à tronquer une grosse partie de cette énergie, et on s'expose à des artefacts massifs de magnitude et de phase.
C'est exactement pour cela que j'ai développé LinFIR à l'origine: en plus de devoir utiliser Windows, l'impossibilité de visualiser directement le résultat final m'horripilait et de nombreux raccourcis sont faits sur les aspects de traitement du signal, poussant certains utilisateurs à générer des filtres aberrants.
La loi (n_taps - 1)/2 n'est valable que pour les filtres à phase linéaire, et il est tout à fait possible de générer un filtre FIR phase minimum pour lequel le pic est le plus proche possible de 0, et donc d'avoir une latence très courte.
Dans LinFIR cela se fait au moyen du curseur de causalité:
- 0 -> phase linéaire
- 1 -> phase minimum
- toute autre valeur intermédiaire -> un compromis entre la linéarité de phase et le délai
Exemple pour 3 valeurs de causalité (0, 0.5 et 1): On voit bien qu'à mesure que l'on tend vers le filtre phase minimum, les rotations de phase s'accumulent, mais le délai de groupe moyen diminue (le pic se décale à gauche).
Les causalités par défaut ne sont pas choisies arbitrairement. Pour les crossovers je privilégie la phase linéaire pour faciliter la sommation des hauts parleurs et leur comportement temporel, et c'est aussi le choix qui limite au maximum le pre et post ringing (ils s'annulent entre hauts parleurs). Pour la correction de magnitude, la causalité par défaut est à 1, ce qui correspond à un filtre purement minimum phase. La raison est simple: un haut parleur est lui même un système dont le comportement dominant est phase minimum, et quand on corrige la magnitude avec un filtre lui même phase minimum, on redresse la phase. Corriger la magnitude avec un filtre FIR phase linéaire est un non sens, on introduit du pre-ringing, du délai, et on se prive de la correction de phase "gratuite".
Il faut toutefois faire attention à un point: quand plusieurs filtres sont actifs dans LinFIR, le comportement général du filtre total sera celui qui a le délai le plus long (si on a une correction phase minimum et un crossover phase linéaire, ce sera ce dernier qui imposera le délai).
Sur cet exemple j'ai introduit un passe haut et un passe bas, on peut voir que si l'un est totalement phase linéaire et l'autre totalement phase minimum, la convolution des deux donne un filtre qui a quand même de l'énergie avant le pic.
Avec ces paramètres, rePhase va générer un filtre à phase linéaire, pour lequel la formule (n_taps - 1)/2 est effectivement valable. Pour ce type de filtres, l'énergie avant le pic est aussi importante que celle qui se situe après. Décaler le milieu de 50 ms revient à tronquer une grosse partie de cette énergie, et on s'expose à des artefacts massifs de magnitude et de phase.
C'est exactement pour cela que j'ai développé LinFIR à l'origine: en plus de devoir utiliser Windows, l'impossibilité de visualiser directement le résultat final m'horripilait et de nombreux raccourcis sont faits sur les aspects de traitement du signal, poussant certains utilisateurs à générer des filtres aberrants.
La loi (n_taps - 1)/2 n'est valable que pour les filtres à phase linéaire, et il est tout à fait possible de générer un filtre FIR phase minimum pour lequel le pic est le plus proche possible de 0, et donc d'avoir une latence très courte.
Dans LinFIR cela se fait au moyen du curseur de causalité:
- 0 -> phase linéaire
- 1 -> phase minimum
- toute autre valeur intermédiaire -> un compromis entre la linéarité de phase et le délai
Exemple pour 3 valeurs de causalité (0, 0.5 et 1): On voit bien qu'à mesure que l'on tend vers le filtre phase minimum, les rotations de phase s'accumulent, mais le délai de groupe moyen diminue (le pic se décale à gauche).
Les causalités par défaut ne sont pas choisies arbitrairement. Pour les crossovers je privilégie la phase linéaire pour faciliter la sommation des hauts parleurs et leur comportement temporel, et c'est aussi le choix qui limite au maximum le pre et post ringing (ils s'annulent entre hauts parleurs). Pour la correction de magnitude, la causalité par défaut est à 1, ce qui correspond à un filtre purement minimum phase. La raison est simple: un haut parleur est lui même un système dont le comportement dominant est phase minimum, et quand on corrige la magnitude avec un filtre lui même phase minimum, on redresse la phase. Corriger la magnitude avec un filtre FIR phase linéaire est un non sens, on introduit du pre-ringing, du délai, et on se prive de la correction de phase "gratuite".
Il faut toutefois faire attention à un point: quand plusieurs filtres sont actifs dans LinFIR, le comportement général du filtre total sera celui qui a le délai le plus long (si on a une correction phase minimum et un crossover phase linéaire, ce sera ce dernier qui imposera le délai).
Sur cet exemple j'ai introduit un passe haut et un passe bas, on peut voir que si l'un est totalement phase linéaire et l'autre totalement phase minimum, la convolution des deux donne un filtre qui a quand même de l'énergie avant le pic.
Arnaud Demion
LinFIR — https://linfir.demaudio.com
LinFIR — https://linfir.demaudio.com