Se connecter
Se connecter

ou
Créer un compte

ou

[Théorie] Repliement spectral : c'est quoi ? ça s'entend ?

  • 33 réponses
  • 10 participants
  • 11 948 vues
  • 21 followers
Sujet de la discussion [Théorie] Repliement spectral : c'est quoi ? ça s'entend ?
Cette question a été évoquée danss le sujet sur les gri-gris en hifi. La question initiale était :

Citation : Bon, sinon, le repliement quand on échantillonne à 44.1kHz, ça s'entend ? V'z'avez un exemple concret de deux fichiers 44.1 / 96 sur lequel la différence s'entend ?

Désolé, je passe surement pour un benet, mais moi j'ai jamais entendu la différence, et théoriquement on a vu que si le filtrage était correct (ce qui doit être le cas quasi tout le temps à partir d'un certain niveau de matos heureusement de plus en plus bas) ça s'entend pas.

Afficher le sujet de la discussion
11
T'as raison ! :oops:

Esta página está fora do ar Provavelmente, o autor do site ainda não fez a publicação das páginas nos nossos servidores. Tente novamente outra hora.

Traduction Google :

This page is is of air Probably, the author of the site not yet made the publication of the pages in our servers. It tries another hour again.

Et traduction à partir de l'anglais :

Cet IS-IS de page d'air probablement, l'auteur de l'emplacement pas encore fait la publication des pages dans des nos serveurs. Elle essaye une autre heure encore.

C'est le téléphone arabe !

:mdr:

Allez on parle d'Aliasing. Il y a de l'aliasing dans les lignes de téléphone ?
12
Pour l'image, je l'ai mise là :

http://drpouet.free.fr/images/son/aliasing.gif

Citation : Par contre j'ai du mal à comprendre le fait de générer une sinusoide de façon logicielle puisque là tu sors sur un DAC qui, à ma connaissance ne possède pas de filtre anti-repliement mais un filtre de reconstruction (qui n'a rien à voir).
Je ne vois pas quel défaut tu veux mettre en évidence dans le cas présent


C'est une bonne remarque. Moi non plus je ne vois plus :mrg:

Au début on a parlé de la conversion NA (ou DAC en inegliche), puis du filtrage assez raide qui le suit et qui pouvait être un problème (phase massacrée...) On a évoqué la solution : suréchantillonnage + filtrage moins raide, et donc avec moins de problèmes de phases.

Et au milieu de ça on a parlé du repliement spectral :

Citation : Apres, il y a les convertisseurs: si on a un signal dont la bande passante max est de 20 khz environ, on peut se dire que ca sert a rien d'avoir un convertisseur qui marche a plus. En fait, le probleme est que si le convertisseur marche a 44.1, il doit filtrer tout ce qui passe au dela de 22.05 (la moitie); tout ce qui sera pas filtre se "retournera" (repliement de spectre, autrement connu sous le nom d'aliasing). Et en meme temps, il doit preserver tout ce qui est au dessous.

Mais faire un filtre qui laisse tout passer avant 22050 Hz et tout apres 22050, c'est impossible; on veut des filtres a pente tres raide (beaucoup plus raide que les filtres utilises dans les effets/synthes, car on veut qqch de l'ordre de 50, 60 dB voire bien plus par octave); pente raide veut dire reponse en phase du filtre completement distordante (comprendre ca va chier sur les transitoires). Comme en plus ce doit etre un filtre analogique, ca complique encore plus le truc.

Maintenant, si tu fonctionnes a 96 Khz, le repliement commence a 48 khz. Si on a du signal a 49 khz, ca va etre replie a 47, a 52 replie a 44, etc... Mais meme un repliement de 10 khz, on s'en fout, car c'est a 10 khz de 48, qu'on entend toujours pas. C'est la l'interet fondamental: on deplace la frequence de coupure, on a un filtre beaucoup plus doux, car pas mal de repliement s'entend pas, alors qu'en 44.1, le moindre repliement s'entend.



Reprenons les choses dans l'ordre :
1- on a un signal numérique (fichier wav, CD...) sans repliement
    En effet, si il comporte du repliement, par exemple à 13kHz, ben c'est trop tard pour s'en débarrasser sans virer des parties utiles du signal.
    Pour éviter qu'il y en ait : soit l'échantillonneur ADC a viré les fréquences supérieures comme tu l'as indiqué, soit les algorithmes utilisés pour générer le wav s'en sont chargés, c'est ce que Choc décrit dans son sujet


2- on fait une conversion numérique -> analogique (DAC)
    je ne sais pas à quoi le signal ressemble à ce stade, probablement des histogrammes un peu arrondis. Quelqu'un le sait ça ?
    Dans ce cas, en plus du signal utile, on doit avoir des tas d'harmoniques multiples de 44.1kHz ; mais là on est en analogique, donc il n'y a plus de raison d'avoir du repliement :???:


3- on filtre
    Ca a pour effet de virer les harmoniques précédemment citées. Le fait d'avoir un filtre très raide reste un problème réel, qui justifierait le suréchantillonnage.


Mais effectivement, dans ce raisonnement je ne vois plus pourquoi il y aurait un repliement... :?!: Je crois que l'explication de Gabou marche dans le sens AN, mais ne s'applique pas dans le sens NA, c'est bien ça ?


Du coup, par rapport à l'objectif initial du thread, il faudrait séparer la problématique en deux objectifs complètement distincts :

- pour Bara : il s'agit d'entendre le repliement à l'échantillonnage (ADC). Il faudrait un signal carré, généré par une carte son à 96 voire 192kHz (en espérant que leur sortie n'est pas, ou pas trop, filtrée à 20kHz), qui entre dans une carte qui échantillone à 44kHz. Si son filtrage en entrée n'est pas bon, le repliement devrait s'entendre.

- pour moi : mon but était d'entendre l'apport du suréchantillonnage. Ca risque fort de ne pas être facile : si son absence se traduit par une présence de sons à 44kHz, ça va pas être facile à entendre ! En fait ça a peut-être juste comme inconvénient d'envoyer dans l'ampli voire les enceintes, des signaux inaudibles qui peuvent avoir un effet néfaste...

Je ne vois pas trop en fait...
13

Citation : Si on a du signal a 49 khz, ca va etre replie a 47, a 52 replie a 44, etc...




Et c'est quoi la formule qui permet de déterminer la fréquence de repliement ?




Le spectacle
14

Citation : 2- on fait une conversion numérique -> analogique (DAC)

je ne sais pas à quoi le signal ressemble à ce stade, probablement des histogrammes un peu arrondis. Quelqu'un le sait ça ?


A des histogrammes oui mais pas arrondis.

Citation : 3- on filtre

Ca a pour effet de virer les harmoniques précédemment citées. Le fait d'avoir un filtre très raide reste un problème réel, qui justifierait le suréchantillonnage.


C'est ça, c'est le rôle du filtre de reconstruction: lisser le signal pour avoir une belle courbe continue sans marches d'escalier.
Le suréchatillonnage n'a rien à faire là dedans, on est repassé en analogique.

Citation : Je crois que l'explication de Gabou marche dans le sens AN, mais ne s'applique pas dans le sens NA, c'est bien ça ?


Tout à fait, ce qu dit Gabou concerne les convertissurs analogique-numérique.

Citation : pour moi : mon but était d'entendre l'apport du suréchantillonnage. Ca risque fort de ne pas être facile : si son absence se traduit par une présence de sons à 44kHz, ça va pas être facile à entendre ! En fait ça a peut-être juste comme inconvénient d'envoyer dans l'ampli voire les enceintes, des signaux inaudibles qui peuvent avoir un effet néfaste...

Je ne vois pas trop en fait...


Le meilleur moyen (et le plus simple) de voir ces phénomènes de repliement spectral est le GBF et l'oscillo :clin:
15

Citation : A des histogrammes oui mais pas arrondis.


Enfin l'électronique qui génère ça ne peut pas parvenir à faire des pentes infinies. Elles sont très raides et dessinent des histogrammes presque parfaits ? Je serais curieux de voir la gueule que ça a à l'oscilloscope tiens !

Citation : C'est ça, c'est le rôle du filtre de reconstruction: lisser le signal pour avoir une belle courbe continue sans marches d'escalier.
Le suréchatillonnage n'a rien à faire là dedans, on est repassé en analogique.


Mon explication était trop courte : pour virer tout ce qui est au-delà de 22kHz il faudrait un filtre passe-bas à pente très raide (= ordre très élevé). Mais un tel filtre a tendance a avoir un comportement très mauvais sur la phase à la fréquence de coupure.

Pour éviter cela, une technique classique est de sur-échantillonner, donc passer au moins à 88kHz, avec une interpolation (calculs des samples intermédiaires manquants), puis un filtrage qui peut être beaucoup plus doux et donc avoir un effet moins néfaste sur le signal analogique produit.

En deux mots : https://cnx.org/content/m11006/latest/
Un peu plus clair : http://www.werple.net.au/~gnb/mac-cdis/cd8.html


Citation : The simplest filter to construct is an active analog filter after the DAC; which have been used since the first generation of players. A lot of the "junk" has been removed, but there is still some there, and the upper audio frequencies have undergone a lot of audible phase shift. Players with no over-sampling would generally use higher order filters, up to 11 in some cases, which reduces the junk to acceptable levels, but the phase shift gets worse and noticable "ripples" appear in the upper audio response.

Another technique is to double or quadruple the rate at which the DAC converts values, called over-sampling. The one or three intermediate values are calculated by digital interpolation before the DAC. The junk is spread across a larger bandwidth due to the higher DAC conversion rate.

To eliminate the remaining junk to well below -100 db, over- sampling must be used and additional mathematical low-pass filtering done on the digital signal before the DAC.



Conclusion (en 1996) :

Citation : At present, a minimum criteria for purchasing a CD player is dual 16 bit four times oversampling converters, high quality components including gold plated output sockets, and separate internal power supplies for each section of the circuit. I see no justification in having a separate box for the DACs; the DACs in the player and the audio design should have been good enough in the first place, to suit the quality of the digital circuits and mechanism. It is a good marketing exercise, however. I feel that having DACs in the pre-amp is a good idea for elimating an audio interconnect.

16

Citation : > Si on a du signal a 49 khz, ca va etre replie a 47, a 52 replie a 44, etc...

Et c'est quoi la formule qui permet de déterminer la fréquence de repliement ?


Pour pouvoir enregistrer jusqu'à une fréquence F, il faut échantillonner à 2xF. Une fréquence supérieure à F, par exemple F+x va se replier en F-x (en supposnant que x est compris entre 0 et f).
17
C'est tout simple... :bravo2:



Le spectacle
18

Citation :
Je crois que l'explication de Gabou marche dans le sens AN, mais ne s'applique pas dans le sens NA, c'est bien ça ?



Il y a pas de probleme de repliement dans le sens NA.

Le probleme du repliement spectral, c'est que le vocabulaire, bien choisi pour decrire l'effet, rend tres mal la cause. Lorsque l'on a un signal audio, il est dans le domaine temporel (comprendre l'onde sonore est une fonction du temps: grosso modo, amplitude varie en fonction du temps; evidemment, le signal est la plupart du temps sous forme electrique dans les cables, analogique ou numerique, mais ca change rien pour ce qui nous interesse ici).

Echantilloner, en mathematiques, ca veut dire *discretiser*: on passe d'un signal continu (sans 'saut' temporel) a un signal discret (les echantillons). On peut demontrer que discretiser dans le domaine temporel (le signal est une fonction du temps) est equivalent mathematiquement a periodiser le spectre (le spectre est la representation du meme signal dans le domaine spectral: le spectre est l'amplitude en fonction de la frequence), la periode correspondant tres exactement a la frequence d'echantillonage.

Maintenant, concretement, ca donne ca:



http://www.ar.media.kyoto-u.ac.jp/members/david/misc/repliement.png

En haut (danc chaque cadran), le signal normal, comme on le voit dans un editeur audio, en bas le spectre. Ne pas se prendre la tete sur les frequences negatives; il y en a besoin pour les maths, mais pour un signal audio (en maths, signal reel vs complexe), le spectre est toujours symetrique autour de 0, donc c'est juste un miroir.

Dans le cadran en haut a gauche, avant echantillonage, a droite apres. Donc mathematiquement, on peut prouver que le spectre se repete avec une periode 1/fs. Si le spectre du signal avant echantillonage depasse fs/2 (en fait, si on prend en compte les frequences negatives, ca veut dire que le spectre est different de 0 sur une ligne horizontale plus grande que fs: on multiplie x2 car il y a le miroir), quand il y a repetition (a droite), ca se recouvre... Comme il y a le miroir, c'est comme si ca se repliait, d'ou le terme repliement. Mais en fait, c'est bien un probleme de recouvrement: un signal a frequence f = fs/2 + f0 qui va depasser fs /2 de f0 hz, son miroir va etre en dessous de -fs/2 de f0 Hz, et donc apres repetition de frequence fs: -fs/2 - f0 = -fs/2 - f0 + fs (periode fs) = fs/2 - f0. On passe de fs/2 + f0 a fs/2 - f0, c'est comme si la frequence se repliait.
19
Maintenant, si on filtre tout ce qui est au dessus de fs/2, on a un spectre qui a des valeurs non nulles juste dans le domaine -fs/2 .. fs/2. Donc en repetant a une frequence de fs, il y a plus recouvrement.

En fait, si on comprend ca, on comprend que ce qui compte, c'est pas la frequence maximum du spectre, mais le support de frequence, ie quelle est l'etendue des frequences pour lesquelles le spectre est non nul. Meme un signal a 10 Mhz, s'il va juste de 9.99 Mhz a 10 Mhz, il y a pas besoin de sampler a 20 Mhz, mais 20 khz (10 Mhz - 9.99 Mhz x 2). Et on comprend aussi pourquoi le facteur 2: c'est a cause du miroir.

Si on est dans les maths, il y a une dualite entre domaine spectral et temporel: discretiser dans un domaine revient a periodiser dans l'autre (ca marche aussi dans l'autre sens: si on discretise, cad echantillone le spectre, ca revient a periodier le signal a un periode correspondant a la frequence d'echantillonage... Mais c'est un peu plus complexe a comprendre sans quelques base de theorie du signal).
20

Citation :
pour moi : mon but était d'entendre l'apport du suréchantillonnage. Ca risque fort de ne pas être facile : si son absence se traduit par une présence de sons à 44kHz, ça va pas être facile à entendre ! En fait ça a peut-être juste comme inconvénient d'envoyer dans l'ampli voire les enceintes, des signaux inaudibles qui peuvent avoir un effet néfaste...



Ca, c'est pas trop difficile. J'ai mon superviseur de these sur le dos avec des resultats a montrer, la, donc j'ai pas trop le temps, mais je vais essayer de montrer l'apport du surechantillonage pour de la distortion, par exemple, d'ici la fin de semaine.

Quoiqu'en fait, je crois que tu parles du surechantillonage lors de la convertion... La, c'est pas facile du tout, car il faudrait pouvoir separer plusieurs modules a l'interieur du convertisseur. Si t'as un tres bon convertisseur, il pourra sonner mieux a 44.1 khz qu'un autre a 96 khz.

Citation :
Pour éviter cela, une technique classique est de sur-échantillonner, donc passer au moins à 88kHz, avec une interpolation (calculs des samples intermédiaires manquants), puis un filtrage qui peut être beaucoup plus doux et donc avoir un effet moins néfaste sur le signal analogique produit.



Attention, il me semble que DAC signifie seulement le sens numerique -> analogique (digital analog convertor); sinon, ca n'a pas trop de sens de parler de coefficiens de filtres; parler de coefficients sous entend filtre numerique, pour moi. L'ordre 11 de l'article veut dire que tu as un filtre recursif d'ordre 11, cad 11 coefficients, ce qui est deja assez consequent et donnent les problemes que j'ai dessine sur mon graph de filtre:



(attention, j'ai pris le premier exemple de filtre sous la main sous un logiciel de calcul tres utilise en signal pour le desgin de filtre; je pretends pas du tout que le filtre soit similaire en vrai; ce diagramme a pour seul but d'expliquer tous les defauts possibles d'un filtre).

Si on voit l'image en grand, on peut voir les differents trucs dont l'article parle:
- le phase shift veut dire que tu n'as plus de phase lineaire: on peut voir en effet qu'autour de la frequence de coupure (ici a 0.9 en frequence normalisee, c'est a dire la frequence de coupure en Hz divisee par la moitie de la frequence d'echantillonage, qui est la convention matlab, utilisee nulle par ailleurs, mais bon, c'est pas la place ici pour critiquer matlab), la reponse en phase (bas) fait n'importe quoi.
- le ripple: designer un filtre, c'est faire des compromis entre pente a la frequence de coupure, reponse en phase, etc... Le ripple dont l'article parle concerne le fait qu'un peu avant la frequence de coupure, le filtre va un peu "osciller (un peu comme le facteur Q dans un filtre musical classique, eg synthe). Sur le diagramme, on voit pas tres bien, mais avant la frequence de coupure, la reponse en frequence du filtre est pas tout a fait plate, c'est le ripple. Apres la frequence de coupure, dans la zone a -80 dB, le ripple est beaucoup plus visible: en general, on peut accepter beaucoup plus de ripple apres la frequence de coupure, car c'est dans la zone attenuee, et le signal ne nous interesse plus dans cette zone en general.

En la, il n'y a pas tous les problemes lies a la quantification des coefficients du filtre (sous matlab, le logiciel que j'ai utilise, on a des coefficients en 64 bits flottant, mais sur un lecteur CD, ca va etre du fixe, surement autour de 24 bits, et il y a plein de problemes dans les filtres recursifs, a cause des boucles de calcul).

Bref, c'est complique, de faire de bons filtres. La encore, comme dans le sens analo -> numerique, comme le probleme est le plus important autour de la frequence de coupure, l'astuce est de surechantillonner le signal pour rejeter la frequence de coupure loin du domaine audible (par exemple autour de 45 khz au lieu de 20 en passant de 44.1 a 96 khz), comme ca, les erreurs dues aux defauts du filtre sont loin du domain audible.