Modulation numérique Sigma-Delta, DAC 1 bit ...
2eme partie
Le sujet qui nous intéresse ici, ce sont les lecteurs CD, voire les DAC séparés.
Quel est donc l'intérêt de représenter le signal de 16 bits du CD sur deux valeurs seulement, et comment fait-on?
L'intérêt, c'est que cela dispense de faire un convertisseur classique multibit (je parle des "vrais" 16, 20 ou 24 bits comme ceux que j'ai cités jusqu'ici), ce qui revient cher et est difficile à fabriquer, du fait de la précision requise pour le réseau de résistances qu'ils contiennent.
On peut obtenir une bonne précision à moindre coût avec un convertisseur 1 bit.
On a vu le principe de la partie modulation sigma delta numérique (que j'ai pas mal vulgarisée en omettant volontairement d'évoquer l'injection de bruit de dithering, que les connaisseurs m'en excusent).
On a vu aussi, en jouant avec l'applet java, qu'il fallait un grand nombre de valeurs binaires successives pour représenter finement un signal => voilà le rapport avec l'
oversampling!
=> On troque en quelque sorte la largeur des mots en sortie (ici 1 bit en sortie au lieu de 16 en entrée) contre une élevation très conséquente de cadence, autrement dit un oversampling d'un taux important.
Par exemple le signal sinusoidal que j'ai représenté plus haut en rouge n'est autre qu'un signal PCM 16/44.1 de 20 000 Hz oversamplé 64x. Tel quel, le signal à 20 Khz à 1x ne serait pas modulable en 1 bit, ça ne marche pas.
Les principes de l'oversampling ont été décrits au premier post: pour résumer c'est une élévation de cadence et un filtrage numérique permettant d'"aligner" les samples rajoutés sur une courbe d'interpolation idéale.
Sauf que dans le contexte du 1 bit, il ne s'agit pas d'un facteur de 2x, 4x ou 8x (pour relacher les contraintes de raideur sur le filtrage analogique de sortie après un convertisseur classique), il s'agit ici d'un facteur de 32x, 64x voire 128x pour rendre possible la modulation sigma-delta, qui elle même dispense d'un circuit DAC multibit difficile à fabriquer avec précision.
Car à ces forts taux de multiplication de fréquence par rapport à la fréquence de shannon (= 44100 Hz), cette modulation sigma-delta a une propriété très intéressante: elle intégre nativement un principe de
noise shaping: le bruit de quantification que l'on rajoute à cause de la diminution de la largeur des mots (on finit à 1 bit!) est en fait très bas dans la bande qui nous intéresse (de 0 à 20000 Hz) et monte progressivement avec la fréquence. Tout se passe comme si le bruit rajouté par la diminution de longueur de mot était filtré en passe-haut (c'est même précisement ce qui se passe).
Et grace à l'oversampling d'un facteur important, on dispose d'une plage énorme (non utilisée par le signal audio donc) pour que ce bruit s'étale en montant aussi haut que l'on veut.
Pour mieux le visualiser, voici le spectre d'un sinus de 10000 Hz en 1 bit: le signal est le trait vertical tout à gauche, tout le reste est du bruit. Je suis parti du signal à 16/44.1, que j'ai oversamplé 32X, et passé dans un calcul sigma-delta d'ordre 1:
=> Pour rendre inoffensif ce bruit, il suffit de le filtrer en passe-bas au-dessus de 22 KHz, en analogique et en aval du convertisseur, et le tour est joué.
Il est à noter qu'un filtre passe-bas est assimilable à un moyennage dans le temps... Ce qui nous ramène au début du post précédent: les transitions de +10 vers -10 dans la série 10+10+10-10+10+10+10+10+10+10-10+10+10+10+10+10-10+10+10+10 sont du bruit haute fréquence, mais le signal (ici: +7) est bien extrait une fois moyenné (= filtré).
--
Voici enfin le synoptique générique de la conversion D/A 1-bit (schéma du haut), rien ne devrait étonner puisque tout a été vu:
Dans le cas d'un oversampling appliqué à l'audio, on a par exemple:
N = 16 bits (les samples viennent du CD)
fs = 44100 Hz pour les mêmes raisons
Le filtre d'interpolation (= oversampling) d'un facteur K, K = 64 par exemple
Ce n'est pas sur le dessin mais à noter qu'à l'issue de ce filtre numérique, les données sont souvent sur un format N' > N, par exemple N'= 32 bits, pour conserver un maximum de précision dans les calculs (voir le post où je parlais des FIR).
Le "DAC" proprement dit est réduit à sa plus simple expression électronique, il s'agit de convertir le flux numérique binaire à K*fs (les 1,0,1,1,...successifs très rapides) en une grandeur analogique binaire (par exemple les tensions +V, -V, +V, +V, ...).
NB: Le schéma du bas est la généralisation du 1-bit à du M-bit (par exemple M=3), c'est une techno intéressante car elle peut aller plus loin en perf pour un rapport K donné. Mais la difficulté de fabriquer un DAC multilevel précis revient!
Attention, même à M-bit, ce n'est pas du PCM, ne pas confondre car le modulateur sigma-delta change complètement le principe comme je l'ai montré.
Les inconvénients du 1 bit maintenant, liste non exhaustive:
- du bruit est ajouté, c'est indéniable même si c'est un inconvénient négligeable puisque le noise shaping le minimise en dessous du seuil audible dans la bande utile (de 0 à 20000 Hz pour les humains).
- du fait de la modulation binaire, le moindre jitter de conversion va impacter le signal tout le temps. Même le PCM restant à 0 en entrée est sujet ici au jitter puisqu'il est converti en +V -V +V -V +V -V+V -V comme on l'a vu: un décalage temporel sur les moments de conversion à K*fs va modifier l'amplitude: en sortie du filtre analogique, on aura une fluctuation du niveau autour du 0 V
- design des modulateurs d'ordre supérieur difficile
--
Le
bitstream: c'est l'implémentation Philips du principe du delta-sigma dans les lecteurs CD (des années 90 si je ne m'abuse).
Vous avez du voir ce logo un jour ou l'autre:
Toute ressemblance avec un bout du sinus du post précédent n'est pas fortuite...
Voici un schéma de la mise en oeuvre d'un TDA1547 pour illustrer:
Source:
http://www.datasheets.org.uk/search.php ... tDS=Starts
Commentaires:
- On a là un oversampling de 192x, dont une partie est faite par interpolation idéale vraisemblablement par brick-wall numérique (cf. DIGITAL FILTER), et une autre partie par du "zero-order hold", c'est à dire de la fausse interpolation: les samples rajoutés sont juste une répétition des samples en entrées, en ligne droite horizontale.
- Le 3rd order noise shaping, c'est le modulateur numérique sigma-delta proprement dit. Celui que l'on a vu dans la simu analog est du
premier ordre. L'ordre indique le type de modulation, je n'ai pas prévu de le décrire en détail puisque ça se complique..
Il faut retenir que plus il est élévé, plus le noise shaping est intéressant pour la bande audio, car on "pousse" le bruit (ajouté par la réduction de la taille des mots) vers les hautes fréquences qui seront filtrées, et on abaisse du même coup le bruit ajouté dans la partie utile, comme illustré sur ce dessin:
La partie jaune est celle du signal utile qui va de 0 à 20000 Hz, on voit que le noise shaping de 3ième ordre donne au bruit une forme plus intéressante.
Questions ou commentaires bienvenus.
cdlt,
GBo