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

Pour discuter de tout ce qui sert dans un projet DIY, de la défonceuse au logiciel de mesure

rePhase: linéarisation de phase, EQ et filtrage FIR

Message » 08 Aoû 2014 6:48

La question est donc, en pratique, 1 ou 2 impulses ?


Je dirai 1 impulse stéréo,mais impossibilité de retarder indépendamment un canal/l'autre.
ce qui peut être fait avec des all-pass dans le 1701 .avec une formule simple selon la F0 du all-pass.

par contre,l'impulse stéréo est en .wav.
ou alors dupliquer la mono sur left et right dans dstudio


Je ne sais pas,mais par la suite,

avec 10K par canal,le down-sampling permettrait de faire cross over+EQ+corr.de phase acoustique.

genre:
-voie grave 4000 taps (down samplé x4).==résolution de 2x8K taps (avec impulse centrée)
-voie mid 4000 taps.(impulse centrée)
-voie high 2000 taps.(impulse centrée+retard de 1000x1/48K)

cela permettrait pas mal de combinaisons,même subwoofer+grave+mid-high.
mais la faudrait sortir l'I2S sur le 1701 pour appliquer les retards/inversions/niveaux.
EDIT:quoique,... rephase permet l'inversion et le réglage niveau.
resterait plus que le retard sur chaque canal.

Faut voir la release de sigmastudio pour les blocks de décimation/interpolation.

ce qui donne une latence max de 42ms,gérable en HC.

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

Message » 08 Aoû 2014 9:12

Il y a plusieurs inconnues avec l’ADA1452.
Le datasheet donne « jusqu’à 24000 FIR taps »
Par contre une banque de mémoire fait 20K, l’une est utilisée pour la table, l’autre pour les valeurs intermédiaires.
Il y a aussi la charge du DSP, SigmaStudio en FIR donne des valeurs non réaliste, du genre 2% de charge pour 20K taps.
Il y a les optimalisations, apparemment il est optimalisé pour deux filtres FIR, je doute que l’on puisse simplement diviser les 20K taps en 6 filtres.
Le down-sampling avec le programme qui gère plusieurs FS, je doute qu’il apparaisse car pas vraiment dans la logique de Sigmastudio.

Donc les données sont incomplètes, on attend une release de Sigmastudio.

Pour créer des retards indépendants, on a les délais : sur le 1701 mais aussi le 1452 si l’on utilise pas toute sa mémoire pour les taps.

Dans un premier temps, je voudrais faire simple avec du FIR en global (entrées), la séparation des voies serait toujours en IIR sur l’ADU1701 (Qui permet de faire du filtrage soustractif + délais).

Niveau hardware, l’ADA1452 peut soit s’insérer dans l’ADA1701 avec 1 I2S in et 1 I2S out.
Soit recevoir les samples venant de l’ADA1701 avec 1 I2S et sortir directement sur les DAC.
Sous réserve que l’on puisse mettre à l’état d’haute impédance les sorties de l’ADA1701 + problèmes de réflexions.

Thierry, ton schéma n’est pas possible ou alors en TDM que je voudrais éviter.
PS : 1 impulse stéréo est pour moi 2 impulses; si elles sont identiques on est en mono sur 2 canaux, donc 1 impulse.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 16 Aoû 2014 18:56

Je viens de me rendre compte qu'il faut aussi retarder le mid et encore +la voie high,en fait.

même down samplé x4,4000 taps 48K------------->T(delay)=4000taps /2 x(1/12000)-->333 ms :-?
faut aligner le mid et le high...!

4000 taps/2 x 1/48K=41ms (333-41=292ms...)

Pas simple ces histoires de multi-taps et multi rate.

Sur PC,pas de question à se poser,tout à la même Fs et le même nombre de taps.

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

Message » 22 Aoû 2014 21:49

Salut pos,

Pour cause de météo j’avance dans le développement du FIR pour le DSPiy.
J’en suis à faire passer 10K taps communs aux 2 canaux.7

Je me penche donc sur les autres besoins afin de déterminer mes fonctions dont les séparateurs de voies.
Sur le fil du dspiy j’avais émis une idée que je me permets de rapporter ici vu que si réaliste peut être applicable à d’autres systèmes.
post178217166.html#p178217166

Pour le moment je n’ai rien fait de « réaliste » avec rePhase, mais franchement sympa comme soft : simple, rapide et efficace. :D

Je pense que vous en avez déjà discuté, dommage de ne pas avoir le directory de l’impulse sauvegardé dans le fichier .rephase.

A part ce détail, dans le cas du DSPiy, c’est relativement simple : on génère une impluse, et on l’importe selon sa fonction dans DStudio.
Le fichier .C permet de vérifier si le nombre de taps correspond à l’application et les infos en remarque en début de fichier sont déjà bien pertinentes.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 26 Aoû 2014 13:49

Bonjour Thierry

thierryvalk a écrit:Salut pos,

Pour cause de météo j’avance dans le développement du FIR pour le DSPiy.
J’en suis à faire passer 10K taps communs aux 2 canaux.7

10k taps ça le fait, c'est presque le double de l'openDRC !

Je me penche donc sur les autres besoins afin de déterminer mes fonctions dont les séparateurs de voies.
Sur le fil du dspiy j’avais émis une idée que je me permets de rapporter ici vu que si réaliste peut être applicable à d’autres systèmes.
post178217166.html#p178217166

Du coup j'ai répondu là bas : post178224333.html#p178224333

Pour le moment je n’ai rien fait de « réaliste » avec rePhase, mais franchement sympa comme soft : simple, rapide et efficace. :D

merci, j'aimerais bien travailler sur l'aspect intégration à d'autres softs, pour faciliter l'import des impulses avec surtout l'offset.
Je vais essayer de t'envoyer une version de test avec les choses dont on a parlé (entrée/sortie standard et arguments)

Je pense que vous en avez déjà discuté, dommage de ne pas avoir le directory de l’impulse sauvegardé dans le fichier .rephase.

Le problème c'est qu'un directory n'existe pas forcément d'un machine à l'autre.
Déjà sauvegarder le nom de fichier c'est très limite...

A part ce détail, dans le cas du DSPiy, c’est relativement simple : on génère une impluse, et on l’importe selon sa fonction dans DStudio.
Le fichier .C permet de vérifier si le nombre de taps correspond à l’application et les infos en remarque en début de fichier sont déjà bien pertinentes.
Comme dis plus haut je vais t'envoyer dès que possible une version de test plus intégrable.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 26 Aoû 2014 17:04

Ok, merci pour ces réponses.

J’ai encore pas mal de boulot : sauvegarde dans le fichier .apd, mais surtout la gestion fichier temporaire / mémoire de DStudio pour le rendre un peu plus dynamique. Ensuite sauvegarde en flash du DSPiy …

Vu que l’on travaille en réel sur du 8.24 (8 bits avant la virgule et 24 après).
Donc pour le moment les coef de Rephase sont multipliés par 2^24.

Quelle est la précision nécessaire en FIR et ses conséquences ?
Quels sont les valeurs max générées par Rephase ?
Si la résolution semble trop faible, peut-on appliquer un coefficient multiplicateur sur les taps ? et quelle incidences : multiplication du gain ?
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 29 Aoû 2014 23:45

Désolé pour le délai de réponse, il fallait que je trouve le temps de faire l'illustration.

L'ADA1452 veut des entiers? Je pensais qu'il était en 32 bits float.

Quelle est la précision nécessaire en FIR et ses conséquences ?
Quels sont les valeurs max générées par Rephase ?
Si la résolution semble trop faible, peut-on appliquer un coefficient multiplicateur sur les taps ? et quelle incidences : multiplication du gain ?


La valeur max de l'impulse sera dépendante de la correction.
Une correction "flat" (phase et amplitude plate) aura comme valeur max 1 (ou le plus grand entier dispo sur le format de sortie wav PCM choisi), ce sera un dirac. La même correction avec un gain global de 6dB (fader de l'onglet general) aura comme valeur max 2, toujours un dirac, etc...
Ensuite si il y a une correction d'amplitude et/ou de phase le pic de l'impulse sera plus réduit. Par exemple un allpass (inverse ou pas) aura la même energie qu'un dirac, mais étalée, donc le pic sera forcément inférieur...
Donc en gros sur un correction ne dépassant pas 0dB la valeur max sera toujours inférieure ou égale à 1.

D'ailleurs en passant, quand on choisi un format de sortie wav PCM et que le pic dépasse la valeur max, rePhase normalise automatiquement l'impulse et indique la réduction en dB dans une boite d'alerte.


Pour ce qui est des effets d'une perte de résolution, avec des entiers tu va simplement remonter les pallier de l'amplitude la plus basse possible pour la correction. L'effet est un peu le même que celui d'un fenêtrage rectangulaire de plus en plus court.

Voilà un exemple d'une correction (LP 96dB/oct à 1kHz) avec divers résolutions de sortie.

resolution diff.png
resolution diff.png (34.67 Kio) Vu 2048 fois


Le pic de l'impulse est à -27.5 dB, et on retrouve le noise floor théorique de chaque format et le niveau minimal de correction qu'il permet :
16 bits : 27.5 - 6x16 = -68.5 dB
24 bits : 27.5 - 6x24 = -116.5 dB
32 bits : 27.5 - 6x32 = -164.5 dB

évidemment en float on n'a pas ce problème...
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 30 Aoû 2014 10:47

Et oui, l’ADAU1452 n’est pas un SHARC et travaille en entier sur 32bits.
De ce que je comprends, c’est pas trop pénalisant pour notre application si l’on reste vigilant.
Du +1 -1 donnera 26 bits.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 28 Sep 2014 23:45

Après plus d'une année sans mise à jour ( :siffle: ), voici rePhase 0.9.8, téléchargeable comme d'habitude sur sourceforge: https://rephase.org/

Code: Tout sélectionner
0.9.8 2014-09-28
    - minimum-phase filters tab with common IIR filter types:
        * 1st order
        * 2nd order with arbitrary Q
        * Butterworth with slopes ranging from 6dB/oct to 996dB/oct in 6dB
          increments
        * Linkwitz-Riley with slopes ranging from 12dB/oct to 996dB/oct in
          12dB increments
    - 'compensate' mode for generalized arbitrary order Linkwitz
      Transform-like manipulations in minimum-phase filters tab
    - new centering options expressed as a percentage to easily obtain
      matched delays
    - default to "middle" centering instead of "energy" to avoid delay
      mismatch problems for the unaware user (principle of least surprise)
    - praxis measurement format handling, scientific notation in frequency
      column
    - smaller executable, new installation method
    - bug correction: crash on impulse generation with some specific filter
      settings
    - directory handling bug correction
    - measurements can now be loaded from the command line or drop on exe,
      similarly to settings
    - revamped file extension handling (settings)
    - revamped icon
    - smoothed out taps/fft size calultation


Donc la nouveauté principale de cette version est l'onglet de filtres à phase minimale, avec en bonus la possibilité de faire des transformées de Linkwitz généralisées.

Pas encore de shelving dans cette version (quoique, en cherchant bien...), ce sera pour la prochaine version, pour le faire bien et l'intégrer proprement en tenant notamment compte des différentes conventions existantes quand à la définition de la Fc: center frequency, corner frequency, cut-off frequency....
Dernière édition par pos le 15 Mar 2019 12:34, édité 1 fois.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 29 Sep 2014 0:41

Merci !....Thomas.
il manque un onglet "donation"..! :D
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 29 Sep 2014 6:45

Petite correction rapide d'un bug introduit dans la dernière version :zen:
la version 0.9.8c est maintenant en ligne...
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 29 Sep 2014 6:49

thierry38efd a écrit:Merci !....Thomas.
il manque un onglet "donation"..! :D

Salut Thierry
J'ajouterai peut être une page de don quand la version 1.0 sera en ligne...
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 29 Sep 2014 18:49

Bonjour

J'avais utilisé le micro paiement dans les outils de calculs de mon site.
C'est sans doute une idée à reprendre.
Mais il faut un contenu réel en face du micro paiement, il ne convient pas pour les dons.

NB : Aujourd'hui c'est la gratuité totale, pour faire taire toutes les critiques.

Cordialement, Dominique.
PETOIN Dominique
 
Messages: 4329
Inscription Forum: 19 Mar 2002 2:00
Localisation: 63200
  • online

Message » 29 Sep 2014 23:49

:) Comment tu fais des multiples de 90° ? ça m'intrigue cette histoire....
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 01 Oct 2014 8:14

A quoi fais tu allusion exactement? Les Butterworth à phase minimale?
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline


Retourner vers Outils & Logiciels

 
  • Articles en relation
    Dernier message