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

Filtrage soustractif à délai avec le DSPIY

Message » 07 Fév 2014 0:43

Si cela peut aider, on n'est pas obligé d'avoir des formules mathématiques.
On peut imaginer un système de boucles d'approximations par exemple.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 07 Fév 2014 0:47

thierryvalk a écrit:Si cela peut aider, on n'est pas obligé d'avoir des formules mathématiques.
On peut imaginer un système de boucles d'approximations par exemple.


en fait il y a des gens qui se sont deja posé la question
(http://dsp.stackexchange.com/questions/ ... th-filters)

le probleme c'est de passer du s-domain au z-domain

l'avantage d'avoir les 3 filtres factorisés en 1/(1+a(S/w)+b(S/w)^2) ca permet de calculer les biquads avec les formules standard à partir d'un LP 2ieme ordre. il suffit de remtre de l'ordre dans le coefs. demain il fera jour.
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 07 Fév 2014 1:02

Avec LSPcad,il y a moyen de faire une grosse bidouille,il a une fonction d'optimisation par itération.
je regarderai,
ensuite il faut juste rentrer les 3 Q et 3 Kf dans 3 biquads.
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 07 Fév 2014 2:20

Donc grosse bidouille qui aboutit:
le Bessel 6 (Jimbee) donne 3 biquads avec les coeffs suivants.


1er biquad:
Fc1=0.98 x Fc
Q1=0.938

2ème biquad
Fc2=1.139 x Fc
Q2=0.524

3ème biquad
Fc3=1.608 x FC
Q3=0.695

le truc testé,(Fc(-6dB)=920 Hz
Image
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 07 Fév 2014 10:43

Bonjour,

Sinon, une version très simple à programmer, trois Butt2 en série type
Butt2 à Fc 1kHz + Butt2 à 1,3 kHz + Butt2 à 1,6 kHz
Croisement à -5,4 dB, mais passe haut un peu plus franc, delai = 539µs

crd


Image
jimbee
 
Messages: 205
Inscription Forum: 21 Oct 2012 17:20
  • offline

Message » 07 Fév 2014 12:42

Bien, les solutions arrivent. :thks:
Je vais implanter le triple Butt2 avec les coefficients en fréquence. C’est en effet très simple.

Thierry, si tu me décris la mise en œuvre, je pourrais tenter de l’implanter aussi.

Niveau soft dans le DSPiy, l’utilisateur ne peut pas créer lui-même une combinaison de filtres, il a seulement une liste préétablie. Mais rien ne m’empêche de rallonger cette liste.

Ce qui serait bien aussi c’est de trouver un type de filtre avec un délai pas trop long pour application en dessous de 100Hz.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 07 Fév 2014 13:24

tu n'as pas une classe de calcul biquad avec Q et F ?
(c'est à dire sorti des librairies classiques Butt,LR,Bessel).

je vais regarder si j'en trouve une.

tu avais postè ce bout de code.
quelle est la librairie utilisée ?
il apparait bien le coeff fréquence et Q non ?

private void LPbessel36(string sparam, int biq, double crfrequence, double crgain)
{
if (type_appli != 5)
{
calcul_bessel_lowpass2(crfrequence / 0.6235, crgain / 2, 0.5103);
saveBiquad(sparam, biq, a0, a1, a2, b0, b1, b2);
calcul_bessel_lowpass2(crfrequence / 0.5919, crgain / 2, 0.6111);
saveBiquad(sparam, biq + 1, a0, a1, a2, b0, b1, b2);
calcul_bessel_lowpass2(crfrequence / 0.5250, crgain / 2, 1.0233);
saveBiquad(sparam, biq + 2, a0, a1, a2, b0, b1, b2);
}
else//soustractif
{
calcul_bessel_lowpass2(crfrequence *1.53, crgain / 3, 0.57735026918962576450914878050196);
saveBiquad(sparam, biq, a0, a1, a2, b0, b1, b2);
calcul_bessel_lowpass2(crfrequence * 1.53, crgain / 3, 0.57735026918962576450914878050196);
saveBiquad(sparam, biq + 1, a0, a1, a2, b0, b1, b2);
calcul_bessel_lowpass2(crfrequence * 1.53, crgain / 3, 0.57735026918962576450914878050196);
saveBiquad(sparam, biq + 2, a0, a1, a2, b0, b1, b2);

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

Message » 07 Fév 2014 13:57

Oups, oui, je pensais que c’était plus compliqué.
Aucun soucis, je mets ça en route dès ce soir.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 07 Fév 2014 14:45

et le délai est donné par

T=0.64 x Fc(certainement à fignoler en pratique) T=0.542/Fc
le passe haut passe progressivement de 12dB/oct à 18dB/oct.

est ce que c'est intéressant ?
les solutions butt et LR sont aussi plaisantes.
Dernière édition par thierry38efd le 07 Fév 2014 15:30, édité 1 fois.
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 07 Fév 2014 14:53

thierry38efd a écrit:et le délai est donné par

T=0.64 x Fc (certainement à fignoler en pratique)


En pratique, je suis plutôt autour de 0.5 : 6ms à 80Hz, et 0.52ms à 1000Hz
Philby
 
Messages: 9819
Inscription Forum: 12 Mar 2001 2:00
Localisation: 33
  • offline

Message » 07 Fév 2014 15:18

:) et oui !
je me suis embrouillé

T=0.542/Fc (pour le bessel6 Jimbee)

0.52 c'est pour le triple bessel 2 ? je ne me rappelle plus.
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 07 Fév 2014 15:19

Pour les délais, de toute manière on doit toujours donc affiner à la main.
Donc pas besoin de les calculer.
Mais intéressants pour voir la fréquence la basse possible selon les possibilités du DSPiy.

Si je résume :
Le LR4, il existe.
On a 2 Bessel6, le classique Bessel18 avec comme coef de F : 1/0.6235 + 1/0.5919 + 1/0.5250 et Q : 0.5103 + 0.6111 + 1.0233
On a le 3 Bessel2 simples.
Je vais rajouter le Bessel6 modifié avec comme coef de F : 0.98 + 1.139 + 1.608 et Q : 0.938 + 0.524 + 0.695
On a parlé d’un LR4 + Butt2.
Je vais rajouter du Butt6 avec comme coef de F : 1 + 1.3 + 1.6
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 07 Fév 2014 15:24

thierryvalk a écrit:Pour les délais, de toute manière on doit toujours donc affiner à la main.
Donc pas besoin de les calculer.
Mais intéressants pour voir la fréquence la basse possible selon les possibilités du DSPiy.

Si je résume :
Le LR4, il existe.
On a 2 Bessel6, le classique Bessel18 avec comme coef de F : 1/0.6235 + 1/0.5919 + 1/0.5250 et Q : 0.5103 + 0.6111 + 1.0233
On a le 3 Bessel2 simples.
Je vais rajouter le Bessel6 modifié avec comme coef de F : 0.98 + 1.139 + 1.608 et Q : 0.938 + 0.524 + 0.695
On a parlé d’un LR4 + Butt2.
Je vais rajouter du Butt6 avec comme coef de F : 1 + 1.3 + 1.6


Je teste quand tu veux! Je suis chaud là!

Ce que tu as appelé le Bessel 3x2 et que j'ai utilisé (cf config 1ère page du fil), c'est le 3 Bessel2 simples?
Dernière édition par Philby le 07 Fév 2014 15:28, édité 1 fois.
Philby
 
Messages: 9819
Inscription Forum: 12 Mar 2001 2:00
Localisation: 33
  • offline

Message » 07 Fév 2014 15:27

Coup d'œil à feuille excel pour le Bess6 modifié ( A1 = 4,4542 ) :

Pour un croisement des voies à 1kHz, prendre Fc ≈ 1315 Hz

Le retard est calculé par A1/ oméga = 4,4542 / ( 2 . π . 1315 ) = 0,5391 ms

Image

Les moins gourmands en délai, avec un crédit max de 6ms:
Le Butt3 LV = croisement des voies à 63 Hz, et vers 74 Hz avec le LR4LV
Dernière édition par jimbee le 07 Fév 2014 16:01, édité 1 fois.
jimbee
 
Messages: 205
Inscription Forum: 21 Oct 2012 17:20
  • offline

Message » 07 Fév 2014 15:29

@maxidcx

tu as raison,ta factorisation est juste et recolle à LSPcad
c'est tout à fait valide.

maxidcx a écrit:on lui rentre le polynome concocté par jimbee :
1 + 4.4572 x + 9.92 x^2 + 12.358 x^3 + 9.622 x^4 + 4.495 x^5 + x^6

il sort ca:
(x2+0.8643749436553161143x+0.36942744293759222517)
(x2+2.5200827068178867889x+1.8617163001244585151)
(x2+1.1105423495267970968x+1.4539763581950476698)

on normalise et on formate pour LT Spice
(1+2,339769*s/w+2,706891*(s/w)**2) * (1+1,353634*s/w+0,537139*(s/w)**2) * (1+0,763797*s/w+0,687769*(s/w)**2)
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline


Retourner vers Filtrage actif, Equalisation et Processeurs

 
  • Articles en relation
    Dernier message