ELEN0019-1 : Traitement des signaux audio
Institut MontefioreUniversite de Liege
Belgique
15 fevrier 2013
ELEN0019-1 - Traitement des signaux audio 1
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
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
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
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
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
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
Filtre passe-bas fenetre
ELEN0019-1 - Traitement des signaux audio 8
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
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
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
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
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
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
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
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
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
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
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
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
Operations arithmetiques : ALU
ELEN0019-1 - Traitement des signaux audio 21
Operations arithmetiques : ALU
ELEN0019-1 - Traitement des signaux audio 22
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
AGU
ELEN0019-1 - Traitement des signaux audio 24
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
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
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
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
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
Organisation de la memoire
ELEN0019-1 - Traitement des signaux audio 30
Top Related