Master Physique et Physique et EEA Electronique Signaux et Systèmes

De
Publié par

Niveau: Supérieur, Master, Bac+4

  • mémoire


1 Master 1 « Physique » et « Physique et EEA » Electronique, Signaux et Systèmes Travaux Pratiques DSP Objectifs ? Découvrir en pratique l'architecture des processeurs de signaux (DSP) et les problèmes liés à leur programmation en implantant des algorithmes de traitement du signal sur un processeur. ? Compléter les connaissances en traitement du signal par l'analyse de phénomènes liés au traitement numérique des signaux. Hadrien Mayaffre, Erik Kerstel

  • dsp

  • architecture generale du starter kit

  • processeur

  • algorithmes du traitement du signal

  • logiciel de développement

  • analyse fonctionnelle

  • filtre numérique


Publié le : mercredi 30 mai 2012
Lecture(s) : 61
Source : physique-eea.ujf-grenoble.fr
Voir plus Voir moins
Cette publication est accessible gratuitement
1
Master 1 « Physique » et « Physique et EEA »
Electronique, Signaux et Systèmes
Travaux Pratiques
DSP
Objectifs
-
Découvrir en pratique l'architecture des processeurs de signaux
(DSP) et les problèmes liés à leur programmation en implantant
des algorithmes de traitement du signal sur un processeur.
-
Compléter les connaissances en traitement du signal par
l'analyse de phénomènes liés au traitement numérique des
signaux
.
Hadrien Mayaffre, Erik Kerstel
2
PLAN DU DOCUMENT
1
TRAVAIL DEMANDE
2
2
INTRODUCTION
3
3
ARCHITECTURE GENERALE DU STARTER KIT TMS320C6416
4
3.1
Le processeur
4
3.2
La carte starter kit
4
3.3
Le codec aic23
5
4
CONCEPTION ET IMPLEMENTATION DE FILTRES RII ET RIF
6
4.1
Les buts
6
4.2
L’environnement de travail
6
4.3
Types des variables
6
4.4
connecter le kit et l’utiliser
7
4.5
l’utilisation du générateur et de l’oscilloscope
7
4.6
filtre RII « passe-bande »
7
4.6.1
Etude théorique
7
4.6.2
Réalisation du filtre.
8
4.7
filtre « à fenetre » RIF.
8
1 TRAVAIL DEMANDE
Ces deux séances de TP consacrées aux DSP ne seront pas de trop pour que vous puissiez
vous familiariser avec le logiciel et le matériel. Le matériel sera pour nous la carte KIT
TMS320C6416T que nous décrivons brièvement plus loin. Le logiciel de développement
« Code Composer Studio » que nous allons utiliser permet la programmation en langage de
haut niveau (en « C ») ou en assembleur, la compilation et le chargement du programme sur le
processeur cible, sont exécution/émulation et le debugging. De plus, une large gamme
d’utilitaires et de bibliothèques sont disponibles et faciliteront considérablement notre tâche.
En effet, il vous suffira de suivre les exemples mis a votre disposition et d’insérer votre
élément de code dans un programme déjà existant, sans avoir a vous soucier de notions telles
que le mapping de la mémoire, l’initialisation des registres du convertisseur, ni, sauf imprévu,
à vous plonger dans l’assembleur ou le debugger.
Vous aurez tout au plus à faire appel à des
fonctions en bibliothèques et des fichiers de configuration déjà existants.
L’objectif est d’arriver avant la fin de la 2
ème
séance à faire fonctionner au moins un filtre de
type RII et un de type RIF répondants au cahier des charges fourni plus loin et de les
caractériser. Il vous sera demandé un compte rendu comprenant :
-
L’objet du programme.
-
Une analyse fonctionnelle de ce programme.
-
Le listing de la procédure « C »
réalisant le filtre.
-
Les valeurs des coefficients utilisés et la méthode pour les obtenir.
-
Les résultats de vos mesures : Une caractérisation fréquentielle (diagramme de
Bode) de la fonction de transfert, en utilisant un générateur de fonction et un
oscilloscope. La fonction de transfert en absence de filtrage (entrée sur sortie)
est également demandée. Faites vérifier vos résultats lors de la séance.
3
-
Commentaires
sur
vos
difficultés,
les
problèmes
de
précision/saturation/virgule fixe etc…
2 INTRODUCTION
Parmi la famille des processeurs spécialisés une nouvelle branche est apparue vers 1982 avec
pour principale fonction de traiter numériquement et rapidement les signaux issus de la
parole. Le premier processeur ou calculateur spécialisé en traitement du signal (TS ou SP pour
Signal Processing), le "
DSP
" (Digital Signal Processor), était né et depuis, cette famille n'a
cessé de s'agrandir. Les processeurs DSP diffèrent des microprocesseurs ordinaires par le fait
qu'ils ont été conçus spécialement pour effectuer de manière très rapide, car câblés, les
opérations de somme et de produit qui sont présentes dans tout algorithme de traitement du
signal. Sur un DSP on peut en un cycle effectuer une multiplication et une accumulation. Si
au début ils effectuaient 5 millions d'instructions par seconde (MIPS) sur des entiers de 16
bits pour un prix de 600$, ils peuvent aujourd'hui, en version standard, effectuer plusieurs
GFLOPS sur des entiers ou des flottants (GFLOP: Giga Floating Operation per Second) pour
un prix inférieur à 40$. Le DSP que nous allons utiliser est cadencé à 1 GHz, est évalué à
8000 MIPS, peut effectuer jusqu’à 8 instructions 32 bits par cycle d’horloge grâce entre autre
à 8 « ALU » indépendantes.
La famille de processeurs la plus répandue actuellement est sans conteste celle des
DSP de Texas Instruments qui détient environ 70 % du marché, les 30 % restant étant
partagés entre Motorola, Analog Devices, Lucent Technologies, Nec et Oki.
L'avantage des DSP tient :
à leur faible prix par rapport aux circuits analogiques réalisant la même fonction.
leur facilité d'intégration sur des cartes numériques
leur possibilité de résoudre par la programmation, dont la complexité n'est pas limitée,
toutes sortes de problèmes linéaires ou non linéaires
leur robustesse car ils sont insensibles aux variations de température, aux dérives et au
vieillissement
leur flexibilité et leur souplesse de modification, car il suffit de changer le programme
sans modifications matérielles.
Les principales applications se trouvent dans :
les télécommunications : téléphone filaire et cellulaire, modem, fax, transcodeurs,
interpolateurs, répondeurs, routeurs, codec …
le traitement de la parole: reconnaissance, compression, synthèse.
la commande de procédés : asservissement, contrôle flou, diagnostique automatique,
automobile (ABS) …
l' instrumentation : analyse spectrale, oscilloscope, générateur de signaux, …
le traitement d'image : Image par Résonance Magnétique, image ultrasonore,
reconnaissance, compression, transmission, animation ...
Les difficultés qui attendent les utilisateurs de ces processeurs sont au nombre de trois :
la première est liée à l'architecture du DSP, qui tout en étant proche de celle du
microprocesseur, est fortement spécialisée pour les algorithmes du traitement du
signal,
la deuxième difficulté, et ce n'est pas la moindre, concerne la technique du traitement
numérique du signal laquelle nécessite la maîtrise d'outils mathématiques adaptés,
enfin, la dernière difficulté se rapporte à l'implantation de l'algorithme ou la manière
de programmer le DSP de façon à utiliser au mieux les ressources de son architecture.
On parle d'ailleurs de plus en plus souvent d'adéquation algorithme-architecture qui
suppose une relation très étroite dans le développement du logiciel et du matériel.
Ces processeurs sont programmés principalement en langage C (via un compilateur croisé)
avec une phase d'optimisation si nécessaire en assembleur.
4
Parallèlement aux DSP à usage général ou à spectre large, les constructeurs
commercialisent aussi des DSP réservés à des secteurs d'activités ciblés. Ainsi, ces DSP sont
optimisés pour un type d'application de par leur parfaite adéquation entre leur architecture et
l'algorithme utilisé. Par exemple, les séries DSP568xxx de Motorola et TMS320C54x de
Texas Instruments ont été développées spécialement pour l'exécution rapide des algorithmes
exploités dans les téléphones sans fil. C'est le cas également pour la famille de processeur
TMS320F/C240 de Texas Instruments qui est spécialisée dans le domaine de la commande
industrielle, en particulier pour le contrôle de la conversion d'énergie et la commande de
moteur électrique (commande vectorielle).
3 ARCHITECTURE GENERALE DU STARTER KIT TMS320C6416
3.1
LE PROCESSEUR
Le processeur que nous allons utiliser est le TMS320C6416-1000 qui est un DSP 16 bits à
virgule fixe principalement dédié au traitement audio et vidéo. Il a un temps de cycle de 1 ns
(1 GHz). A titre d'exemple on donne la cadence maximale pour quelques applications
classiques :
- filtre numérique FIR sur 32 coefficients (~ 30 ns /ech)
- filtre numérique IIR ordre 4 (~ 4 ns/ech)
- FFT mémoire à mémoire sur 1024 points (~ 6 μ s).
3.2
LA CARTE STARTER KIT
Ici, le DSP est monté sur une carte Starter Kit de Texas Instrument munis des éléments
suivants :
-
Le processeur DSP 1 GHz VC6416,
-
Un convertisseur audio bidirectionnel : « CODEC »
-
16 Mbytes de mémoire DRAM synchrone,
-
512K de mémoire FLASH,
-
un contrôleur de bus JTAG pour l’émulation et une interface port parallèle
pour PC,
-
une interface USB
-
alimentation externe 5V
5
3.3
LE CODEC AIC23
Les entrées (ligne ou micro) et sorties (ligne ou haut-parleurs) audio sont traitées par un
circuit CODEC (AIC23). Les entrées audio sont découplées par une impédance capacitive
(couplage AC). L’entrée audio consiste en un ampli-op de gain fixe (+10dB) et d’un de gain
ajustable (0, +6, +12dB), d’un filtre anti-repliement analogique, d’un échantillonneur-
bloqueur suivit d’un convertisseur sigma-delta multicadence avec converstion sur 15 ou 16
bits.
Le codec est cadencé à 12 MHz mais on peut ajuster la fréquence d’échantillonnage à
différentes valeurs comme 48 kHz (max), 44.1 kHz (norme audionumérique) 8 kHz
(téléphonie). Les sorties audio consiste également en un convertisseur multicadence sigma-
delta. La sortie peut être atténuée de 0, –6 ou –12dB. Elle peut se faire au travers d’un circuit
amplificateur à faible impédance de sortie (8 Ohm) (haut-parleurs) ou directement du circuit
(600 Ohm) (ligne).
6
4 CONCEPTION ET IMPLEMENTATION DE FILTRES RII ET RIF
4.1
LES BUTS
Le but est de réaliser un filtre de l’entrée audio (entrée ligne) et de reproduire le signal filtré
en sortie (sortie ligne). Nous allons pour cela utiliser le programme « dsk-app » comme base
de départ. Ce programme assure en effet l’essentiel des fonctions dont nous avons besoin pour
réaliser notre filtre : il initialise la carte, le convertisseur AD50 (mode de conversion,
fréquence de conversion, amplification d’entrée et atténuation de sortie). Il lit les échantillons
issus de la numérisation et les copies vers la sortie. Il va donc vous falloir réaliser une
procédure en « C » qui accomplisse le filtrage.
4.2
L’ENVIRONNEMENT DE TRAVAIL
Vous trouverez un dossier M1_DSP sur le disque C : de l’ordianteur.
La première chose à
faire sera de copier ce dossier sur votre espace personnel (Z : sarado …). Vous
travaillerez ensuite exclusivement « chez vous ».
Le projet dsk-app.pjt sera votre outil de départ. Il contient l’essentiel des initialisations et
configurations nécessaire à faire fonctionner le KIT.
Le programme source dsk-app (écrit en C) est constitué d’un préambule visant à faire toutes
les configurations et initialisations. La partie sensible du programme qui nous concerne est la
fonction «copyData ».
void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length)
{
Int16 i = 0;
for (i = 0; i < length; i++) {
if ((i%2)==0) outbuf[i]
= riiblanc(inbuf[i]);
else outbuf[i]
= riirouge(inbuf[i]);
/* gestion de la stéréo sur la parité de i : buffer entrelacé)*/
}
}
Les données (inbuf) sont envoyées en sortie (outbuf) à travers les fonctions « riiblanc » et
« riirouge » qui sont implémentées plus bas. La stéréo est gérée par entrelacs des données, ce
qui explique la séparation des éléments pairs (input blanc) et impairs (input rouge).
Les fonctions « riiblanc » et « riirouge » sont fournies dans un état ou elles sont transparentes
(riiblanc(A)=A ) :
Int16 riiblanc(Int16 datain)
{
static float x[3] ={0};
static float y[3] ={0};
float input;
input =
(float) datain;
x[0] = input;
/* programmez votre filtre ici*/
y[0]=x[0];
return (Int16) y[0];
}
4.3
TYPES DES VARIABLES
Le programme fourni propose de travailler sur des réels (float) avant de revenir sur un entier
16 bits qui est le format de sortie du DSP.
Ceci implique de faire attention aux effets de troncature (arrondi à zéro, complément à 2
16
)
7
4.4
CONNECTER LE KIT ET L’UTILISER
Le kit se raccorde au PC par l’intermédiaire d’un câble USB. Nous essayerons dans la mesure
du possible d’éviter de brancher et débrancher inutilement ce câble. Le kit est alimenté par un
transformateur extérieur. Pour caractériser le filtre, nous injecterons un signal sinusoïdal issu
d’un générateur de fonction dans l’entrée audio à l’aide d’une connectique BNC/RCA/jack
qui vous sera fournie. L’entrée audio admet un signal de
500 mV d’amplitude maximum
.
Testez avec l’oscilloscope d’abord et faites vérifier la configuration de votre générateur avant
de le brancher au kit.
La procédure pour mettre le kit en ordre de marche est la suivante
Lancer le logiciel Code composer Studio
Si nécessaire connectez le Kit (>debug >connect)
Ouvrir le projet dsk-app.pjt
Dans le navigateur de projet, rechercher le fichier source (en C) dsk-app.
Compilez ce programme (>rebuild all)
Charger le programme sur le processeur (DSP) (>load program>rii.out)
Executer (>run)
4.5
L’UTILISATION DU GENERATEUR ET DE L’OSCILLOSCOPE
En comparant l’amplitude du signal en entrée et en sortie du filtre à l’aide de l’oscilloscope,
vous déterminez le module de la fonction de transfert du filtre, en fonction de la fréquence
que vous ferez varier.
Il sera important de commencer par vérifier la fonction de transfert du système en absence de
filtrage numérique. On utilisera le programme fourni au départ (sans filtrage) et le fichier de
données fourni « DSP.dat » à télécharger sur le site Web du BVRA (
http://physique-eea.ujf-
grenoble.fr/intra/Formations/M1/Physique/UEs/1-S1/PPHY411A/Travauxpratiques/
)
4.6
FILTRE RII « PASSE-BANDE »
4.6.1
Etude théorique
On cherche à programmer un filtre répondant à la fonction de transfert donnée par la transformée en z :
2
2
2
1
)
(
)
(
)
(
a
z
z
B
z
X
z
Y
z
H
+
-
=
=
avec
1
<
a
et
)
1
(
2
2
a
B
-
=
8
Déterminez les zéros et les pôles du système et placez les dans le plan z.
Dans quel cas le système est t’il stable ?
A partir de la position des pôles et des zéros pouvez-vous dire qualitativement
comment se comporte le filtre ?
Pour quelle fréquence le gain sera 1 quelle que soit la valeur de
a
?
Exprimer la forme récurrente permettant de calculer l’échantillon y[n] connaissant les
valeurs précédentes.
4.6.2
Réalisation du filtre.
Le but est d’implémenter cette forme récurrente. On essaiera de programmer le filtre pour
a=0.5, a=0.9 et a=0.99. Pour cela il sera nécessaire de prévoir une partie concernant le calcul
proprement dit (équation récurrente) et une partie concernant la gestion des retards sur les
variables.
Une fois le filtre implémenté faites le fonctionner et mesurez le gain du système en fonction
de la fréquence.
Comparez les trois filtres sur un même graphe (on pourra tout représenter en échelle linéaire
et/ou en Bode).
4.7
FILTRE « A FENETRE » RIF.
Un filtre RIF est donné par son noyau h[i] (réponse impulsionnelle finie) et est implémenté en
calculant le produit de convolution numérique
-
=
i
i
n
x
i
h
n
y
]
[
]
[
]
[
Un filtre passe-bas à fenêtre idéal a un gain en
fréquence
rectangulaire (1 avant f
c
et 0 après).
Ceci correspond à une réponse impulsionnelle irréalisable car non seulement infinie mais
commençant pour des temps négatifs (système non causal). Une approximation consiste donc
à tronquer cette réponse et à la décaler pour la symétriser.
On prendra par exemple pour nos essais un noyau h[i] de 49 valeurs centré sur l’indice 24 et
symétrique (h[0]=h[48], h[1]=h[47] …h[23]=h[25]).
On cherche à faire un filtre passe bas coupant à 4 kHz. Déterminez le noyau complet en
utilisant un coefficient de normalisation pour avoir un gain de 1 dans la bande passante (pour
un filtre passe bas le gain peut être donné par la limite de la réponse indicielle).
Implémenter le filtre avec le noyau complet et mesurez sa réponse fréquentielle.
Reprendre la même chose en mettant à zéro les deux premiers et derniers lobes de la réponse
impulsionnelle (équivalent à un noyau de 25 valeurs) et comparez au cas précédent la réponse
fréquentielle.
Que faire de très simple pour transformer le filtre en un passe haut de coupure 20 kHz ou un
passe bande 8-16 kHz ? Attention à la normalisation. Essayez et testez le rapidement
(qualitativement).
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.

Lisez à volonté, où que vous soyez
1 mois offert, sans engagement Plus d'infos

Diffusez cette publication

Vous aimerez aussi

suivant