Forum Reaktor Francophone

Discussions autour de Reaktor 4 & 5, tutoriaux.
AccueilAccueil  ­PortailPortail  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­GroupesGroupes  ­ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 rien

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
anonyme7
Module


Nombre de messages: 163
Date d'inscription: 10/04/2006

MessageSujet: Re: rien   Jeu 7 Déc - 12:45

Je vais tenter de réexpliquer le truc sur les filtres plus clairement


L'ordinateur et le logiciel fonctionne avec des nombres. Quand il fabrique un son, il génère en temps réel 44 000 nombres par seconde qu'il envoie à la carte son. 44 000 par seconde, c'est la "fréquence d'échantillonnage". Pourquoi 44000. Parce les fréquences audibles vont de 20 hertz à environ 20 000 hertz. 20 000 hertz est un son tellement aigu qu'on ne l'entend plus. Or, pour pouvoir recrée un son continu à partir de nombres (d'échantillons), il est nécessaire que la fréquence d'échantillonnage soit 2 fois plus rapide que le son le plus aigu.

Bref, imaginons que ton soft génére une sinus (un cosinus dans mon exemple puisque je commence à 1, mais ça revient au même) en temps réel. Le soft envoi "1" à la carte son. Puis, échantillon suivant (1/44000 seconde plus tard, à la fréquence d'échantillonnage), il décrémente d'une certaine valeur (plus il décroit vite, plus la sinus aura une fréquence élevé), jusqu'a -1, puis il repasse progressivement à 1. Tout ça est calculé en temps réel. Donc à chaque instant, le logiciel calcul la valeur de ton échantillon, le balance à la carte son, puis calcul l'échantillon suivant etc...

Comment faire pour filter cette sinus pour les fréquences hautes (filtre passe bas), c'est à dire comment diminuer peu à peu l'amplitude de cette sinus quand on augmente la fréquence de cette sinus ? Il y a un moyen très simple pour filtrer : c'est de garder en mémoire la valeur de ton échantillon précédent, et de l'additionner avec l'échantillon actuel.

x(0) est la valeur calculée par ton soft pour faire ta sinus à l'instant présent (on prend par convention la valeur 0)

x(-T) était la valeur calculée par ton soft pour faire ta sinus à l'échantillon précédent (l'instant -T) et conservée en mémoire

y(0) = 0.5*x(0) + 0.5*x(-T)

y est ton nouveau signal (filtré)

Voyons pourquoi on a fabriqué un filtre passe bas ?

Regarde alors les images : en noir, c'est x, en rouge, y.

(en fait, les images induisent en erreur, car le logiciel n'a pas connaissance de toutes les valeurs à chaque échantillon passé et futur : il a juste connaissance de la valeur de l'échantillon actuel et de l'échantillon précédent conservé en mémoire)

Pour chaque point noir, tu calcules 0.5*point-noir + 0.5*point-noir-d'avant, ça donne le point rouge.


Quand x est de fréquence nulle (x continu et toujours égal à 1) :



Quand la fréquence de x est F=(fréquence d'échantillonnage)/4 :



Quand la fréquence de x est F=(fréquence d'échantillonnage)/2 :




L'exemple sous Sync-modular :

http://site.voila.fr/olomolo132/filter1.sme

s'assurer que la fréquence d'échantillonnage est bien à 44000, (aller dans sound puis audio set-up) et regarder sur l'oscillo (bouton à côté du bouton stop) la courbe en sortie : elle s'annule bien pour f=22000


Dernière édition par le Dim 10 Déc - 8:36, édité 20 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
anonyme7
Module


Nombre de messages: 163
Date d'inscription: 10/04/2006

MessageSujet: Re: rien   Jeu 7 Déc - 16:14

Maintenant, voici une façon graphique de prévoir le résultat du filtrage :

Regardons le point noir à l'instant 0 (instant actuel) et le point noir à l'instant -T (échantillon précédent) et intéressons nous uniquement à ces deux là.


Dans les 3 graphiques (pour les 3 fréquences), x(0) ne varie jamais : il est toujours égal à 1, quelque soit la fréquence de x.

Par contre, x(-T) égal 1 à la fréquence nullle (valeur de x pour l'instant -T au premier graphique), passe par 0 à la fréquence SR/4 (valeur de x pour l'instant -T deuxième graphique) et enfin égal -1 à la fréquence SR/2 (valeur de x pour l'instant -T au 3ème graphique).

Un façon graphique de voir cela, est de considérer un "grand" X(-T) qui se balade le long d'un demi-cercle inférieur :



Et le petit x(-T) est la projection de X(-T) sur l'abcisse.

(ps : alors que x variait entre 1 à -1 le long de l'axe vertical dans nos 3 images, cet axe vertical devient l'axe horizontal dans notre nouveau plan, et l'axe du temps, lui , a disparu)

On voit bien que quand X(-T) se balade le long du demi-cercle inférieur (en fonction de la fréquence), x(-T) se promène bien entre 1 et -1.

Le plan x0z est en fait le "plan complexe" et X(-T) la "représentation complexe" de x(-T) dans ce plan.

Posons :

X(-T)=Z^(-1)*X(0) ou encore Z^(-1)=X(-T)/X(0)

Z^(-1) représente la valeur "unitaire" (X(-T)/X(0)) de l'échantillon de X(-T) dans le plan complexe (dans notre exemple, on a X(0)=1 mais dans le cas général X(0) peut avoir n'importe quelle valeur). Dans ce plan, Z^(-1) décrit alors, en fonction de la fréquence, le demi-cercle inférieur de rayon 1.

Y(0)=0.5*X(0) + 0.5*Z^(-1)*X(0) = [0.5 + 0.5*Z^(-1)]*X(0)

Pour connaitre la variation de Y(0) par rapport à X(0), il suffit donc d'étudier la courbe 0.5 + 0.5*Z^(-1) quand Z^(-1) parcourt le demi-cercle unité inférieur :



Sur ce graphique, le segment bleu représente la variation en amplitude (la longueur du segment) et en phase (son angle par rapport à l'axe 0x) de la sortie Y(0) par rapport à X(0). On en déduit donc que la sortie Y est égal à X pour la fréquence nulle, qu'elle diminue peu à peu et est en décalage de phase par rapport à X quand la fréquence augmente et qu'elle s'annule à la fréquence F=SR/2 avec un décalage de pi/2 (ou 90°).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

rien

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Reaktor Francophone :: Logiciels modulaires :: Infinity / Synthedit / Synthmaker / Sync modular-
Poster un nouveau sujet   Répondre au sujet