14/10/2014 version 1.1

Filtrage FIR avec l’option ADAU1452

Voici une première idée de la manière à effectuer du filtrage FIR.

On a besoin de rePhase : http://sourceforge.net/projects/rephase/

Pour des infos sur rephase : http://jimbee.over-blog.com/page-8372251.html

Et aussi : http://www.homecinema-fr.com/forum/diy-enceintes/rephase-linearisation-de-phase-eq-et-filtrage-fir-t30024394.html

Où l’on peut remercier pos l’auteur de ce soft et aussi lui poser des questions.

 

Filtrage Global en FIR :

Utilisé pour linéariser l’enceinte et/ou la pièce d’écoute.

Voici l’onglet Accueil de DStudio version 3.06.

Rien de bien neuf si ce n’est la case « Taille d’affichage : » Large.

Qui permet d’agrandir la largeur de la fenêtre de DStudio pour mieux voir les courbes.

Mais ce n’est nullement nécessaire.

 

On sélectionnera une Application avec FIR Global : ici « global 10k.apd » qui permet d’utiliser une impulse de 10.000 taps commune sur les 2 canaux.

Les corrections en L et en R seront donc identiques.

 

On cliquera sur « Transfert APPLI vers RAM DSPiy ».

A ce moment le DSPiy est chargé avec les filtres IIR et le soft de l’ADAU1701.

 

Passons à rePhase.

Pour créer votre correction et optimisations, se référer aux liens donnés ci-dessus.

 

Ce qui nous intéresse pour le DSPiy :

Taps :  entrer 10000 vu que c’est la longueur attendue par l’Appli.

Rate :  48000, idem,  définie par l’Appli.

Format : C float array (.c)  toujours sélectionner ce format qui est reconnu par DStudio.

Filename et directory : l’endroit où vous désirez sauvegarder l’Impulse.

 

Pour l’exemple j’ai juste joué avec quelques curseurs d’EQ en gain.

 

On clique sur « generate ».

Après quelques secondes selon me traitement à réaliser, rePhase va sauvegarder l’impulse.

 

On repasse à DStudio dans l’onglet « DS_Filtres ».

Pour l’exemple, j’ai placé une EQ en IIR à 1000 Hz.

On dispose d’un nouveau bouton « Import FIR » qui rappelle le nombre de Taps demandés par l’application.

On clique dessus.

S’ouvre une boite de dialogue :

Il suffit d’aller chercher le fichier .c créé par rePhase et de cliquer sur « Ouvrir ».

A ce moment l’impulse sera lue par DStudio et transférée à l’ADAU1452.

Elle sera affichée en rouge foncé.

A la fin du chargement le DSPiy sortie du mode Mute et musique devrait se faire entendre.

 

Tout ceci est encore en développement et pourra être modifié.

 

Crossover en FIR 2 voies :

On va utiliser 2 impulses, l’une pour les voies basses et l’autre pour les voies hautes.

Dans ce type d’application, le signal passe par le DSP du DSPiy pour la sélection de source et le filtrage global en IIR qui sera peu utilisé mais pratique pour l’extrême bas là où le FIR commence à montrer ses limites surtout avec des Q importants.

Après le filtrage global, le signal est envoyé à l’ADAU1452 qui va s’occuper de la séparation des voies pour enfin envoyé le signal aux DACs.

On prend l’Appli correspondante :

NB : le nom est provisoire, en fait il y aura plusieurs Appli avec des répartitions différentes de Taps selon les fréquences de coupures voulues.

Après avoir réalisé le Transfert vers RAM, la Config du Preset, on passe à l’onglet « DS_Crossover ».

On a 2 boutons d’importations d’impulses, on va donc les générer avec rePhase.

Voici un exemple avec la voie Low.

N Taps : 7000 signale que l’Appli demande 7000 Taps pour la voie Low, ce que l’on va rentrer dans rePhase, toujours du 48K.

 

J’ai juste placé un filtre Low-Pass à 1500Hz en 24dB/octaves + 2 EQ via Paragraphic Gain EQ.

J’ai nommé le fichier impulseLow et cliqué sur « generate ».

 

De même pour la voie High :

Avec 3000 Taps comme demandé par l’Appli.

 

On revient à DStudio pour importer ces 2 impulses, voici après avoir sélectionné le fichier impulseLow :

La courbe s’est dessinée et a été chargée dans le DSP.

Idem pour la voie High :

 

Le filtrage FIR ne crée pas de changements de phases (sauf si on le désire) mais par contre introduit un délai en fonction du nombre de Taps utilisés.

Respectivement 78.75ms pour la voie Low et 22.04ms pour la High. Qui sera en retard par rapport à la Low.

Pour cela on dispose de la case délai pour compenser la voie High en la retardant.

En théorie, il sera de 78.75-22.04= 56.71ms

Vu que le délai est en Samples (48KHz), on utilisera directement les Samples donnés par l’impulse soit 2722 samples.

On vérifiera à la mesure tout en adaptant ce délai qui peut être différent vu la position des axes des HP.

Voilà une enceinte 2 voies filtrées en FIR.

Si l’on désire modifier l’une de voies, il suffira de faire la modification dans rePhase (il peut être pratique de lancer 2x le programme : une instance pour Low et l’autre pour High ) et de refaire l’import dans DStudio.

 

PS : je pense forcer le bouton « Mute » en Mute afin que l’on valide les courbes affichée avant d’avoir su signal dans les enceintes.

Il suffira donc de cliquer dessus pour passer en Un-Mute. Bien que ce sera peut-être le bouton « Transfert To DSP ».

 

 

Une troisième voie en FIR demanderait de limiter le nombre de Taps pour la voie Low et donc de ne plus avoir assez de précision sur cette dernière.

Dans un futur proche, on devrait pouvoir l’ajouter en IIR (la phase étant bien moins critique dans les fréquences élevées)

Crossover en FIR + IIR :

A venir….