rapport dsp
TRANSCRIPT
ECOLE NATIONALE DES SCIENCES APPLIQUEED DE KHOURIBGA
3émé Année cycle ingénieur
RAPPORT DU TP Année 2013-2014
Réalisé par : Sliman ENNAIRY; ATIFI Rajae; AGOUTI Issam; MANAR Rabia
Encadré par :
Pr. I.LAGRET
1 Introduction
1.1 Generalites
L’ensemble C6713 DSK (Development System Kit) est un outil de developpement qui permet a des uti-
lisateurs de mettre au point et de tester des applications utilisant le processeur de traitement de signal Texas
Instruments (TI) TMS320C6713. Autour de ce DSP sont connectes une grande variete de peripheriques per-
mettant une large gamme d’applications en traitement numerique du signal. Ainsi, la configuration realisee est
une reference qui, dans beaucoup de cas standards, peut eviter le temps de developpement du ≪ hardware ≫.
1.2 La carte DSK 6713
FIGURE 1 – La carte DSK 6713
TMS320C6713 : DSP de la gamme TI travaillant a 225 MHz. Il est connecte a ses peripheriques par un bus
de 32 bits.
CODEC AIC23 : dedie a l’interfacage pour les applications ≪ audio ≫. Il comprend les convertisseurs CAN
pour la capture de signaux (LINE IN, MIC IN) et les convertisseurs CNA pour l’exportation de signaux
(LINE OUT, HP OUT).
Une CPLD : composant de logique programmable qui contient entre autre la logique de connexion des divers
composants entre eux. Elle contient aussi des registres accessibles a l’utilisateur permettant de configurer
la carte ou d’acceder a la configuration en place.
Une SDRAM synchrone de 8 Mega-octets.
Une memoire Flash de 512 Kilo-octets.
4 LEDs et 4 interrupteurs (DIP) : accessibles par les registres de la CPLD et permettant un dialogue simple
entre la carte et l’utilisateur.
Des options d’initialisation configurables (SW3).
Une possibilite d’extension standard vers une autre carte (Peripheral Expand).
Une emulation JTAG : autorisant le dialogue avec un hote exterieur via une connexion USB.
Une seule alimentation est requise en +5V.
1
1.3 Le logiciel : Code composer studio (CCs)
Fourni avec le kit de developpement, le CCS contient tous les outils logiciels necessaires pour la realisation
d’applications avec la carte precedente. Le coeur de ce systeme est un IDE (Integrated Development Environ-
ment) qui permet de travailler sur l’ordinateur hote a partir d’une seule fenetre d’application. Les utilitaires sont
ainsi accessibles par menus deroulants et boıtes de dialogue. Cela comprend :
• La configuration de CCS.
• L’edition de programmes d’application en C ou C++.
• La generation de code (compilation, edition des liens, assembleur).
• La visualisation et (ou) modification du code assembleur. Ceci permet une optimisation du code.
• Chargement de l’application dans la memoire de la carte cible.
• Une aide au developpement autour d’un noyau temps reel.
CCS est un environnement IDE qui incorpore les outils logiciel necessaires au developpement. Il inclut les
outils pour la generation du code tel qu’un compilateur C, un assembleur et un linker. Il support le ≪ debugging
≫ temps reel. Le processus (simplifie) permettant d’aboutir a un fichier executable a partir d’un programme
ecrit en langage C, est le suivant :
FIGURE 2 – Les etapes de generation d’un code sous CCS
1.4 Types de fichiers et Extensions
On vas travailler avec plusieurs fichiers avec des extensions differentes :
Fichier.pjt : pour creer et construire un projet nommes Fichier
Fichier.c : programme source en langage C.
Fichier.asm : programme source assemble cree par l’utilisateur, par le compilateur C ou par l’optimiseur
lineaire (linear optimizer).
Fichier.sa : programme source de l’assembleur lineaire. L’optimiseur lineaire peut produire a partir de ce
fichier un programme assemble Fichier.asm.
2
Fichier.h : fichier de support (d’entete).
Fichier.lib : fichier bibliotheque.
Fichier.cmd : fichier de commande du Linker (mappage des sections vers la memoire).
Fichier.obj : fichier objet cree par l’assembleur.
Fichier.out : fichier executable cree par le linker devant etre charge et execute par le processeur C6713.
Fichier.cdb : fichier de configuration quand le DSP/BIOS est utilise.
1.5 Connexion de la carte DSK
Pour connecter la carte DSK au PC on suit les etapes suivantes :
1. On Connecte le cable USB au PC (une extremite du cable seulement) ;
2. On Branche, s’il y a lieu, les connexions audio (microphone, haut parleur,. . . ). La tension a l’entree audio
ne doit en aucune maniere depasser 2 Volts crete a crete (2Vpp) ;
3. On Connecte l’adaptateur a la prise murale ;
4. On Connecte l’adaptateur a la carte DSK, et attendez le cycle des diodes 10-15 secondes. En fin de cycle
deux diodes restent allumees ;
5. On Connecte l’extremite restante du cable USB a la carte DSK ;
6. On Laisse Windows trouver les drivers USB (automatique dans XP.
1.6 Test de la connexion
Pour tester la connexion de la carte on suit les etapes suivantes :
1. Double cliquez sur l’icone 6713 Diagnostic ;
2. Appuyez sur ≪ Start ≫ et attendez les feus verts ;
3. Appuyez sur ≪ Stop ≫ et quittez (fermez la fenetre).
2 Filtres a Reponse Impulsionnelle Finie – FIR –
2.1 Implementation d’un filtre FIR coupe bande
Les echantillons a la sortie ≪ y(k) ≫ d’un filtre FIR se calculs en fonction de l’entree ≪ x(k) ≫ par la
formule suivante :
y(n) =k=0∑
N−1
h(k)x(n− k)
Les coefficients h(k) determinent la nature et le type du filtre.
Notre objectif est d’implementer un filtre FIR coupe bande, avec la frequence ‘coupee’ fixee a 2700Hz. Le
schema suivant resume l’objectif de notre TP.
3
FIGURE 3 –
Le listing ci-dessous est un programme matlab qui permet de :
• Lire le fichier audio voixenfant.wav
• Generer un son (bruit) de frequence fixe 2700Hz
• Melanger les deux sons
• Faire l’analyse spectrale du fichier audiovoixenfant.wav , avant et apres l’ajout du bruit ;
FIGURE 5 –
4
FIGURE 4 –
2.2 Conception d’un filtre FIR avec Matlab – determination des coefficients h(n) du filtre
La conception de notre filtre coupe-bande doit commencer par la determination des coefficients h(k). Matlab
dispose de deux outils destines a la conception de filtres numeriques SPTool et FDATool, nous utiliserons dans
ce TP l’outil FDATool. Le schema suivant represente le gabarit desire pour notre filtre avec :
• Fpass1 = 2500Hz
• Fstop1 = Fstop2 = 2700Hz
• Fpass2 = 2900Hz
• Apass1 = Apass2 = 0,5 dB
• Astop = 40 dB
5
FIGURE 6 –
Pour generer le filtre on suivie les etapes suivantes :
1. on Lance l’outil FDATool dans Matlab ;
2. on Selectionne la configuration suivante des choix et parametres :
a) Response Type : ≪ Bandstop ≫
b) Design Method : ≪ FIR ≫ et ≪ Window ≫
c) Filter Order : ≪ Minimum order ≫
d) Options :
i. ≪ Scale Passband ≫ : cochee
ii. Window : ≪ Kaiser ≫
e) Frequency Specifications :
• ]Units : Hz
• Fs : 8000
• Fpass1 : 2500
• Fstop1 : 2700
• Fstop2 : 2700
• Fpass2 : 2900
f) Magnitude Specifications :
• Units : dB
• Apass1 : 0.5
• Astop : 40
• Apass2 : 0.5
6
FIGURE 8 –
4. Le champ ≪ Current Filter Information ≫, nous donne des informations sur le filtre genere, ordre et sta-
bilite.on obtiens un filtre d’ordre 91
Les coefficients sont donc disponibles (pour un copier coller), mais ne sont pas utilisables directement
puisqu’ils sont en virgule flottante (avec ce format, le calcul est plus precis au detriment du temps de
calcul qui peut etre eleve). Il est necessaire de transformer le format des coefficients en ≪ entiers-signes
≫.
(a) On vas dans le menu ≪ Target ≫ et selectionnez ≪ Generate C Header . . . ≫
(b) On Selectionne les choix suivants :
a. Numerator : h
b. Numerator length : N
c. Export as : cochee : Signed 16-bit integer
(c) Cliquez sur ≪ Generate ≫
Les coefficients sont enregistres dans le fichier ≪ fdacoefs.h ≫ par defaut. Nous voulons plutot
mettre ces donnees dans un fichier de terminaisons ≪ .cof ≫.
(d) Changez le nom et l’extension du fichier : ≪ fdacoefs.h→ fdacoefs2700.cof ≫
(e) Ouvrez le fichier ≪ fdacoefs.cof ≫ dans un editeur de text
a Enlever tous les commentaires
b Enlever la ligne : include tmwtypes.h
c Remplacez les deux lignes :
c o n s t i n t N = 91 ;
8
c o n s t i n t 1 6 T h [ 9 1 ] = {
Par :
# d e f i n e N 91 ;
S h o r t h [ 9 1 ] = {
Le fichier ≪ fdacoefs.cof ≫ est pret a etre incorpore dans le projet d’implementation du filtre dans
la DSK6713.
2.3 Implementation du filtre FIR coupe bande dans la DSK6713
Ayant les coefficients de notre filtre il faut calculer les termes :
y(n) =k=0∑
N−1
h(k)x(n− k)
Ou x(k) representent les echantillons a l’entree du filtre et y(n) sa sortie. Le programme en C suivant permet de
faire ce calcul. Il utilise le mode interruptions deja vu.
FIGURE 9 –
9
FIGURE 10 –
ON Cree un nouveau projet en incluant les fichiers suivants :
– Fir.c
– c6713dskinit.c
– V ectorsintr.asm
– C6713dsk.cmd
– csl6713.lib
– dsk6713bsl.lib
– rts6700.lib
1. Compilez votre projet
2. Appliquez a l’entree de la DSK (Line IN) un signal sinusoıdal d’amplitude 0.1V
3. Visualisez a l’oscilloscope l’entree du GBF et la sortie de la DSK (Line OUT)
4. Modifiez la frequence de l’entree dans la plage suivante f = [100Hz ,4000Hz] et notez ce qui se passe
pour la frequence particuliere de 2700Hz.
5. Test du filtrage du fichier bruite≪ voixenfant.wav ≫
a Reliez l’entree (Line IN) de la DSK a la sortie audio du PC (sortie de la carte son du PC)
b Reliez la sortie (HEADPHONE) de la DSK aux hauts parleurs ou au casque mis a votre disposition
c Tapez dans matlab la commande : (le fichier matlab ≪ voixplusbuit.m ≫ayant ete execute aupara-
vant)
>> wavplay(z, Fs)
d Verifiez que a la sortie de la DSK le signal sonore correspondant a la sinusoıde de 2700Hz a disparu
et que le filtre fonctionne donc correctement.
10