Calculs audio numérique pour les nuls

Discutions générales sur le DSPiy et tout ce qui s'y rattache
Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Calculs audio numérique pour les nuls

Messagepar thierryvalk » jeu. 25 févr. 2016 19:09

Merci, de complètement nébuleux je commence petit à petit à visualiser la chose, mais le chemin est encore long.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » jeu. 25 févr. 2016 19:13

oui ça peut arriver quand on tombe pas juste en fréquence et que les données sources varient beaucoup. mais si ta phase en sortie de FFT n'est pas torturée, il n'y a aucune raison que ça tournoie ainsi.

tu travaillerais pas sur l'impulse de tes HPs de pc par hasard ?

edit : en regardant mieux, non ça peut pas arriver sur cette impulse qui m'a l'air celle d'une mesure toute simple.
yaquechose
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Calculs audio numérique pour les nuls

Messagepar thierryvalk » jeu. 25 févr. 2016 19:20

Non, pas d'erreurs.
Je pense que si j'applique d'abord le délai sur les 16384 points de la FFT ce serait mieux.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » jeu. 25 févr. 2016 19:45

thierryvalk a écrit :Premier problème du soir.
Suis occupé à mettre au propre et appliqué le délai sur les complexes avant passage en magnitude/phase.
Le signe du sin est bien + sinon c'est gribouillis.

le décalage est vraiment savoir qui on décale p/r à l'autre. le décalage peut etre de T ms ou de -T milisecondes selon qui est la référence.

tu peux laisser la formule standard avec le signe moins (cos Phi - i sin Phi) et mettre un délai négatif. Cela donne le même résultat.
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Calculs audio numérique pour les nuls

Messagepar thierryvalk » jeu. 25 févr. 2016 20:05

Voila ça fonctionne :)
Je fais en deux temps, d'abord appliquer le délais sur les 16384 points puis extraction amplitude et phase en 1/48

Code : Tout sélectionner


 int i
=0;
            
double fx 0;
            while ( 
i16384)
                 {
                
fxi*fsfir 32768f;
                
double phi = (Math.PI fx )/ fsfir * -picimpulse;
                
Complexe c = new Complexe(Math.Cos(phi), -Math.Sin(phi));
                
cft[i] = cft[i] * c//delai
                
i++;
                }
            
0;
            
fx 0;
            while (
fx 20000)
               {
                
i++;
                
fx Math.Pow(2, (double)48);
                
int ij = (int)(fx 32768 fsfir);
                
fftre[i].frequence fx;
                
fftre[i].magnitude 20 Math.Log10(cft[ij].Module);
                
fftre[i].phase cft[ij].Argument 180.0 Math.PI;
                }

            return 
fftre;
 

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Calculs audio numérique pour les nuls

Messagepar thierryvalk » jeu. 25 févr. 2016 20:18

Petit expérience de contrôle.
En foncé un EQ en FIR et en clair le même EQ mais en IIR.
firiir.PNG

C'est pas exactement identique, faudrait un jour vérifier avec un DSPiy et REW.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » jeu. 25 févr. 2016 20:25

La différence est en pouillèmes.
bon pour le sévice :)

compare un LR48 pour voir. Avec 4 biquads enchainés, ça devrait amplifier les différences s'il y en a.
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Calculs audio numérique pour les nuls

Messagepar thierryvalk » jeu. 25 févr. 2016 20:34

Je ne sais pas faire du LR48 en global.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » jeu. 25 févr. 2016 21:37

thierryvalk a écrit :Je ne sais pas faire du LR48 en global.

petit joueur :hehe:

si t'as 4 biquads tu peux faire un LR48 ou un BUTT48 ou un BE48

pour un LP BUTT48, 4 filtres LP 2e ordre enchainés à la même Fc et avec Q =
0.5098
0.6013
0.8999
2.5628

c'est tout bien expliqué dans le lien mis en page 1
http://www.ti.com/lit/an/sloa049b/sloa049b.pdf

DStudio fait comme ça aussi en interne, non ?
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » ven. 26 févr. 2016 20:29

question délai :

On parle de pouvoir décaler les courbes de phase d'un délai, mais
- En temporel, c'est facile de voir de combien décaler pour ramener t=0 sur le pic de l'impulse.
- Si on est purement en fréquentiel, comment déterminer ce décalage ?
acheter un DSPiy ? c'est ici

thierry38
Messages : 190
Enregistré le : jeu. 16 juil. 2015 16:17
Localisation : Grenoble fournaise/Frigidaire

Re: Calculs audio numérique pour les nuls

Messagepar thierry38 » sam. 27 févr. 2016 14:40

:) On peut pas.(facilement).

l'idée simple est de caler le 0° à Fs/2,mais il peut y avoir plein de rotation sur la bande.
il faut déplier la phase,et faire en sorte de coller à 0° vers 20KHz (Fs=48K)

Faudrait,par itération,recoller à un gabarit théorique (qu'il faudrait calculer selon les ordres,nb de bandes,coupures acoustiques).
C'est ce que fait Pos avec rePhase,pour generer une impulse ad hoc,mais alors là,mathématiquement parlant... 8/

Et encore,le t0 au max de l'impulse,c'est avec une mesure/impulse qui grimpe jusqu'à 20KHz.
Ce n'est plus valide avec des impulses "basses fréquences" et autres mix phase linéaire/maximale,...à part le faire à la main.
l'impulse est tellement étalée dans le temps que le max est approximatif.

Suffit d'essayer une impulse passe-bas vers 100-200Hz,(une "normale",phase minimale genre LR4)
le t0 est à l'origine de l'impulse (càd ,dès que les coefficients "décollent" de 0).et non plus au maximum.--->c'est le délai de groupe (en seconde)

Je vais essayer de faire qq dessins/simus.

thierry38
Messages : 190
Enregistré le : jeu. 16 juil. 2015 16:17
Localisation : Grenoble fournaise/Frigidaire

Re: Calculs audio numérique pour les nuls

Messagepar thierry38 » sam. 27 févr. 2016 15:58

2 impulses LR8,l'une en phase linéaire/symétrique,et l'autre "normale",(qui "s'écoule" sur la droite,ph.min (ou non-min)).

Holm est pratique pour afficher simultanément temporel et fréquentiel.
quand il fait sa FFT,il la cale sur le max,alors que c'est le début de l'impulsion qui "correspond" à la théorie.
On ne voit pas bien le début (sur le 2ème graph),en échelle linéaire pour l'impulse.
en échelle log,c'est +visible.

L'amplitude est confondue en rouge et bleu.
Image

Image

Et une impulse filtre phase linéaire (96dB/oct+correction bass-reflex à 35Hz),impulse de 8000 taps-->centre à 4000 taps.
il faut la décaler de 96 samples sur la gauche (phase maximale).
:happy1: ,un joyeux boxon à "automatiser"

Image

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » sam. 27 févr. 2016 16:22

ok je vois la difficulté. merci.

au passage : Pour la pédagogie c'est cool d'afficher sur le même écran le temporel et le fréquentiel. permet de comprendre ce qui se passe quand on touche a un paramètre.
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » lun. 29 févr. 2016 11:41

on parlait plus haut de stabilité des biquads

La condition de stabilité d'un biquad est que ses pôles soient dans le cercle unitaire.
Les pôles c'est les deux racines, réelles ou complexes, du dénominateur.
Les zéros sont les racines du numérateur et n'interviennent pas dans la stabilité.

Cela se traduit par des contraintes assez simples sur les coefficients;

Avec les 5 coefficients normalisés habituels, b0, b1, b2, a1, a2 qui correspondent à :
Image

la condition de stabilité est le respect de ces deux critères :
| a2 | < 1
ET
| a1 | < 1 + a2

| a | signifie partie absolue de a

Les biquads avec coeffs créés par DStudio sont stables par construction.
Si un jour DStudio permet la saisie de coefficients manuels (pour filtres customs par exemple), ce serait une bonne chose de vérifier les critères ne serait ce que pour éviter des erreurs de saisie. ;)
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » lun. 29 févr. 2016 20:32

Question sur les Impulses et leur niveau peak

j'arrive a passer du fréquentiel au temporel (l'impulse) avec excel. C'est une FFT et IFFT complexe limitée a 4096 valeurs.
H(f) --- (IFFT) ---> h(t) ---- (FFT) ---> H1(f)
et on a bien H1 = H. L'algorithme et les calculs sont bons.

ma question est sur la signification du niveau obtenu sur l'IR.
je comprend bien la linéarité : si on fait par exemple 2*H(f) , cad +6dB, on obtient bien 2*h(t)
mais a quoi correspond la valeur absolue du pic de h(t) ?

A titre d'exemple : toujours sur référence à 0dB en fréquentiel
Lowpass LR24 à 1kHz ==> pic impulse = 0,042
Highpass LR24 à 1kHz ==> pic impulse = 0,665
PEQ Q=0,707 +6dB à 1kHz ==> pic impulse = 0,894

Comme 0dB correspond à 1, je m'attendais a trouver une valeur 1 quelque part sur l'impulse...
acheter un DSPiy ? c'est ici

louisr
Messages : 456
Enregistré le : mar. 14 juil. 2015 15:52
Localisation : Bordeaux/Poitiers

Re: Calculs audio numérique pour les nuls

Messagepar louisr » lun. 29 févr. 2016 23:47

Est-ce que ça serait pas tout simplement lors du passage en dB pendant la fft (je ne sais pas comment ça marche), l'algorithme trouve la valeur peak de l'impulse, et la prend comme référence, comme par exemple les dBc qui prennent en référence l'amplitude de la porteuse ? Du style G(f)=20log(amplitude(f)/peak)
ce qui donnerai ton gain max à la fréquence qui correspond à ton peak ton l'impulse : 20log(peak/peak)=0dB ?
Juste une idée balancée comme ça un peu tardivement

thierry38
Messages : 190
Enregistré le : jeu. 16 juil. 2015 16:17
Localisation : Grenoble fournaise/Frigidaire

Re: Calculs audio numérique pour les nuls

Messagepar thierry38 » mar. 1 mars 2016 07:42

Le pic de l'impulse correspond à Fs/2 (pour une mesure jusqu'à 20-24Khz (ou +).
c'est le + fort dv/dt,(tel un sinus et sa "pente maxi).

les impulses limitées par un passe-bas montre un étalement dans le temps,comme un sinus à 100Hz,par ex,et sa période de 10ms.
c'est plus l'énergie qui est répartie différemment.

une impulse reste la somme de tous les sinus.(amplitude/temps).
on retrouve une valeur de 1 (Dirac) lorsque tous le sinus démarrent en même temps (delai de groupe =cste)
C'est ce que permet rePhase.

pour les biquads,si instable,la disto grimpe en flèche (overflow),voire un bruit ignoble... :)
Un peu comme un AOP instable,qui devient (ou est) un oscillateur.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Calculs audio numérique pour les nuls

Messagepar alka » mar. 1 mars 2016 10:20

thierry38 a écrit :Le pic de l'impulse correspond à Fs/2 (pour une mesure jusqu'à 20-24Khz (ou +).
c'est le + fort dv/dt,(tel un sinus et sa "pente maxi).
humm... mes mesures ne vont que jusqu'à 20k. C'est rempli de 0 autour de Fs/2. (Fs=48k).

les impulses limitées par un passe-bas montre un étalement dans le temps... c'est l'énergie qui est répartie différemment.
got it :) ca explique parfaitement la différence d'allure entre le même filtre LR24 en LP et HP

une impulse reste la somme de tous les sinus.(amplitude/temps).
on retrouve une valeur de 1 (Dirac) lorsque tous les sinus démarrent en même temps
voilà ce qui me manquait ! :)

C'est ce que permet rePhase.
Je sais pas tout ce que fait rephase, mais pour moi il ne fabrique pas un dirac mais une jolie impulse bien symétrique. Cad que les sinus ne démarrent pas tous en même temps mais décalés linéairement, d'où la phase linéaire. Je me gourre ?
acheter un DSPiy ? c'est ici


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités