Acoustic passion

Acoustic passion

5- Génération des filtres digitaux FIR crossover

On atteint une partie extrêmement intéressante du projet : le filtrage digital !

En effet, le filtrage digital à l'avantage d'être "modélisé" selon vos souhaits et de ne pas induire de déphasage sur le signal malgré la variation d'amplitude de la courbe de réponse !

Attention, il y a toutefois une limite dans la "modélisation" du filtre. En effet sa qualité dépend de plusieurs paramètres :

- le nombre de "coefficients" du filtre (plus de coefficients = filtre de meilleure qualité mais plus de calculs)
- la raideur de la pente à réaliser (pente moins raide = meilleure qualité du filtre), cette raideur tient compte de la fréquence et non des octaves ! (une pente de -10dB sur 30hz de 60 a 90hz aura une qualité identique à une filtre de pente -10dB sur 30hz de 1000 à 1030hz !). Il va de soit que les filtres de basses fréquences seront de moins bonne qualité, puisque si on extrapole jusqu'à 10hz avec une pente de -10dB sur 5hz (de 5 à 10hz) on aura une pente de 10dB/octave, ce qui est relativement faible, mais qui sera extrêmement mal réalisé par un filtre digital (soit la phase ne sera pas respecté, soit il y aura des problèmes d'oscillation dans la courbe de réponse, a moins d'utiliser un filtre avec un nombre incroyablement élevé de coefficients ce qui demandera un calcul énorme pour l'application du filtre...

Le nombre de "coefficients" (ou "taps" en anglais) est déterminé par HolmImpulse, non réglable et inconnu (du moins pour ma part !).

Voici les fichiers des filtres que j'ai généré.

- les fichiers textes : ils contiennent la "définition" du filtre que j'ai importé sous HolmImpulse, qui lui détermine alors la réponse d'impulsion et la courbe de réponse en interpolant ces points. J'exporte alors cette réponse d'impulsion en fichier .wav normalisé...

- les fichiers .png : ils contiennent les screenshots courbe de réponse/impulsion de chaque filtre.

- les fichiers .wav : ils contiennent la réponse d'impulsion des filtres qui sont directement appliqués au signal par convolution avec le logiciel BruteFir.

Après plusieurs tentatives, je me suis aperçu que la qualité du filtre est plus qu'acceptable avec une pente de 12dB sur échelle linéaire par avancement d'1/10 d'octave (a 1/2 octave au dessus/dessous de la fréquence de coupure l'intensité du signal devient négligeable... imaginez donc la pente comparé aux filtres conventionnels !).

Voici une fiche tableur générée par openoffice que j'ai recrée pour les besoins du tutoriel.

Il suffit de choisir la fréquence de coupure (case bleue) et de copier les données verts calculées en fonction du filtre choisi vers un fichier texte (passe-bas ou passe-haut) que nous nommerons par exemple filtre-perso.txt

Ensuite, ouvrez HolmImpulse, réglez la fréquence de sampling dans les paramètres du logiciel (premier onglet) puis cliquez sur "start stream" ou "restart stream" si vous avez modifié la fréquence de sampling souhaitée.

Rendez-vous alors dans l'onglet "measure", puis cliquez sur le bouton "import" correspondant a 1 des 3 courbes de mesures possibles (A, B ou C). Dans la fenêtre qui s'affiche, cliquez sur le bouton import de l'onglet par défaut Frequency.

Le logiciel va importez les "points" définissant l'allure de notre filtre, que nous avons précédemment "designé" sous excel, en faisant une interpolation entre ces points.

Notre filtre étant a présent transformé sous forme de courbe de réponse/phase, sa réponse d'impulsion, qui a également été calculée par HolmImpulse, peut à présent être exporté sous forme de fichier son (.wav).

Pour cela il faut cliquer cette fois-ci sur le bouton export, se rendre dans l'onglet Impulse, réglez les paramètres comme souhaités (par défaut c'est très bien mais vous pouvez choisir de désactiver la normalisation d'amplitude que je conseille cependant de laisser active pour avoir la meilleure précision de calcul flottant possible, vous pouvez aussi changer la "time window" si vous voulez tronquer la réponse d'impulsion ou l'agrandir si vous en avez la nécessité. Les points ajoutés seront des simples 0...).

Rentrez alors le nom de votre fichier wav dans la barre de texte filename, puis choisissez votre répertoire de destination avec le bouton browse. Le bouton Export impulse response est maintenant dégrisé, et vous devez cliquer dessus pour exporter votre filtre sous forme de fichier .wav

Vous pouvez vérifier que votre fichier .wav est conforme au filtre que vous avez designé en cliquant cette fois sur le bouton import d'une courbe non utilisée (par exemple si vous avez importé le filtre "théorique" sous forme texte dans la première courbe = courbe A, vous pouvez importez le filtre sous forme "fonctionnelle" cette fois, qui est notre fichier .wav, dans la courbe B = deuxième courbe de mesure.

<< En construction >>


29/09/2010
0 Poster un commentaire

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 20 autres membres