Choky Lab: L'aliasing c'est quoi donc ? Demos sur modulaires
- 24 réponses
- 7 participants
- 10Â 783 vues
- 15 followers
Choc
Avant Propos
Une des bases du traitement du signal numérique spécifie
Citation : La fréquence d'échantillonnage d'un système numérique doit etre deux fois supérieure a la fréquence maximale du signal à échantillonner
Pour éviter cette artefact, on doit d'abord savoir la fréquence maximale des signaux a numériser. En audio, la fréquence maximale du signal est basée sur les limites perceptives de l'oreille: "Notre appareil auditif peut capter des fréquences maximales de 20 000 Hz (ou 20kHz)"(1). Cette limite nous permet de calculer la fréquence d'échantillonnage minimum de nos appareils audio numérique:
2*20kHz=40kHZ
En pratique, pour des raisons que je ne détaillerais pas ici (implémentation technique, historique), une des fréquences d'échantillonnage communément utilisée est le 44.1 Khz.
Maintenant que ce passe t'il si le signal à numériser comporte des fréquences supérieures a 20kHz ? Un artefact qui porte le nom d'aliasing (ou repliement spectral en français) va apparaître. Cet artefact est détaillé dans la section suivante
L'aliasing
L'aliasing apparaît donc lorsque la fréquence du signal, que l'on note ici f, est supérieure a la moitié de la fréquence d'échantillonnage, que l'on note ici Fe.
Citation : Si f > Fe/2 Alors aliasing
Il apparaît alors un repliement du spectre du signal. En gros, prenons un signal au spectre très simple, la sinusoïde, dont le spectre contient une seule raie. Gardons la notation f, pour designer la fréquence de cette sinusoïde, le spectre de la sinusoïde contient une raie a la fréquence f (décomposition en série de Fourier d’une sinsuoide).
La figure suivante montre le spectre de la sinusoĂŻde lorsqu'il n'y a pas d'aliasing (f=15000, Fe=44100).
Si la fréquence f de la sinusoïde est supérieure a Fe/2, il y a repliement
spectral (f=30000, Fe=44100)
Notons f_sys, la frĂ©quence de la sinusoĂŻde pour notre système numĂ©rique, mathĂ©matiquement on Ă
f_sys=Fe/2-(f-Fe/2)=Fe-f
La fréquence f_sys est différente de la fréquence f. Notre système numérique se trompe.
A titre d'illustration sonore, vous pouvez écouter ici, une sinusoïde dont la fréquence augmente de 0 à 44100 Hz. A partir de 22050, la fréquence de la sinusoïde descend à cause de l'aliasing, alors que la fréquence réelle augmente.
A NE SURTOUT PAS ECOUTER AU CASQUE:
Sinsuoide dont la frequence evolue de 0 a 44100 Hz, Fe=44100, l'aliasing debut a mi-parcours
Application au modulaire
Il est intéressant de voir le comportement des synthétiseurs modulaires face au problème d’aliasing. Une manière de mettre en évidence la présence au non d’aliasing consiste a générer des signaux possédant une infinité d’harmonique (le signal comporte donc des harmoniques supérieures a la moitié de la fréquence d’échantillonnage).
Prenons le cas des signaux dent de scie, le décomposition en série de fourier du signal en dent de scie spécifie que le signal comporte une infinité d’harmonique. Ci-dessous les premières harmoniques d’un signal en dent de scie. La fréquence fondamentale de notre dent de scie est 1760 Hz et les harmoniques sont situées a 1760 *n Hz ou n est un entier.
Pour les synthé modulaire, l’onde en dent de scie est communément utilisée. Toutefois, pour éviter des problème d’aliasing, la dent de scie est prétraitée.
NI: Absynth
Absynth possede deux modes de generation d'oscillateur. Le mode sans correction d'aliasing et anti aliasing. le mode anti alising est plus gourmand en ressource CPU. L'interet pour l'utilsiateur de pouvoir switcher entre les deux modes est egalement d'ordre esthetique, rien de tel qu'un oscillateur avec aliasing pour decupler la froideur d'absynth..
Absynth dent de scie sans correction d'aliasing (fondamentale 1760 Hz)
Absynth dent de scie avec mode anti aliasing (fondamentale 1760 Hz)
NI: Reaktor
Contrairement Ă absynth, Reaktor ne permet pas de desactiver ou d'activer le mode anti aliasing.
Reaktor dent de scie (fondamentale 1760 Hz)
Cycling 74: MaxMSP
Maxmsp possede deux objets pour le generation des dent de scie. L'objet phasor~ non traité contre l'aliasing, et l'objet saw~ traité contre l'aliasing.
Maxmsp dent de scie sans correction d'aliasing: objet phasor~ (fondamentale 1760 Hz)
Maxmsp dent de scie avec anti aliasing (fondamentale 1760 Hz)
Synthedit
Synthedit possede un objet pour la generation de differents oscillateurs dont la dent de scie
Maxmsp dent de scie avec anti aliasing (fondamentale 1760 Hz)
A vous de tirer vos conclusions
Site personnel: https://www.enib.fr/~choqueuse/
Choc
L'alising, c'est un truc qui intervient a plein de niveau pas forcement qu'en synthese de son
en fait si tu veux eviter l'aliasing sous un soft, il faut:
1- generer ton signal a une frequence d'echantillonnage plus elevée, genre *16 ou un truc du genre. DOnc tu passes a par exemple 16*Fe, le repliement va apparaitre au frequences superieures a 16*Fe/2 ce qui laisse pas mal de marge pour l'eviter.
2- Filtrer passe bas, pour supprimer les frequence qui sont superieures a Fe/2
3- reechantillonner a la frequence d'echantillonnage Fe.
La par exemple avec une dent de scie, si tu suis cette demarche, y aura quasiement pas d'aliasing
Je pense que c'est tendu a faire sous Reaktor, surtout que ce genre d'operations doit bouffer pas mal niveau CPU, enfin la pour ce genre de truc c'est plutot wolfen le specialiste.
Citation :
2- même si c'est à priori un artefact non souhaité, la couleur sonore résultante peut être intéressante.
Carement, je pense que c'est pour ca, que certains soft comme absynth permettent de desactiver ou non l'antialising. Cela peut produire des effets sympathiques, assez froids, purement numerique. Pour ton idée, c'est realisable sur absynth, dans les modules oscillo, y a un petit carré qui permet de dire si ton oscillo fonctionne en mode anti aliasing ou non. Dans ton cas, tu ouvres deux oscillos generant la meme forme d'onde, un en mode aliasing, et l'autre non. En venant jouer sur le volume des deux oscillos, tu peux jouer sur la quantité d'aliasing. Faudrais basser la frequence d'echantillonnage de ta carte aussi, pour que l'effet soit plus flagrant
Site personnel: https://www.enib.fr/~choqueuse/
francolamuerte
Citation : Je vous ai enregistré un petit exemple qui démontre directement à l’audio le crénelage apparent de Reason. Pour ma comparaison j’ai utilisé donc le Minimoog V d’Arturia et le Subtractor de Reason. Sur cette .wav vous allez entendre, dans le spectre aigu, quelques demis-tons joués par le Minimoog ensuite suivi immédiatement de la même séquence jouée par le Subtractor.
Même si c’est très aigu et perçant, mettez le volume assez fort pour bien entendre la différence entre les deux…
Cliquez ici ! ( .wav de 4 Mo )
Une écoute avec un équipement d’un minimum de qualité est indiqué.
On entend bien le repliement de spectre des fréquences aiguës sur le passage avec le Subtractor.
Ceci est particulièrement gênant puisque ce phénomène peut transformer une harmonique d'un son en une fréquence anharmonique, déplaisante à l'oreille.
Et comme on sait tous que la richesse harmonique du spectre aigu est importante en ce qui a trait au timbre sonore, on peut vite comprendre les « limites » de Reason sur ce plan…
Je viens de faire un test pour montrer que les fréquences parasites causées par le crénelage peuvent se faire entendre même sur une note très basse riche en harmoniques aiguës. Vous entendrez 2 fois la même séquence dans cette wave. En premier avec le Minimoog V d’Arturia ( réputé pour son absence de crénelage ) suivi du Subtractor. Le test consiste à faire entendre une note grave tenue ( ici C-1 ) avec une onde en dent de scie ( riche en harmonique ) et à faire un geste de pitch bend ascendant et descendant réglé sur le ratio de la quinte soit « 7 ». Dans le cas du minimoog , une onde pure très tranchante sans parasite. Dans le cas du Subtractor une onde comportant de petits parasites sonores causés par le repliement du spectre des fréquences harmoniques aiguës que contient l’onde en dent de scie. Placez votre volume assez élevé pour bien entendre la différence :
MinimoogV suivi du Subtractor
Merci beaucoup Choc !
Choc
je crois que y a un bouton low bandwidth ou un truc du genre ?!?
Site personnel: https://www.enib.fr/~choqueuse/
francolamuerte
C'est donc à dire que les exemples que je vous ai fait entendre étaient les exemples « de qualité ». Décidemment Propellerhead devront vraiment faire quelque chose là parce que franchement ils ne sont plus dans le coup face à Native Instruments, à Arturia et cie...
De plus sur l'autre synthétiseur de Reason « le Malstrom » il y a un truc vraiment curieux.
Je voulais faire exactement le même test que celui que j'avais fait avec le Subtractor pour voir comment se comporterait le crénelage.
La hauteur des ondes du Malstrom est bloquée au Do 7ièm octave mes amis ! ( C7 ). C'est la note la plus basse utilisée dans mon premier test ci-haut.
Pas croyable ! Plutôt que de régler le problème de crénelage apparent dans le spectre aigu, propellerhead ont décidé sur le Malstrom de limiter la hauteur du son et par conséquent de la richesse des fréquences harmoniques de n'importe quelle note ( même plus basse ) !
Comme le Malstrom est ultérieur au Subtractor, ça ne regarde pas bien pour un éventuel Reason 4.0. Plutôt que d'améliorer l'oscillateur du Subtractor dans la version 4.0, ils décideront peut-être de reproduire cette génialissime idée de mettre un plafond à la hauteur du son !
Choc
Site personnel: https://www.enib.fr/~choqueuse/
francolamuerte
vinxz
Citation :
Pas croyable ! Plutôt que de régler le problème de crénelage apparent dans le spectre aigu, propellerhead ont décidé sur le Malstrom de limiter la hauteur du son et par conséquent de la richesse des fréquences harmoniques de n'importe quelle note ( même plus basse ) !
un peu comme korg dans le vst d'emulation du MS20 me semble-t-il...
Choc
Ca expliquerait peut etre la consommation CPU ahurissante des produits d'arturia
Site personnel: https://www.enib.fr/~choqueuse/
francolamuerte
Citation : un peu comme korg dans le vst d'emulation du MS20 me semble-t-il...
Je viens d'appliquer les deux tests que j'ai fait plus haut sur le MS20. L'effet de l'Aliasing ne se fait pas sentir à la hauteur de C7 comme le Subtractor et de plus le MS20 est bloqué dans sa hauteur certes mais vraiment plus haut... je me suis rendu à Sol8 ( G8 ) avant qu'il ne bloque...
Choc j'arrive pas vraiment à comprendre se que tu affirmes Veuillez excuser mon amateurisme les gars mais sachez au moins que je suis de bonne foi dans ma démarche pour comprendre au mieux ce phénomène. Je comprendrai si tu n'as pas le goût d'expliquer en vulgarisant davantage, sinon fonce ! Explique nous ça à fond mon gars !
Choc
Pusique l'alising intervient a FE/2...ou FE est la frequence d'echantillonnage, tu peux augmenter avant traitement virtuellement la frequence d'echantillonnage
Imagines t'as un son a 44100 Hz, sans aliasing. Si tu operes un traitement qui peut causer de l'aliasing, l'aliasing va apparaitre pour les frequences superieures a 22050Hz...
Si maintenant j'augmente virtuellement avant traitement la frequence d'echantillonnage a a 32*Fe par exemple. Et bien la l'alising apparaitra a 32*Fe/2, l'alising sera donc vachement plus rare...
Ensuite tu coupes tes frequences a FE/2 sur ton son apres traitement, pour ne laisser que les frequences entre 0 et Fe/2. Don cla ton signal est toujours echantillonné a 32*Fe, mais ne possede que la partie du spectre 0 FE/2. Tu peux alors changer ta frequence d'echantillonnage a Fe (reechantillonner), car tu es maintenant sur que ton signal ne possede pas de frequence superieures a Fe/2.
VOilou tu as effectué ton traitement sans aliasing. le prix a payé c'est la conso CPU, en effet y a beaucoup de traitement a effectuer, ca a un prix !!
Site personnel: https://www.enib.fr/~choqueuse/
- < Liste des sujets
- Charte