ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm...

30
ELEN0019-1 : Traitement des signaux audio Institut Montefiore Universit´ e de Li` ege Belgique 15 f´ evrier 2013 ELEN0019-1 - Traitement des signaux audio 1

Transcript of ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm...

Page 1: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

ELEN0019-1 : Traitement des signaux audio

Institut MontefioreUniversite de Liege

Belgique

15 fevrier 2013

ELEN0019-1 - Traitement des signaux audio 1

Page 2: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Informations

I Contact : [email protected]

I Page du cours :http ://www.montefiore.ulg.ac.be/˜josmalskyj/dsp.php

ELEN0019-1 - Traitement des signaux audio 2

Page 3: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 3

Page 4: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Filtres Windowed-Sync

Filtres utilises pour separer une bande de frequence d’une autre. Ils sonttres stables et performants, mais lents a executer si la longueur du filtreest trop importante.

I Filtre passe-bas :

hLPI [n] =sin(2πfcn)

I Filtre passe-haut :

hHPI [n] = −sin(2πfcn)

ELEN0019-1 - Traitement des signaux audio 4

Page 5: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Filtre passe-bas

Les reponses en frequence et impulsionnelle d’un filtre passe-bas ideal sontdonnees ci-dessous.

Filtre non realisable : non causal et de longueur infinie.

ELEN0019-1 - Traitement des signaux audio 5

Page 6: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Filtre passe-bas

Pour realiser le filtre en pratique, il faut le tronquer a M + 1 points et ledecaler de facon a avoir des indices positifs.

La reponse en frequence n’est pas ideale : beaucoup de “ripple”.

ELEN0019-1 - Traitement des signaux audio 6

Page 7: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Filtre passe-bas

Pour corriger la reponse en frequence, on fenetre le filtre par une fenetrede Blackman ou de Hamming.

I Fenetre de Blackman :

w [n] = 0.54− 0.46cos(2πn/M)

I Fenetre de Hamming :

w [n] = 0.42− 0.5cos(2πn/M) + 0.08cos(4πn/M)

ELEN0019-1 - Traitement des signaux audio 7

Page 8: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Filtre passe-bas fenetre

ELEN0019-1 - Traitement des signaux audio 8

Page 9: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Blackman vs Hamming

Le choix entre les fenetres depend de l’application : la fenetre de Hammingpermet une pente plus abrupte tandis que la fenetre de Blackman offre desondulations residuelles plus faibles.

ELEN0019-1 - Traitement des signaux audio 9

Page 10: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 10

Page 11: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Realisation du filtre

Le filtre requiert deux parametres :

I Frequence de coupure fc ∈ [0, 0.5] : Fraction de la frequenced’echantillonnage

I Longueur du filtre M : Conditionne la largeur de bande de transition

M w4

LB

LB est la largeur de la bande de transition, exprimee comme une fractionde la frequence d’echantillonnage : LB ∈ [0, 0.5]

ELEN0019-1 - Traitement des signaux audio 11

Page 12: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Realisation du filtre

Les expressions hLPI [n] et hHPI [n] presentent des singularites a l’origine.On a en realite

hLPI [n] = 2fc

hHPI [n] = 1− 2fc

ELEN0019-1 - Traitement des signaux audio 12

Page 13: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Realisation du filtre

L’expression finale du filtre tronque et fenetre est donnee ci-dessous.

h[n] =sin(2πfc(n −M/2))

n − M2

[0.42− 0.5cos(

2πn

M) + 0.08cos(

4πn

M)

]On retrouve dans cette expression l’equation du filtre passe-bas tronque etle fenetrage de Blackman.

ELEN0019-1 - Traitement des signaux audio 13

Page 14: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 14

Page 15: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Implementation dans Matlab

Exemple : Filtre passe-haut

I Frequence de coupure : fc = 10 kHz

I Largeur de la bande de transition : 40% de la bande totale

I Frequence d’echantillonnage : 48 kHz

ELEN0019-1 - Traitement des signaux audio 15

Page 16: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Implementation dans Matlab

I Determination de la longueur du filtre : M = 4/0.4 = 10. Le filtreaura M + 1 = 11 points.

I Reponse impulsionnelle sous Matlab (slide suivant).

I Fenetrer le signal en le multipliant par la fenetre adequate.

ELEN0019-1 - Traitement des signaux audio 16

Page 17: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Reponse impulsionnelle sous Matlab

n = [0 : 10];

h = -sin(2 * pi * 10000/48000 * (n-5)) ./ (pi * (n-5));

>> Warning: Divide by zero.

h(6) = 1 - 2 * (10000/48000);

f = [0:100:24000];

H = freqz(h,1,f,48000);

subplot(211); plot(n,h); title(’Reponse impulsionnelle’);

subplot(212); plot(f,abs(H)); title(’Reponse en frequence’);

ELEN0019-1 - Traitement des signaux audio 17

Page 18: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 18

Page 19: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Memoire du DSP

Le DSP est constitue de 3 zones memoires :

I Memoire P : Contient le code du programme et des interruptions.

I Memoires X et Y : Stockage des donnees. Les deux zones sontconnectees a un bus dedie, permettant au DSP d’executer la plupartdes operations en un cycle.

Il faut utiliser la memoire de facon optimale pour reduire le nombre decycles !

ELEN0019-1 - Traitement des signaux audio 19

Page 20: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Operations arithmetiques : ALU

La plupart des instructions utilisent un ou deux des registres x0, x1, y0, y1

en entree et le resultat est stocke dans un des accumulateurs a ou b. Deuxdeplacements memoire peuvent etre effectues en parallele avec lesoperations de l’ALU.

Ces operations memoire consistent en un deplacement memoire entre unregistre X/Y et un emplacement en memoire ou inversement.

ELEN0019-1 - Traitement des signaux audio 20

Page 21: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Operations arithmetiques : ALU

ELEN0019-1 - Traitement des signaux audio 21

Page 22: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Operations arithmetiques : ALU

ELEN0019-1 - Traitement des signaux audio 22

Page 23: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Modes d’adressage : AGU

AGU = Address Generation Unit. Il fournit divers modes d’adressagerequis par les algorithmes DSP :

I Adressage lineaire

I Adressage modulo pour buffers circulaires

I Adressage bit-reverse (FFT)

L’AGU permet un adressage direct ou indirect. Il est divise en deuxmoities, chacune ayant un ALU permettant des operations arithmetiquessur les adresse memoire (pre-incrementation, post-incrementation, etc.).Il y a au total 8 registres independants (R), 8 registres d’offset (N) et 8registres de modification (M) qui permettent de selectionner le moded’adressage.Lecture conseillee : Exemple 2 du Tutorial Motorola.

ELEN0019-1 - Traitement des signaux audio 23

Page 24: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

AGU

ELEN0019-1 - Traitement des signaux audio 24

Page 25: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 25

Page 26: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Compilation et execution

Le code source est ecrit en langage assembleur. Le code est ensuitecompile a l’aide du compilateur asm56300 fourni par Motorola. Lacommande de compilation est la suivante :

asm56300 -a -l -b code.asm

Elle produit en sortie un fichier CLD qui peut etre execute par le DSP.

Tout programme peut etre ecrit a partir du code modele fourni : pass.asm.

ELEN0019-1 - Traitement des signaux audio 26

Page 27: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Pass.asm

Ce code modele contient 5 dependances qu’il est necessaire d’inclure pourexecuter votre code.

Les echantillons de gauche et de droite sont receptionnes dans lesaccumulateurs a et b. Apres traitement, il faut renvoyer les echantillons desortie dans ces deux accumulateurs.

ELEN0019-1 - Traitement des signaux audio 27

Page 28: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Outline

1 Filtres Windowed-Sync : Theorie

2 Design du filtre

3 Realisation dans Matlab

4 Architecture DSP : Rappels

5 Programme standard

6 Realisation du filtre Windowed-Sync sur DSP

ELEN0019-1 - Traitement des signaux audio 28

Page 29: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Implementation sur DSP

Realisation d’un filtre passe-haut de frequence centrale fc = 10 kHz.Il faut recuperer les coefficients du filtre calcules par Matlab (voir slidesprecedents).Les coefficients doivent etre codes directement dans le code source ASMdu filtre. Ils doivent etre places dans une zone memoire specifique pouretre accessibles lors de l’operation de convolution.Le programme qui implemente le filtre applique la formule de laconvolution :

y [n] =N∑

k=0

h [k] x [n − k]

ou h correspond a la reponse impulsionnelle, donc aux coefficients obtenusdans Matlab.

ELEN0019-1 - Traitement des signaux audio 29

Page 30: ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm Ce code mod ele contient 5 d ependances qu’il est n ecessaire d’inclure pour

Organisation de la memoire

ELEN0019-1 - Traitement des signaux audio 30