Vous êtes sur la page 1sur 23

Département de génie électrique (DGE)

Filière Ingénieur
Systèmes Intelligents, Communicants et Mobiles
(SICoM)

Travaux pratiques
Processeurs de traitement numérique
du signal (DSP)

Auteur :
Pr. Hicham GHENNIOUI
A.U. 2018-2019
Page 2/23

A.U. 2018-20119
Page 3/23

SOMMAIRE

OBJET ...................................................................................................................... 4
DOCUMENTS DE REFERENCE .......................................................................... 5
GLOSSAIRE ET ABREVIATIONS ....................................................................... 5
1. TP 1 – INTERFACAGE AVEC LE MONDE REEL ....................................... 7

1.1 OBJECTIFS DE L’ACTIVITE .................................................................................................7


1.2 EQUIPEMENTS DU TRAVAIL ................................................................................................ 7
1.3 FONCTIONNEMENT DES LEDS ............................................................................................ 7
1.3.1 Ouverture du projet ‘led’ déjà existant ................................................................................................ 8
1.3.1 Exercice : Allumer les LEDs les unes à la suite des autres .................................................................. 8
1.4 FONCTIONNEMENT DU CODEC AIC23 ............................................................................. 9

2. TP 2 – IMPLEMENTATION DE LA MODULATION D’AMPLITUDE .... 12

2.1 OBJECTIFS DE L’ACTIVITE ............................................................................................... 12


2.2 EQUIPEMENTS DU TRAVAIL .............................................................................................. 12
2.3 RAPPELS THEORIQUES ..................................................................................................... 12
2.3.1 modulation d’amplitude double bande latérale sans porteuse ............................................................. 12
2.3.2 modulation d’amplitude double bande latérale avec porteuse ............................................................. 13
2.4 PARTIE PRATIQUE ............................................................................................................ 14

3. TP 3 – IMPLEMENTATION D’UN FILTRE NUMERIQUE....................... 17

3.1 OBJECTIFS DE L’ACTIVITE ............................................................................................... 17


3.2 EQUIPEMENTS DU TRAVAIL .............................................................................................. 17
3.3 RAPPELS THEORIQUES SUR LE FILTRE A REPONSE IMPULSIONNELLE FINIE ..................... 17
3.3.1 Filtre à réponse impulsionnelle finie .................................................................................................. 17
3.3.1 Fichiers support ................................................................................................................................. 18
3.4 PARTIE PRATIQUE ............................................................................................................ 18
3.4.1 Exemple 1 : sinusoïde......................................................................................................................... 18
3.4.2 Filtre passe tout .................................................................................................................................. 20
3.4.3 Filtre numérique ................................................................................................................................ 21

A.U. 2018-20119
Page 4/23

OBJET

Ce document concerne les travaux pratiques du cours Processeurs de traitement numérique du


signal (DSP pour Digital Signal Processor) de la Filière Ingénieur Systèmes Intelligents,
Communicants et Mobiles (F.I. SICoM) au sein de la Faculté des Sciences et Techniques de Fès
(FSTF).

Les activités pratiques sont basées sur l’utilisation des équipements et des composants suivants,

- Un Kit de développement (disponible à la FST de Fès) DSK (DSP Starter Kit), développé
par TI (Texas Instruments) et conjointement avec Spectrum Digital, est une plate-forme de
développement "Low-Cost" constituée de,

o Une carte DSK : C6416 ou C6713, intégrant le processeur de traitement de signal


(DSP) TEXAS TMS320C6713 ou TMS320C6416 pouvant être reliée à un PC via
une liaison USB.

o Un environnement de développement intégré (IDE) C6416 ou C6713 DSK Code


Composer Studio™ IDE (Integrated Development Environment).

o Un câble USB.

o Un câble d’alimentation +5V (Universal Power Supply).

o Une référence technique DSK TMS320C6416.

- un oscilloscope numérique GDS-800 Series de la société GwInstek


(http://www.gwinstek.com/),

- et un Générateur Basse Fréquence (GBF).

Des documentations de ces équipements sont disponibles en salle de TP et peuvent être consultées à
chaque moment.

Ces activités traitent en particulier,

- la manipulation du switch DIP et les LEDs de la carte DSK,

- l’implémentation de la modulation analogique linéaire d’amplitude (AM pour Analogue


Modulation),

- et une dernière activité pratique consiste à mettre en œuvre un filtre numérique.

Pour en tirer un bon profit de ces séances de travaux pratiques, il est conseillé de préparer
théoriquement tous les travaux avant l’arrivé en salle de TP.

A.U. 2018-20119
Page 5/23

DOCUMENTS DE REFERENCE

Intitulé Référence

1. DataSheet de la carte DSK et ses composants Texas instruments (www.ti.com)

2. DataSheet de l’oscilloscope GDS-800 Series Gw Instek

4. Cours Processeurs de traitement numérique du signal (DSP) H. Ghennioui, F.I. SICoM, FST-Fès, A.U.
2018-2019

GLOSSAIRE ET ABREVIATIONS

Terme Définition

AM Analog Modulation
BP Bande Passante
BSL Board Support Library
CCS Code Composer Studio
CSL Chip Support Library
Codec Codage-Décodage
DIP Dual In-line Package
DSB Double Side Band
DSK DSP Starter Kit
DSP Digital Signal Processor
FFT Fast Fourier Transform
GBF Générateur Basse Fréquence
GEL General Extension Language
LED Light-Emitting Diode
MA Modulation d’Amplitude
MIC Modulation par Impulsions et Codage
RAM Random Access Memory
RIF Réponse Impulsionnelle Finie
ROM Read-Only Memory
TC Transmitted Carrier
TP Travaux Pratiques
SDRAM Synchronous Dynamic Random Access Memory
SRAM Static Random Access Memory

A.U. 2018-20119
Page 6/23

Travail pratique n° 1
- Interfaçage avec le monde réel -

A.U. 2018-20119
Page 7/23

1. TP 1 – INTERFACAGE AVEC LE MONDE REEL

1.1 OBJECTIFS DE L’ACTIVITE

- Vérifier le fonctionnement des LEDs.

- Vérifier le fonctionnement du Codec AIC23.

- Se familiariser avec le langage d'extension général GEL (General Extension Language).

1.2 EQUIPEMENTS DU TRAVAIL

- Ordinateur personnel.

- Oscilloscope.

- Kit de développement DSK (DSP Starter Kit).

1.3 FONCTIONNEMENT DES LEDS

Les fonctions du switch DIP et LED sont fournies dans ‘‘dsk6713bsl.lib’’. Le tableau suivant
présente les principales fonctions pour manipuler le switch DIP et les LEDs,

Fonction Description

DSK6713_DIP_init() Initialise un switch DIP

DSK6713_LED_init() Initialise un LED

DSK6713_DIP_get(n) Lire l’état du switch n

DSK6713_LED_on(n) Allumer le LED n

DSK6713_LED_off(n) Eteindre le LED n

DSK6713_LED_toggle(n) Changer l’état du LED n

DSK6713_waitusec(tps) Tourner dans un délai de logiciel pour environ tps s

Tableau 1.1 – Fonctions principales prédéfinies dédiées au DIP et aux LEDS.


Avec n =0,1, 2 ou 3
Pour plus du détail, il faut se référer au document disponible en tapant au chemin
C:\CCStudio_v3.1\docs\hlp\c6713dsk.hlp
- Il y a trois LED permettant de fournir à l'utilisateur des indications sur la procédure de test

A.U. 2018-20119
Page 8/23
- Le programme de test (stocké dans la mémoire FLASH, le code disponible sur le CD-
ROM de DSK) fonctionne à chaque fois que DSK est sous tension et réinitialisé.
Le tableau 1.2 résume les différents états des LEDS,

Tableau 1.2 – Description des états des LEDs.

1.3.1 OUVERTURE DU PROJET ‘LED’ DEJA EXISTANT

Suivre les étapes suivantes,


- Cliquer sur ‘‘ Project->Open’’  une interface s’ouvre.
- Sélectionner ‘‘CCStudio_v3.1\examlpes\dsk6713\bsl\led\led.pjt ’’

Figure 1.1 – Ouverture du projet « led.pjt ».


1. Compiler le projet (‘‘ Project->Build’’ ou appuyer sur F7).
2. Charger le projet sur le DSP (‘‘File->Load Program…’’ ou appuyer sur Ctrl+L).
3. Exécuter le projet sur le DSP (‘‘Debug->Run’’ ou appuyer sur F5).

1.3.1 EXERCICE : ALLUMER LES LEDS LES UNES A LA SUITE DES AUTRES

4. Ecrire un programme qui fait allumer et éteindre les quatre LEDs les unes à la suite des autres de
manière permanente.

A.U. 2018-20119
Page 9/23

1.4 FONCTIONNEMENT DU CODEC AIC23

Le codec AIC23 est stéréo permettant d’acquérir les signaux analogiques reçus sur l’entrée de la
carte (line in) afin de les convertir en données numériques utilisables par le DSP. Il permet
également de retranscrire les données numériques en signaux analogiques afin de pouvoir par
exemple les visualiser à l’oscilloscope.
Le fichier “dsk6713.h” doit être rajouté dans tout programme utilisant la librairie BSL. Les
fonctions du codec AIC32 sont fournies dans le fichier header “dsk6713_aic23.h”.
La description des principales fonctions prédéfinies pour manipuler le codec AIC23 est donnée dans
le tableau suivant,

Fonction Description

hCodec = DSK6713_AIC23 openCodec ( 0 , &c Démarrer le codec


onfig)
Config est un tableau contenant les paramètres
de configuration du codec

DSK6713 AIC23 closeCodec ( hCodec) Fermer le codec

DSK6713_AIC23_write(hcodec,sample) Envoyer sample au canal droit ou gauche du


codec

DSK6713_AIC23_read(hCodec, &data) Lire une valeur signée de 32 bits à partir du


Cette fonction requiert la libraire port de données de codec
“dsk6713bsl.lib”

Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; Fréquence d’échantillonnage est de 8 kHz

DSK6713_AIC23_setFreq(hCodec,DSK6713_ Configuration de fs
AIC23_FREQ_48KHZ)

Tableau 1.3 – Description des fonctions prédéfinies liées au codec AIC23.


Le codec AIC23 possède les caractéristiques suivantes,
- Le Codec AIC23 accepte des entrées de 6 Volt crête à crête
- Il supporte les fréquences d’échantillonnage : 8, 16, 24, 32, 44.1, 48 et 96 kHz
- Taille des données : 16, 20, 24 et 32 bits
La configuration et création du « codec handle » est la suivante,

A.U. 2018-20119
Page 10/23

Les trois étapes nécessaires pour faire fonctionner le codec AIC23 sont,
- Initialiser, ouvrir et modifier la fréquence d’échantillonnage
 DSK6713_init();
 hCodec = DSK6713_AIC23 openCodec ( 0 , &c o n f i g );
 DSK6713_AIC23_setFreq(hCodec,DSK6713_AIC23_FREQ_8KHZ);
- Lire et écrire les données en utilisant le polling
 while(! DSK6713_AIC23_read(hcodec,&1x)); Codec stéréo
 while(! DSK6713_AIC23_read(hcodec,&2x)); 2 canaux

 while(! DSK6713_AIC23_write(hcodec,y1));
 while(! DSK6713_AIC23_write(hcodec,y1));
- Fermer le Codec
 DSK6713 AIC23 closeCodec ( hCodec) ;
Ouvrir le projet « tone.pjt » : CCStudio_v3.1\examples\dsk6713\bsl, charger ensuite le fichier .out
du projet dans la cible DSP
1. Afficher une période de la sinusoïde dans le domaine temporel (faire attention le type de
données).
2. Quelles sont les valeurs maximales et minimales de la sinusoïde considérée ?
3. Afficher le spectre d’amplitude de la sinusoïde (dans la boite de propriétés de graphe,
sélectionner « FFT magnitude » comme valeur de la propriété « Display Type »)
4. Utiliser un oscilloscope pour afficher la sinusoïde ou bien un haut-parleur pour écouter la
fréquence
5. Générer maintenant la sinusoïde à l’aide de la fonction sin (insérer le fichier header «
math.h ») et refaire les questions précédentes
6. Générer maintenant une sinusoïde à 2 kHz et refaire les questions.

A.U. 2018-20119
Page 11/23

Travail pratique n° 2
- Implémentation de la
modulation d’amplitude -

A.U. 2018-20119
Page 12/23

2. TP 2 – IMPLEMENTATION DE LA MODULATION D’AMPLITUDE

2.1 OBJECTIFS DE L’ACTIVITE

- Implémenter la modulation d’amplitude.

- Utiliser un GBF pour fournir un signal sinusoïdal à la carte DSK

- Utiliser l’outil graphique du Code Composer Studio.

- Afficher la sortie de la carte sur un oscilloscope.

2.2 EQUIPEMENTS DU TRAVAIL

- Ordinateur personnel.

- Générateur Basse Fréquence (GBF).

- Oscilloscope.

- Kit de développement DSK (DSP Starter Kit).

2.3 RAPPELS THEORIQUES

2.3.1 MODULATION D’AMPLITUDE DOUBLE BANDE LATERALE SANS PORTEUSE

Le principe de la modulation d’amplitude double bande latérale sans porteuse est schématisé au
niveau de la figure suivante,

Figure 2.1 - Schéma à bloc fonctionnel de la modulation d’amplitude double bande latérale
sans porteuse.

Le signal modulé s’exprime de la façon suivante,

m(t )  ksm (t )sc (t )  kAc sm (t ) cos(2 f ct  c ), Eq. 2.1

où k est une constante représentant le facteur multiplicatif caractérisant le multiplieur (sensibilité du


multiplieur), Ac, fc et c sont respectivement l’amplitude, la fréquence et la phase de la porteuse.

A.U. 2018-20119
Page 13/23
La transformée de Fourier du signal modulé est le suivant,

kAc Eq. 2.2


Mf   S m  f  f c   S m  f  f c   .
2 

Exemple : modulation d’amplitude sans porteuse d’une sinusoïde

On considère le signal sinusoïdal d’amplitude 1 volt et de période 1 seconde. L’amplitude, la


fréquence et la phase de la porteuse sont respectivement Ac =10 volts, fc =20 hertz et c =0 radian
et le facteur multiplicatif caractérisant le multiplieur k=1.

Le signal modulant, la porteuse et le signal modulé sont représentés à gauche et leurs spectres
d’amplitude à droite de la figure 2.2.

Figure 2.2 - Modulation d’amplitude double bande latérale sans porteuse d’un signal
sinusoïdal.

On constate que,

- le spectre du signal modulé reproduit celui du signal modulant mais décalé de +fc pour f>0 et
de –fc pour f<0.

- Pour fc, la bande latérale supérieure est celle située au-delà de fc et la bande latérale
inférieure en dessous de fc.

- La modulation d’amplitude sans porteuse réalise une transposition de fréquence autour de fc.

2.3.2 MODULATION D’AMPLITUDE DOUBLE BANDE LATERALE AVEC PORTEUSE

Le principe de la modulation d’amplitude double bande latérale avec porteuse est schématisé au
niveau de la figure suivante,

A.U. 2018-20119
Page 14/23

Figure 2.3 - Schéma à bloc fonctionnel de la modulation d’amplitude double bande latérale
avec porteuse

Le signal modulé s’exprime de la façon suivante,

m(t )  Ac 1   em (t )  cos(2 fct  c ), Eq. 2.3

où sm (t )  Amem (t ) , Am est la valeur maximale de sm (t ) et   kAm est appelé taux (ou indice) de modulation.

La transformée de Fourier du signal modulé est le suivant,


Ac  Ac
Mf    f  f c     f  f c     Em  f  f c   Em  f  f c   .
2  2  Eq. 2.4

Exemple : modulation d’amplitude avec porteuse d’une sinusoïde

On considère le signal sinusoïdal d’amplitude 1 volt et de période 1 seconde. L’amplitude, la


fréquence et la phase de la porteuse sont respectivement Ac =5 volt, fc =20 hertz et c =0 radian et
le facteur multiplicatif caractérisant le multiplieur k=.5 (=50%).

Le signal modulant, la porteuse et le signal modulé sont représentés à gauche et leurs spectres
d’amplitude à droite de la figure 2.4.

Figure 2.4 - Modulation d’amplitude double bande latérale avec porteuse d’un signal
sinusoïdal.

On constate que le spectre du signal modulé a une allure identique à celle de la modulation
d’amplitude sans porteuse mais 2 raies apparaissent à fc.

2.4 PARTIE PRATIQUE


A.U. 2018-20119
Page 15/23
Suivez les étapes ci-dessous pour effectuer l'expérience:

1. Ouvrir le projet « tone.pjt » et modifier le programme pour générer deux sinusoïdes : une de
fréquence 400 Hz et l’autre de 2 kHz (porteuse).

2. Ecrire ensuite le programme du signal modulé.

3. Afficher les trois signaux en utilisant « graph » de Code Composer Studio.

4. Rajouter le « Silder Gel » pour pouvoir changer le taux de modulation.

5. Faire sortir maintenant les trois signaux sur la sortie « Line » et utiliser les switchs DIP 0, 1
et 2 pour afficher respectivement sur un oscilloscope le signal modulant, la porteuse et le
signal modulé.

6. Refaire les étapes précédentes en considérant cette fois ci, un signal modulant généré par un
GBF en utilisant l’entrée « Line ».

A.U. 2018-20119
Page 16/23

Travail pratique n° 3
- Implémentation d’un filtre
numérique -

A.U. 2018-20119
Page 17/23

3. TP 3 – IMPLEMENTATION D’UN FILTRE NUMERIQUE

3.1 OBJECTIFS DE L’ACTIVITE

- Savoir utiliser l’outil « fdatool » de Matlab.

- Manipuler le ‘MIC IN’ et ‘HEADPHONE’ de la carte.

- Configurer les options de compilation et de lien.

- Mettre en œuvre d’un filtre numérique

3.2 EQUIPEMENTS DU TRAVAIL

- Ordinateur personnel.

- Générateur Basse Fréquence (GBF).

- Oscilloscope.

- Kit de développement DSK (DSP Starter Kit).

3.3 RAPPELS THEORIQUES SUR LE FILTRE A REPONSE IMPULSIONNELLE


FINIE

3.3.1 FILTRE A REPONSE IMPULSIONNELLE FINIE

L’équation aux différences d’un filtre à RIF est donnée par,


N 1
y(n)=  h( k ) x ( n  k )
k 0
|h(n)| < ∞,
Eq. 3.1

où, h(n) est la réponse impulsionnelle du filtre et N est sa longueur.

Le gabarit d’un filtre Le filtre est caractérisé par : la


bande passante BP, la bande atténuée (ou coupée), la
largeur ∆F= fs - fc de la zone de transition,
l’amplitude des oscillations en bande passante 1 et
l’amplitude des ondulations en bande atténuée 2.

A.U. 2018-20119
Page 18/23

3.3.1 FICHIERS SUPPORT

Les fichiers supports sont présentés dans le tableau suivant,


Fichier Description
C6713dskinit.c il contient les fonctions initialisant le DSK, le codec, les ports séries et les
entrées/sorties. Il n’est pas inclus avec CCS
C6713dskinit.h c’est un fichier en-tête avec des fonctions prototypes. Des fonctionnalités telles
que celles utilisées pour sélectionner l'entrée micro au lieu d'entrée-ligne (par
défaut), le gain d'entrée, et ainsi de suite, elles sont toutes obtenues à partir de
ce fichier
C6713dsk.cmd c’est un fichier de commande. Ce fichier peut être modifié lors de l'utilisation
de la mémoire externe à la place de la mémoire interne
Vectors_intr.asm c’est une version modifiée d'un « vector file » inclus avec le CCS pour gérer les
interruptions. Douze interruptions, INT4 à INT15, sont disponibles, INT11 est
sélectionnée pour ce « vector file». Elles sont utilisées pour les programmes
d'interruption pilotés
Vectors_poll.asm un « vector file» pour les programmes utilisant le polling
rts6700.lib, ils sont le run-time, la carte, et bibliothèques supports pour la puce,
dsk6713bsl.lib, respectivement. Ces fichiers sont inclus avec le CCS. Ces trois fichiers
csl6713.lib d’extension .lib sont localisés dans : C6000\cgtools\lib, C6000\dsk6713\lib, et
c6000\bios\lib, respectivement

Tableau 3.1 - Fichiers support.


Remarque : Pour ne pas perdre le temps dans la recherche de ces fichiers à chaque fois que
vous créez un projet, vous pouvez les rassembler tous dans un même dossier.

3.4 PARTIE PRATIQUE

3.4.1 EXEMPLE 1 : SINUSOÏDE

Cet exemple génère une sinusoïde de 1 KHz de fréquence avec huit points. Le plus important
dans ce programme est la capacité de CCS de tracer les courbes dans le domaine temporel et
fréquentiel.
Le programme principal sine8_buf.c (programme en langage C) de cet exemple crée une mémoire
tampon pour y stocker les données de sortie. Ces dernières vous servent pour tracer les graphes dans
le domaine temporel et le domaine fréquentiel.
Pour y arriver, Suivez les étapes ci-dessous,

A.U. 2018-20119
Page 19/23
1. Créer un projet (sine8_buf.pjt) et préciser sa location et la carte utilisée (c671x pour votre cas).
Joindre tous les fichiers indispensables à savoir,
- Le programme source sine8_buf.c et le fichier source C6713dskinit.c.
- Les bibliothèques : rts6700.lib, dsk6713bsl.lib, csl6713.lib.
- Le fichier de commande : C6713dsk.cmd.
- Le fichier vectors_intr.asm qui gère les interruptions.
2. Sélectionner (Project  Scan All File Dependencies) afin de rajouter tous les fichiers en-tête
dépendant du projet.
3. Configurer les options de compilation et de lien (Project  build options),
- Appuyer sur « Compiler » puis « Basic » et choisir,
target version=C671x(-mv6710).
- Appuyer dans la même fenêtre sur « advanced » et choisir,
Memory Models=Far(-mem_model :data=far).
- De même appuyer sur « Preprocesseur » et régler,
 Pre-Define Symbol=CHIP_6713 (attention CHIP en majuscule)
 Include Search Path= C:\CCStudio_v3.1\C6000\dsk6713\include
- Appuyer sur le menu « linker » dans la même fenêtre, puis indiquer l’emplacement des
librairies. Vous pouvez les rassembler dans un dossier ‘comme cité ci-dessus’ sur le
bureau nommé ‘support’. En effet, spécifier le chemin, library Search Path=
C:\DocumentsandSettings\Administrateur\Bureau\support\lib
- Finalement, appuyer sur OK.

4. Construire le projet (Project Rebuild All) qui génère le fichier exécutable ‘sine8_buf.out’.
5. Charger ce fichier exécutable sur le DSP (File Load).

6. Visualiser le signal de sortie : vous devez connecter la sortie ‘line out’ de la carte à un
oscilloscope.
A.U. 2018-20119
Page 20/23
7. Quelle est la valeur de gain fixé dans le programme et celle de la tension crête à crête 
Vcc=0.8 x gain =0.8 x 10= 8 V.

8. Visualiser le même résultat sur le CCS dans le domaine temporel et/ou dans le domaine
fréquentiel.
9. Refaire les questions précédentes en utilisant la fonction « cos » de la librairie « math.h »
(choisir une fréquence de 1.5 kHz).

3.4.2 FILTRE PASSE TOUT

Ce deuxième exemple permet de vérifier le bon fonctionnement des différentes entrées/sorties ainsi
que leur utilisation.
Le programme principal en langage C est le suivant,
//passe_tout.c. programme en c d’un filtre passe tout
#include "dsk6713_aic23.h" // fichier support pour le codec et le DSK
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; // fréquence d’échantillonnage
interrupt void c_int11() { //interrupt service routine
short sample_data;
sample_data = input_sample(); //échantillons d’entrée
output_sample(sample_data); // échantillons de sorties
return;
}
void main(){
comm_intr(); //init DSK, codec, McBSP
while(1); //boucle infinie
}
Pour créer le fichier exécutable, il faut suivre les mêmes étapes citées dans l’exemple précèdent.
Vérifier le bon fonctionnement de ce filtre par les deux méthodes suivantes,
1. Méthode 1 : attaquer la carte par un signal vocal à travers l’entrée ‘MIC IN’ et récupérer la
sortie à l’aide d’un écouteur branché dans la sortie ‘HEADPHONE’, dans ce cas il faut
changer la valeur initiale du registre 4 0x0011 par 0x0015 dans le fichier en-tête
c6713dskinit.h.
2. Méthode 2 :
a. attaquer l’entrée ‘LINE IN’ par un signal sinusoïdal fourni par un GBF, dont la tension
crête à crête ne doit pas dépasser 6 V.

A.U. 2018-20119
Page 21/23
b. Visualiser la sortie à l’aide d’un oscilloscope en le connectant à la sortie ‘LINE OUT’
de la carte.
c. Que constatez-vous ?
d. Changer la valeur initiale du registre 0 dans le fichier c6713dskinit.h 0x0017 par
0x001c. Commentez le résultat obtenu.

3.4.3 FILTRE NUMERIQUE

A. Génération des coefficients d’un filtre passe-bas

Afin de générer les coefficients de la réponse impulsionnelle, on a recours généralement


à deux méthodes : la première est celle du calcul manuel, qui demande beaucoup de
temps, et que vous ne traitez pas dans ce travail, tandis que la deuxième méthode est
celle du calcul à l’aide de l’outil ‘fdatool’ de Matlab.
1. Taper dans la fenêtre de commande Matlab ‘fdatool’. Cette commande permet d’ouvrir
la fenêtre suivante,

Préciser le type, les caractéristiques (Afin de générer un filtre passe-base de fréquence de


coupure 1.5 kHz), la méthode de conception du filtre,…
2. Sélectionner ensuite « Design Filter », puis (Target Generate C Header…) pour
générer les coefficients de la réponse impulsionnelle dans un fichier en-tête.

B. Implémentation du filtre passe-bas sur la carte

A.U. 2018-20119
Page 22/23
Pour implémenter un filtre FIR sur le DSP qui fait objet de ce travail pratique, il faut réserver
une partie de la mémoire pour stocker les N coefficients de la réponse impulsionnelle, une autre
partie sera consacrée pour les échantillons de l’entrée. Cette dernière devra mettre à jour à chaque
réception d’une nouvelle donnée x(n). En effet, chaque nouvel échantillon doit écraser l’avant
dernière en gardant la même taille du tableau comme le montre le schéma suivant :

Afin de tester le filtre généré précédemment et s’assurer de son bon fonctionnement, suivez les
étapes suivantes :
1. Créer un projet nommé « filtre_fir.pjt » en CCS : pour y arriver, il faut joindre au programme
principal en langage C « filtre_fir.c » (voir programme ci-dessous), les fichiers suivants (dont
l’utilité est déjà mentionnée précédemment), c6713dskinit.c, Vectors_intr.asm,
c6713dsk.cmd, rts6700.lib, dsk6713bsl.lib et csl6713.lib.
#include "dsk6713_aic23.h" // fichier support pour le codec et le
DSK
#define Nbr_coeff 81
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; // fréquence d’échantillonnage
int sorie = 0; //initialiser la sortie du filtre
short h[Nbr_coeff]= {-6, 13, 42, 52, 14, -40, -45, 18, 74, 35, -70, -100, 12, 137, 89,
-105, -192, -14,
228, 188, -142, -338,-76,361, 361, -179, -579, -208, 569, 685, -209, -1040, 519,
992, 1496, -229, -2492, -1827, 3237, 9832, 12872, 9832, 3237, -1827, -2492, -229,
1496, 992, -519, -1040, -209, 685, 569, -208, -579, -179, 361, 361, -76, -338, -
142,188,228, 14, -192, -105, 89, 137, 12, -100, -70, 35, 74, 18, -45, -40, 14, 52, 42,
13, -6};
short X_retard[Nbr_coeff]; //échantillons retardés

A.U. 2018-20119
Page 23/23

interrupt void c_int11(){ //ISR


short i;
X_retard [0]=input_sample(); //le nouvel échantillon d’entrée
sortie = 0; // initialiser la sortie du filtre
for (i = 0; i< N; i++)
sortie =sortie+ (h[i] * X_retard [i]); //sortie(n) += h(i)* x(n-i)
for (i = Nbr_coeff-1; i > 0; i--)
X_retard [i] = X_retard [i-1]; // déplacer les échantillons retardés
output_sample(sortie >> 15); //échantillon de sortie du filtre en format short
return;
}
void main() {
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}

Construire le projet (Project Rebuild All) qui génère le fichier exécutable ‘filtre_fir.out’ et
finalement charger ce fichier exécutable sur le DSP (File Load).
2. Générer une sinusoïde à l’aide d’un GBF
3. Relier l’entrée ‘LINE IN’ du DSK avec le GBF et relier la sortie de la carte à un oscilloscope
pour visualiser le signal de sortie.
4. Lancer le programme.
5. Choisir une amplitude de 2 volts et faire varier la fréquence de la sinusoïde. Remplir le tableau
ci-dessous.

f (kHz) 0.5 0.8 1 1.2 1. 1.4 1.5 1.5 1.5 1.5 1.6 1.7 1.8 1.9 2 2.5
4 8 2 4 6
Vs (V)
Vs/ Ve
6. Que constatez-vous ?

A.U. 2018-20119

Vous aimerez peut-être aussi