Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 18 invités

Filtre actif à base de DSP : le DSPiy

Message » 14 Aoû 2014 21:07

thierryvalk a écrit:Pour en revenir au développement actuel, l’étape suivante sera de lire une table générée par RePhase sans passer par SigmaStudio et surtout de vérifier que l’ADAU1452 permet bien de gérer 2x10.000 taps



Salut, ca bosse dur par ici :bravo:
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 15 Aoû 2014 23:37

thierryvalk a écrit:Si j’ai bien compris tcli souhaite faire du crossover en FIR. :wink:

Evidemment cela demande plus de taps.
Avec Sigmastudio qui semble maintenant calculer juste les ressources, on pourrait imaginer ceci par exemple :
Une table de 8000 taps commune aux 2 canaux pour les voies Low
Une table de 2000 taps commune aux 2 canaux + délais de 5000 samples max pour les voies High.
On serait à 84% du DSP et 98% de la mémoire.

Dans ce cas, l’ADAU1452 communiquerait directement avec les DAC, l’ADAU1701 servant de sélecteur de sources et si besoin pour 15 biquad par canal.

Pour du 3 voies, je pense que cela devient limite ou alors utiliser le FIR de 2000 taps pour le Mid et un filtre en IIR pour le High.
Mais on aura un gros problème de délais pour le High.


Après la discussion sur le topic rephase j'avais cherché des infos sur l'état actuel du dspiy mais je n'avais pas trouvé: le sujet était bien caché dans la partie post-it que je ne regarde jamais :D (c'est con)

Super 2x8000 + 2x2000 !!
Perso je préfère cette solution à du 2x10000 taps sur les entrées, mais l'idéal serait de pouvoir faire les deux.

Pour le délai il n'y a pas d'autre moyen de les gérer avec plus de souplesse?
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 16 Aoû 2014 10:59

l'avantage des commandes au mois d'Août.

comme je n'ai toujours pas reçu les picots mâles de 19mm,je vais quand même souder les 3 picots sortie I2S-->DAC.
Sait-on jamais ! :oldy:

1701--->1452 ou 1452--->1701,that's the question ?
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 16 Aoû 2014 22:44

Peut-être idiot ou pas réalisable, mais pour une trois voie ne pourrait-on pas faire :
Imaginons 500Hz et 5KHz comme fréquences de coupures.
Sur 8000 taps on pourrait couper les fréquences entre 500Hz et 5KHz.
Un filtre IIR vers 2KHz pourrait faire la séparation Low et High. Il resterait 2000 taps pour la voie MID + délai.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 17 Aoû 2014 11:57

:-? Je ne vois pas le principe !.

càd le 1701 en amont,et après le 1452 ?
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 17 Aoû 2014 14:12

thierryvalk a écrit:Avec Sigmastudio qui semble maintenant calculer juste les ressources, on pourrait imaginer ceci par exemple :
Une table de 8000 taps commune aux 2 canaux pour les voies Low
Une table de 2000 taps commune aux 2 canaux + délais de 5000 samples max pour les voies High.
On serait à 84% du DSP et 98% de la mémoire.


Je vais faire mon casse pied, mais le delai sur le mid m'allait bien, mon tweeter est derrière (coax inside...)
Dernière édition par Philby le 17 Aoû 2014 16:14, édité 1 fois.
Philby
 
Messages: 9819
Inscription Forum: 12 Mar 2001 2:00
Localisation: 33
  • offline

Message » 17 Aoû 2014 15:53

Lorsque je parle de délai, c'est un délai max. On pourra bien sur le paramétrer de 0 à max.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 17 Aoû 2014 16:15

thierryvalk a écrit:Lorsque je parle de délai, c'est un délai max. On pourra bien sur le paramétrer de 0 à max.


Oui mais uniquement sur la voie High si j'ai bien compris, donc même à 0 c'est trop!
Philby
 
Messages: 9819
Inscription Forum: 12 Mar 2001 2:00
Localisation: 33
  • offline

Message » 17 Aoû 2014 18:41

Avec 8000 taps impulse centrée---->donc à 4000 x 1/48K,

il faut retarder le high (2000 taps centrée) de 3000 taps,pour avoir un delai=0

on peut donc faire du négatif et du positif... :idee:
Génial le FIR !

vais faire un graph.

Image

par contre,impulse centrée 2x4000 taps,ça fait pas lourd en résolution.
corriger un bass reflex ou un clos à 20-30 Hz n'est plus trop possible.

ou alors centrée par énergie,mais faudra faire un tutoriel pour les offsets à regler.

il faut noter l'offset de rePhase pour l'impulse low et celle du high.
soustraire les 2 temps,cela donne le retard du low/high.
et ajuster le retard du high ensuite,théoriquement puis valider à la mesure
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 17 Aoû 2014 21:00

C'était trop simple avant....
Philby
 
Messages: 9819
Inscription Forum: 12 Mar 2001 2:00
Localisation: 33
  • offline

Message » 17 Aoû 2014 22:23

+1, nous manque le p'tit cours pour débutants avec principes de base. :
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 17 Aoû 2014 23:05

Ben non, :)

c'est simple,faut pas regarder le mot taps (ou échantillon).

à 48K,entre 2 échantillons,le temps écoulé est de 1/48K==20 µs

il suffit de multiplier les "taps" par 20 µs et hop !
ce sont rePhase et le setting qui decident.

Avec la "legende temporelle":

Image
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 18 Aoû 2014 2:18

C'est vrai que c'est une notion qui change entre IIR et FIR.

Les mêmes choses avec d'autres mots :
- en IIR le traitement n'apporte pas de délai. Si on en veut un délai entre deux voies, il faut le rajouter intégralement en samples sur la voie à retarder.
- en FIR le traitement impose un délai (nb taps / taux échantillonnage/2). Si on veut fixer un retard entre deux voies, il faut tenir compte du nb de taps sur ces voies.

Dans l'exemple ci-dessus, avec 8000taps sur Woofer et 2000 taps sur Tweeter, il y a par construction un retard une avance du Tweeter sur Woofer de 3000 samples, cad 62,5ms a 48k. (attention aux arrondis, les erreurs arrivent vite quand on multiplie par des milliers)

Si la géométrie nécessite par exemple de retarder le Tweeter de 0.1ms, le délai a mettre sur T est de 62,5 + 0,1 = 62,6ms cad 3005 samples

S'il faut retarder le wooofer, comme c'est le cas pour un coaxial, ça reste jouable :
En mettant sur T un délai de 62,5 - 0,1 = 62,4ms cad 2995 samples, le Woofer sera bien retardé de 0,104ms p/r au Tweeter. (on peut aussi dire que T est en avance de 5 samples sur W ce qui revient au même)

La réserve de 5000 samples pour le délai sur T permet une belle plage de réglage. 3000 dans un sens, 2000 dans l'autre.


Au passage, on comprend aussi pourquoi les preneurs de sons qui font la chasse à la latence ne sont pas fans du FIR a cause des délais.

edit: correction avance/retard. Merci thierry38.
Dernière édition par alkasar le 18 Aoû 2014 11:50, édité 2 fois.
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 18 Aoû 2014 8:04

Hello Alain,

le raisonnement semble bon.

juste inverser le retard,le woofer sera toujours en retard par rapport aux mid et au high.

Dans l'exemple ci-dessus, avec 8000taps sur Woofer et 2000 taps sur Tweeter, il y a par construction une avance du Tweeter sur Woofer de 3000 samples, cad 62,5ms a 48k.


c'est exactement le même principe que le soustractif,il faudra toujours retarder le mid et high.
la nature est bien faite,la phase minimale implique un retard des basses fréquences (par ex une courbe de délai de groupe avec winisd).
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 18 Aoû 2014 11:44

euh oui bien vu, en avance! c'était trop tard hier ;) j'édite pour corriger.

Une autre manière de voir la différence IIR / FIR :

imaginons le système de traitement comme une boite avec un flux qui entre et le flux traité (samples calculés) qui en sort.

En IIR avec les biquads, le premier et le second sample en entrée ainsi que le premier et second sample calculés sont stockés et dès le troisième sample c'est bon, l'algorithme fonctionne et le flux sort. Quel que soit le nb de biquads, le système ne retarde le flux que de 2 samples, cad quasi rien.
Pas de retard entre l'entrée et la sortie, c'est du flux tendu mais le prix a payer est un déphasage du signal.

En FIR, l'algorithme est différent. Il ne stocke pas les sample calculés (pas de feedback) mais a besoin d'accumuler un grand nombre de samples en entrée avant de pouvoir sortir un flux. Il retarde le flux d'un délai connu, déterminé selon le nb de taps.
Le délai pour N taps est (N - 1) / (2 * Fs), approximé par N/2 /Fs car N est généralement grand devant 1.

En contrepartie il ne déphase pas. Plus il y a de taps, et plus l'information qu'il a sur les fréquences basses (lentes) est présente et plus il peut les traiter. Explique pourquoi il faut plus de taps pour traiter des basses que des aigues.

Ce qui confirme aussi à qui en doutait que rien n'est gratuit dans ce monde : en FIR on échange absence de déphasage contre délai globlal.
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline


Retourner vers Filtrage actif, Equalisation et Processeurs

 
  • Articles en relation
    Dernier message