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

DSPiy : logiciels et algorithmes

Message » 13 Fév 2014 21:10

question du jour :
Dans la section Filtres (les globaux) de DSPiyStudio, seuls des filtres du second ordre (12db/o) sont disponibles.

Comment faire pour obtenir des filtres High Pass et Low Pass habituels tels que Butterworth, Linkwitz-Rikey ou Bessel d'ordre supérieur ?

réponse:
On peut combiner judicieusement des filtres génériques HighPass et LowPass dont on peut fixer fréquence Fc et facteur qualité Q.

(note: pour les Bessel, la fréquence de coupure est a modifier. Les formules ici sont pour les LP. Pour un HP, mulitplier au lieu de diviser par le nombre indiqué)

BUT12 : un filtre générique avec Q = 0,7071 (existe dans la liste sous le nom ButtW LP ou HP)
LR 12 : un filtre générique avec Q = 0,5
BE 12 : un filtre générique avec Q = 0,5773 et Freq = Fc/0.7861 (existe dans la liste sous le nom Bessel LP ou HP)

BUT24 : cascade de deux filtres, le premier avec Q = 0,5412, le second Q = 1,3067
LR 24 : cascade de deux filtres, chacun avec Q = 0,7071
BE 24 : cascade de deux filtres, premier Q1 = 0,8055 et F1= Fc/0.6236 ; le second Q2 = 0,5220 et F2=Fc/0,6992

BUT36 : cascade de 3 filtres. Premier Q 1= 0,5177 Deuxième Q2 = 0,7071 Troisième Q3 = 1,9320
LR 36 : cascade de 3 filtres. Q1 = 0,5 Q2 = Q3 = 1,0
BE 36 : cascade de 3 filtres. Q1 = 0,5103 et F1 = Fc/0,6235 ; Q2 = 0,6111 et F2 = Fc/0,5919 ; Q3 = 1,0233 et F3 = Fc/0,5250

BUT48: cascade de 4 filtres. Q1=0,5098 ; Q2=0,6013 ; Q3=0,8999 ; Q4= 2,5628
LR 48 : cascade de 4 filtres. Q1=0,5412 ; Q2=1,3067 ; Q3=0,5412 ; Q4= 1,3067
BE 48 : cascade de 4 filtres. Q1=0,5060 et F1=Fc/0,5622 ; Q2=0,5596 et F2=Fc/0,5458 ; Q3=0,7109 et F3=Fc/0,5120 ; Q4=1,2257 et F4=Fc/0,4568


merci Ttcli et jEQ où j'ai pioché ces infos.
edith: merci thierry38 pour les tables un peu plus loin
Dernière édition par alkasar le 14 Fév 2014 17:28, édité 1 fois.
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 0:05

Il me semble qu'il manque dans certains cas un paramètre et dans d'autres une combinaison de filtres.

L'idée est très très bonne, ce qu'il manque dans dans DStudio c'est principalement un passe-haut pour couper le bas des enceintes.
On dispose de filtres d'ordre 2 a 12dB par octaves théoriques mais dans certain cas du 24dB serait souhaitable.

La question première : quel type de filtre ? Du LR24 ?
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 14 Fév 2014 1:34

si on veut mettre un filtre infra de type LR24 à 20Hz
on met deux HighPass à la suite à 20Hz chacun avec Q=0,707 chacun. (5ème ligne ci-dessus)

un exemple ou il manquerait quelque chose pour définir complètement un filtre ?
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 9:47

allez pour la route : comment on fait un 3db par octave à partir de 2 khz :wtf:
bon en fait j'ai trouvé des truc sur le pink noise qui doivent aider...
Code: Tout sélectionner
Here are some new lower-order pink noise filter coefficients.

These have approximately equiripple error in decibels from 20hz to 20khz at a 44.1khz sampling rate.

1st order, ~ +/- 3 dB error (not recommended!)
num = [0.05338071119116 -0.03752455712906]
den = [1.00000000000000 -0.97712493947102]

2nd order, ~ +/- 0.9 dB error
num = [ 0.04957526213389 -0.06305581334498 0.01483220320740 ]
den = [ 1.00000000000000 -1.80116083982126 0.80257737639225 ]


Filter to make pink noise from white  (updated March 2000)
------------------------------------

This is an approximation to a -10dB/decade filter using a weighted sum
of first order filters. It is accurate to within +/-0.05dB above 9.2Hz
(44100Hz sampling rate). Unity gain is at Nyquist, but can be adjusted
by scaling the numbers at the end of each line.

If 'white' consists of uniform random numbers, such as those generated
by the rand() function, 'pink' will have an almost gaussian level
distribution.


  b0 = 0.99886 * b0 + white * 0.0555179;
  b1 = 0.99332 * b1 + white * 0.0750759;
  b2 = 0.96900 * b2 + white * 0.1538520;
  b3 = 0.86650 * b3 + white * 0.3104856;
  b4 = 0.55000 * b4 + white * 0.5329522;
  b5 = -0.7616 * b5 - white * 0.0168980;
  pink = b0 + b1 + b2 + b3 + b4 + b5 + b6 + white * 0.5362;
  b6 = white * 0.115926;


An 'economy' version with accuracy of +/-0.5dB is also available.

  b0 = 0.99765 * b0 + white * 0.0990460;
  b1 = 0.96300 * b1 + white * 0.2965164;
  b2 = 0.57000 * b2 + white * 1.0526913;
  pink = b0 + b1 + b2 + white * 0.1848;

---
paul.kellett@maxim.abel.co.uk
http://www.abel.co.uk/~maxim/

maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3103
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 14 Fév 2014 10:39

un exemple ou il manquerait quelque chose pour définir complètement un filtre ?


Par exemple :

Linkwitz-Riley – 36 dB/oct = 2 cascaded 3rd order butterworths
3rd order butterworth is implemented by cascading a “HigherOrder” + 1st order
1st Filter: [HigherOrder] orderindex = 3, i = 0
2nd Filter: 1st Order Butterworth
3rd Filter: [HigherOrder] orderindex = 3, i = 0
4th Filter: 1st order Butterworth

Mais l’on ne va pas réétudier tous les types de filtres. :wink:

Le LR24 vu que c’est 2 Butterworths donc on pourrait aussi sélectionner ButtW HP à 20Hz pour 2 filtres.

Pour atténuer le haut, j’utilise un High-Shelf. Mais s’il y a une meilleure méthode je suis preneur.

Exemple de coupure à 20Hz et d’atténuation du haut.
Image
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 14 Fév 2014 13:39

Thierry, tu confonds la manière d'ADI de calculer et ce que je propose ici.

on peut bien sur calculer les filtres comme le fait ADI, ou même directement avec des coefficients de biquad. Ce n'est pas mon propos.

Le post c'est utiliser ce qu'on a, cad des filtres génériques LP et HP à 12db/o pour faire les autres dans la liste. Suffit de fixer Fc et Q correctement.
On aboutit au même résultat, sans être développeur de DSPiyStudio.
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 14:04

C'est parti en effet de l'idée de mettre un filtre infra d'ordre plus élevé.
Les LR sont idéaux pour un joli raccord entre passe-bas et passe-haut en amplitude et en phase. C'est pas ce qu'on recherche idéalement pour un filtre infra.

Je dirai qu'on cherche une pente max, une courbure en amplitude forte et le déphasage portant le moins loin possible. Un HP BUT24 est dans ce sens mieux qu'un LR24
En étudiant bien la question on doit pouvoir trouver la combinaison optimale de filtres HP12 pour le meilleur compromis pente/phase pour un filtre infra. C'est ma question qui reste sans réponse pour l'instant. Si quelqu'un a une idée, je suis preneur. Ou la preuve que ça sert a rien c'est utile aussi.

Une fois trouvé, si le développeur de DSPiyStudio le propose directement dans les menus, c'est une belle initiative. Mais c'est pas indispensable ;)
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 14:23

Hello,

comme il n'y a aucun complément dans l'infra.
c'est un peu chacun ses goûts.(la phase n'est plus trop significative).

réponse plate jusqu'à 20Hz
1er biquad --->Fc=20Hz et Q=1
2ème ---->Fc=20Hz et Q=1

Après pour un Tpg contenu,
2 biquad avec Q=0.7 donneront du "plus propre",

:) mais bon...sous 20Hz...
thierry38efd
 
Messages: 1735
Inscription Forum: 18 Sep 2013 7:36
  • offline

Message » 14 Fév 2014 14:36

thierry38efd a écrit:Hello,

comme il n'y a aucun complément dans l'infra.
c'est un peu chacun ses goûts.(la phase n'est plus trop significative).

réponse plate jusqu'à 20Hz
1er biquad --->Fc=20Hz et Q=1
2ème ---->Fc=20Hz et Q=1

Après pour un Tpg contenu,
2 biquad avec Q=0.7 donneront du "plus propre",

:) mais bon...sous 20Hz...

mon sujet c'est pas la phase en dessous de 20Hz, la dessus on est d'accord :)
Je cherche a minimiser l'impact au dessus. Plus il est court, mieux c'est pour polluer le moins possible tout ce qu'on va faire en traitement au niveau caisson.
J'ai pensé aussi Q=1. Pas eu le temps de regarder en détail encore. Le but serait un Q résultant des 2 biquads le plus proche de 1 possible, pas nécessairement chacun a 1.

chacun avec Q=0.7 c'est un LR24 et je trouve le BUT24 meilleur en phase et en amplitude.
tester ave jEQ pour voir les deux.
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 14:51

alkasar a écrit:Une fois trouvé, si le développeur de DSPiyStudio le propose directement dans les menus, c'est une belle initiative. Mais c'est pas indispensable ;)

Le développeur qui a un nom ne sait pas mettre dans une liste un filtre qui utiliserait plus d’un biquad. :charte:
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 14 Fév 2014 15:01

thierryvalk a écrit:
alkasar a écrit:Une fois trouvé, si le développeur de DSPiyStudio le propose directement dans les menus, c'est une belle initiative. Mais c'est pas indispensable ;)

Le développeur qui a un nom ne sait pas mettre dans une liste un filtre qui utiliserait plus d’un biquad. :charte:
je sais bien, c'est pour ça que le post a un intérêt. Faire du LR24 ou BUTT24 ou plus sans aucun effort de développement compliqué.

ca te plait pas que je parle de toi à la troisième personne ? :mdr:
alkasar
 
Messages: 11517
Inscription Forum: 29 Nov 2005 22:47
Localisation: Neuf deux
  • offline

Message » 14 Fév 2014 15:10

:)

j'ai trouvé chez Linkwitz,un tableau.
(je vais voir pour les Butt,pour les Bessel,je pourrai les faire par itérations).

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

Message » 14 Fév 2014 15:39

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

Message » 14 Fév 2014 15:57

Et nous voilà partis avec 5 filtres en séries. :hein:

De toute manière je ne suis pas certain de la précision du DSP à ces fréquences.
thierryvalk
 
Messages: 5617
Inscription Forum: 08 Mai 2012 9:39
Localisation: Belgique
  • offline

Message » 14 Fév 2014 16:27

Ben voilà, on a la réponse pour le LR36 avec 3 biquads :) Q1=0,5 et Q2=Q3=1

si je comprend bien les tableaux Butt et Bessel pour les ordres impairs : pas de Q pour le dernier biquad, ce sont donc des filtres d'ordre 1 qui sont utilisé en dernier (HP6 ou LP6)
crotte, on n'a pas cette brique de base dans DStudio qui ne fait que la parité :)

ps1 pour Thierry v : c'est pas une demande d'implémenter HP6 ou LP6, c'était juste une remarque pour le fun. Les ordres pairs c'est largement suffisant.


ps2: c'est exactement ainsi que jEQ fabrique ses filtres a partir de HP6 et HP12 ou LP6 et LP12. Peut etre la même source pour les coeffs.
tcli n'a pas implémenté le LR36. Je vais pouvoir compléter jEQ :)
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