Nikk a écrit:Tu as tout-a-fait raison. La decimation est seulement une technique de sous-echantillonnage ou le rapport des frequences d'echantillonnage est un nombre entier.
Donc en principe, la decimation devrait nous apporter un facteur bonus egal au carre du facteur de decimation.
En pratique toutefois, il faut filtrer les signaux pour l'operation de decimation elle-meme, et il faut gerer a la frequence du systeme un signal sous-echantillonne. En effet, meme si dans ton exemple ci-dessus on se retrouve en equivalent 3 kHz, le systeme, lui, continue de fonctionner a 48 kHz. Aussi, avant de retransmettre le signal aux DACs, il faudra bien le ramener a la frequence d'echantillonnage du systeme.
Bref autant de choses qui font fondre le bonus - mais ca vaut quand meme la peine.
Oui en gros il faut un premier passe bas "brickwall" pour se conformer au Nyquist visé, ensuite on prend 1 sample sur n, on filtre (avec n fois plus de puissance DSP par sample et n fois plus "d'efficacité" pour chaque tap), puis on dupplique n fois chaque sample.
Le premier passe bas brickwall ne va à priori pas demander bcp de taps, mais c'est sûr que la puissance qu'on aura grillé ici devra être déduite de celle dont on disposera ensuite...
Et plus on decimera d'un facteur important et plus il faudra de taps pour ce premier filtre vu que la frequence de Nysquist sera plus basse.
En tout cas on peut aussi faire ces filtres avec rePhase, et même les calculer une fois pour toute en dur (avec éventuellement un choix, genre pente forte ou faible suivant la situation, avec tel ou tel noise floor visé et tel ou tel effet dans la bande, un peu à la manière du filtre d'antialiasing des convertos ESS)
On pourra même ensuite compenser en partie l'effet du premier passe bas dans le second filtre.
Voici un petit exemple pour une decimation 16x (en oubliant les problématiques de mémoire et autres contraintes que je ne connais pas)
On fait en tâtonnant un filtre visant un rejet d'au moins 100dB à la fréquence de Nyquist pour un sampling 48kHz/16=3kHz, soit 1.5kHz, et utilisable sans trop d'effet sur l'amplitude jusqu'à environ 700Hz :
(on pourrait fixer d'autres objectifs, selon les cas)
Donc là on a déjà grillé 254 taps pour ce premier pass bas.
Mettons qu'on comptait en allouer 511 en tout pour ce canal, il en reste donc 257 taps à 48kHz, soit 257*16=4112taps à 3kHz (!)
Et ces 4112 taps à 3kHz donnent la même capacité de filtrage que 4112*16 = 65792 taps à 48kHz (!!)
En gros on peut faire à peu près n'importe quel filtre dans la zone de fréquence visée.
Et on peut même, comme évoqué plus haut, redresser l'amplitude dans la zone 700Hz-1400Hz pour contrecarrer l'effet du passe bas initial sur l'amplitude et la phase! (avec juste une perte de precision dans le haut de la bande puisqu'on est en fixe)
On peut tester ce que donnent 65792 taps à 48kHz dans rePhase: on peut à peu près faire n'importe quoi.
(et quand la fréquence de sampling 3kHz sera ajoutée on pourra tester directement l'effet de 4112 taps à 3kHz)
Maintenant le même exemple sur une décimation x4 :
Donc là on vise toujours -100dB cette fois à 48kHz/4/2 = 6kHz.
Là 62 taps suffisent pour obtenir le même objectif (arbitraire), et utilisable jusqu'à environ 3kHz (là aussi compensable jusqu'à au moins 5kHz)
Donc si comme tout à l'heure on avait alloué 511 taps pour ce canal il en reste 449 à 48kHz, soit 449*4= 1796 à 12kHz
Et ces 1796 taps à 12kHz donnent la même capacité de filtrage que 1796*4 = 7184 taps à 48kHz
Là aussi c'est à priori suffisant pour la plupart des situations... (un peu moins que tout à l'heure, mais utilisable plus haut en fréquence)
On peut tester directement ce que permettent 1796 taps à 12kHz dans rePhase, il y a déjà de quoi faire, par exemple un passe haut 96dB/oct à 100Hz sans problème.
En gros avec le downsampling/decimation la puissance actuelle de la carte est déjà largement suffisante (n'en déplaise à dominax
), d'autant que les 511 taps utilisés ici représentent moins de 1/16eme des ressources disponibles (8500 taps) !
Reste à voir la faisabilité, niveau mémoire notamment...