ELEN0019-1 : Traitement des signaux audio · ELEN0019-1 - Traitement des signaux audio 26. Pass.asm...
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/1.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/2.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/3.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/4.jpg)
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)
nπ
I Filtre passe-haut :
hHPI [n] = −sin(2πfcn)
nπ
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/5.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/6.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/7.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/8.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/9.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/10.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/12.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/13.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/15.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/17.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/20.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/24.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/25.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/26.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/28.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/29.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051606/601eb1a62c122f7f3152f1b3/html5/thumbnails/30.jpg)
Organisation de la memoire
ELEN0019-1 - Traitement des signaux audio 30