Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Choky Lab: L'aliasing c'est quoi donc ? Demos sur modulaires

  • 24 réponses
  • 7 participants
  • 10 502 vues
  • 15 followers
1 Choky Lab: L'aliasing c'est quoi donc ? Demos sur modulaires
Our ceux qui se posent des question sur l'aliasing, petit cours (c'est pas du niveau ultra pro, alors Wolfen et autre Gabou critiquez pas, la le but c'est etre didactique :oops2: ).

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 :coucou:
Afficher le premier post
11
Yep

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
12
Merci beaucoup à Choc qui a pris de son temps pour rédiger cette petite plaquette que je lui demandais sur Ce Thread sur lequel j'avais posté ces exemples sonores en pur amateur :

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 ! :bravo:
13
Ya pas une option sur le subtracktor pour eviter l'aliasing ?

je crois que y a un bouton low bandwidth ou un truc du genre ?!?
14
Yes, effectivement Choc il y a ce type de bouton « Low BW ». Mais dans mes exemples il n'était pas actif. Alors quand on l'active ça dégrade encore plus la qualité et ça fait entendre l'Aliasing encore davantage et ce, même plus bas dans le spectre des fréquences. :mdr:

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 !

:aime:
15
Ouaih, sans etre snob, j'ai jamais trop aimé les synthé reason, rien qu'une saw, j'aime pas le son qui en sort, j'ai du mal a sortir du gros sons avec meme avec la palanqué d'effet (Compresseur, EQ, etc, etc) :boire:
16
Moi je trouve que Reason a un gros son. Dans le sens de pas raffiné. :mdr:
17

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...
18
Pour eviter ca, y a moyen de surechantillonner avant traitement, puis d'appliquer le traitement a la nouvelle FE, de filtrer passe bas, puis de revenir a la FE d'origine...

Ca expliquerait peut etre la consommation CPU ahurissante des produits d'arturia :boire2:
19

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 :oops: 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 !

:bravo:
20
Pour eviter l'aliasing.

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 !! :boire: