1 / 16

Cours 5 – Comment bien échantillonner le signal audio

Jean-Paul Stromboni, durée 1heure, amphi est, octobre 2008, avec vidéo projecteur et son. Après ce cours, vous devriez savoir :. Cours 5 – Comment bien échantillonner le signal audio. Décrire le problème posé par l'échantillonnage d'un signal.

velvet
Download Presentation

Cours 5 – Comment bien échantillonner le signal audio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jean-Paul Stromboni, durée 1heure, amphi est, octobre 2008, avec vidéo projecteur et son Après ce cours, vous devriez savoir : Cours 5 – Comment bien échantillonner le signal audio Décrire le problème posé par l'échantillonnage d'un signal. Expliquer la notion d'alias et le phénomène d'aliasing Prédire les recouvrements du spectre Établir la condition et la formule de Shannon Vérifier la condition de Shannon sur des signaux simples En travaux dirigés n°5, avec MATLAB et Goldwave, on expérimentera : • l'échantillonnage d'une note pure, et la contrainte de Shannon • le sous échantillonnage (ou décimation) et le sur échantillonnage

  2. À quelle condition peut-on reconstituer en totalité un signal audio s(t) à partir des seuls échantillons s(nTe) prélevés ? • On note S(f)=TF(s(t)), le spectre du signal s(t), et on appellera dans la suite S(f-a) l'alias de S(f) décalé en a. • Pour répondre à la question, on utilise le signal dit "signal échantillonné" et noté traditionnellement s*(t) : * la fonction Peigne a été définie dans le cours de la semaine 4 et on a donné sa transformée de Fourier • Le calcul du spectre de s*(t) sur la page suivante fait apparaître une relation avec le spectre S(f) de s(t). On obtient une somme d'alias de S(f) décalés autour des multiples entiers de la fréquence d'échantillonnage :

  3. Le spectre de s*(t) est la somme des alias de S(f) autour des multiples entiers de la fréquence d'échantillonnage : • Le calcul du spectre de s*(t) utilise plusieurs résultats tirés de cours sur la transformée de Fourier et le spectre : • La transformée de Fourier du produit est le produit de convolution * • La transformée d'un peigne temporel est un peigne fréquentiel, • Le produit de convolution de S(f) par d(f-a) décale S(f), soit S(f-a)

  4. alias fe Il faut donc distinguer deux cas pour le spectre de s*(t) 1er cas : Il n'y a pas de recouvrements des alias 2ème cas : Il y a des recouvrements, les alias "se mélangent" Quelle est la condition de non recouvrement ?

  5. S'il n'y a pas de recouvrements, il suffit de récupérer S(f) pour reconstituer s(t), par transformée de Fourier inverse de S(f). • S'il n'y a pas de recouvrements, le spectre TF[s*(t)] contient S(f)/Te entre -fe/2 et fe/2, c'est l'alias central en f=0Hz : • Pour retrouver S(f), il suffit de supprimer du spectre de s*(t) les alias hors de l'intervalle [-fe/2, fe/2] et de multiplier par Te l'alias central. • C'est la fonction d'un filtre dont l'effet en fonction de la fréquence est représenté ci-dessous graphiquement et donné par une expression mathématique: filtre reconstructeur de Shannon

  6. On sait donc calculer s(t) fonction des s(nTe), en l'absence de recouvrements du spectre de s*(t), c'est la formule de Shannon • On applique le filtre de Shannon au signal s*(t) • On calcule s(t) par transformée de Fourier inverse • D'où la formule de Shannon :

  7. En résumé, bien échantillonner un signal audio … • Signifie : être capable de reconstituer le signal s(t) entièrement à partir des seuls échantillons s(nTe) • Implique de respecter la condition de Shannon, il ne doit pas y avoir de recouvrements du spectre du "signal échantillonné" s*(t) associé à s(t). • On remarque : • Pour reconstituer le signal s(t), on utilise la formule de Shannon. • La formule de Shannon exprime que s(t) est obtenue par filtrage de s*(t) avec le filtre reconstructeur de Shannon. • La condition de Shannon s'exprime généralement pour les signaux à bande limitée par : fe>2fMax • Si fMax est trop grand, ou infini, on applique un filtre anti-aliasing ou 'prefilter' pour limiter la largeur du spectre à fe/2

  8. On peut illustrer l’aliasing ou démultiplication du spectre sur le cas particulièrement simple d’un signal s1(t) sinusoïdal

  9. Reprendre pour s2(t) ci-dessous et donner le spectre de s2*(t)

  10. Retrouver le spectre de s2(t) avec le filtre de Shannon

  11. Peut-on reconstruire s3(t) ci-dessous ? Pourquoi ?

  12. Mise en œuvre de la formule de Shannon avec Matlab % script Shannon.m N=32; %nombre d'échantillons non nuls fe=8000; t=[0:63]/fe; %vecteur temps s=0.5*cos(880*pi*t); fenetre=zeros(size(t)); fenetre(1:N)=1; s=s.*fenetre%signal x=zeros(size(t)); for j=0:N-1 x=x+s(j+1)*sinc((t-j/fe)*fe); end subplot(2,1,1) stem(t,s) title('Mise en oeuvre de la formule de Shannon') xlabel('temps (s)') ylabel('échantillons') grid subplot(2,1,2) plot(t,x) xlabel('temps (s)') grid ylabel('signal reconstitué')

  13. s(nTe) t Sous échantillonner (ou décimer) un signal audio numérique consiste à supprimer des échantillons On décime un signal x(n) dans un rapport M en conservant un échantillon sur M. Le signal décimé y est défini comme : Sur l'exemple ci-contre M=2, les échantillons conservés sont en noir. Tout se passe comme si on avait divisé la fréquence d'échantillonnage par 2 La décimation provoque une division par M de la fréquence d’échantillonnage Par conséquent, décimer peut provoquer des recouvrements du spectre, en particulier si

  14. Sous échantillonner a un effet sur le spectre Puisque conserver un échantillon sur M revient à diviser par M la fréquence d’échantillonnage fe devient : Il y a M fois plus d’alias et ils sont divisés par M Avec MATLAB, pour décimer le vecteur sig dans un facteur M: >> sdecime = s(1:M:length(sig))

  15. Sur-échantillonner multiplie la fréquence d'échantillonnage Pour sur-échantillonner un signal x(n) dans un rapport M, on insère M-1 échantillons nuls entre deux échantillons de x : Avec MATLAB, pour sur échantillonner le vecteur x, on fait : xM = zeros(1, M*length(x)); xM(1:M:M*length(x)) = x;

  16.  Pour vous tester par vous-même 

More Related