Bloc d`entrée DSP Bloc de sortie AIC Signal d`entrée

Transcription

Bloc d`entrée DSP Bloc de sortie AIC Signal d`entrée
Université du Québec à Montréal
Département d’Informatique
MIC4220
Traitement numérique des signaux
Laboratoire 2: Résolutions et fréquences d’échantillonnage
1. But
Se familiariser avec les formats de représentation numérique et la détermination des fréquences
d’échantillonnage et des longueurs de mots dans un système DSP; vérifier le critère de Nyquist
et les effets de quantification.
2. Partie théorique
1. Donner la représentation sur 16 ou 32 bit, selon le cas, en format binaire signé, complément de
2, virgule flottante IEEE à 32 bits, et Q15 des nombres suivant : 1,34; 245; -4,65; 0,0004 et
0,0625x103.
2. Utiliser la fonction Matlab fournie, sinesample, afin d’étudier les effets de la fréquence
d’échantillonnage sur le signal s( t ) 5sin( 8164t ) Utiliser les paramètres suivants : N=32
points, fs=0.5, 1, 1.4, 2, et 10 khz. Tracer sur un même graphique les courbes des signaux
obtenus.
3. Un système de reconnaissance vocale dans un signal multimédia peut être comme indiqué par
le bloc diagramme ci-dessous. Dans un contexte commercial, il important minimiser la
longueur des mots traités par le DSP et la fréquence d’échantillonnage du signal d’entrée afin
de minimiser les coûts de production du système.
Signal
d’entrée
Bloc
d’entrée
DSP
Bloc
de sortie
Signal de
sortie
AIC
On sait que signal d’entrée couvre une bande de fréquences allant de 20 Hz à 20 kHz, mais on
est seulement intéressé par les fréquences inférieures à 4 kHz. Par ailleurs, une étude
préalable a révélé que les signaux traités par le DSP doivent avoir une amplitude qui ne dévie
pas de plus de 0.01 % par rapport au signal d’entrée analogique.
Compléter le schéma bloc du système en identifiant les différents blocs avec leurs paramètres
(fréquences de coupure, d’échantillonnage, résolution en bits, etc.)
3. Partie pratique
Préparation:
Lire le chapitre 2 du livre «Digital Signal Processing and applications with TMS320C6713 and
1
TMS320C6416 DSK» 2ième édition de Chassaing et Donald Reay; étudier en particulier les
exemples 2.1 et 2.2 qui montrent deux manières de programmer le AIC23 du DSK pour lire des
données analogiques sur le port du micro et de les renvoyer sur le port de sortie LINE OUT et
HEADPHONE. Dans les expériences qui suivent, on utilisera le code de l’exemple 2.2 modifié.
Expériences:
Premièrement, copier les fichiers du laboratoire et préservant la hiérarchie des chemins d’accès.
Ensuite, compléter les étapes suivantes :
1. Création du projet initial :
 Ouvrir CCS4 et sélectionner le répertoire Support comme répertoire de travail en
utilisant «Switch Workspace…».
 Créer le projet «LAB2» et y inclure le fichier Loop_intr.c avec «Project Add Files
to Active Project…». Pour utiliser les ressources matérielles du DSK6713, des
fichiers supports et les paramètres seront ajoutés au projet.
 Sélectionner LAB2 et cliquer le bouton droit de la souris pour ouvrir l’item «Built
Properties».
 Sélectionnez «Predefined Symbols», cliquez dans l’encadré «Pre-define Name» suivi
du bouton d’ajout + et entrer «CHIP_6713» dans le champ.
2
 Sélectionnez «Include Options» et ajoutez les chemins suivants.
 Sélectionnez «Runtime Model Options» et dans l’encadré «Data acces model»
sélectionnez « far ».
 Sélectionnez «C6000 Linker→Basic Options» et dans l’encadré «Set C system stack
size» entrez « 0x1000 ».
3
 Finalement inclure les fichiers librairie et les répertoires de recherche suivants
en terminant l’opération en appuyant sur «Apply» pour sauvegarder l’ensemble
des changements.
2. Ajout des fichiers de support
 Établir la liaison avec les fichiers dans le répertoire «/Support» en utilisant la
commande «Project→Link files to Active Project…».
1.
Vérifier avec la commande «View→Target Configurations» que le DSP cible par
défaut est celui spécifié dans «DSK6713.ccxml». Ensuite:
a. Étudier les fichiers qui le composent, en particulier le fichier de commande pour
4
l’éditeur de liens c6713dsk.cmd du projet.
b.
Modifier le fichier loop_int.c afin de faire clignoter la DEL numéro 2 sur la carte du
DSK à toutes les secondes sans interférer avec la fonction audio du programme !
(L’API DSK6713_LED_on(#LED), DSK6713_LED_off ou DSK6713_LED_toogle pourront être
utilisés pour activer les LEDs).
c. Générer le fichier exécutable lab2.out et télécharger vers le DSK6713; l’exécuter en
reliant une source audio à l’entrée LINE IN de la carte de DSP et un écouteur ou un
hautparleur amplifié à la sortie correspondante. Vérifier le fonctionnement du
programme.
2. Appliquer un signal sinusoïdal d’amplitude 2v c-c, et de fréquence variant entre 1 kHz et
10 kHz à l’entrée LINE IN et observer sur l’oscilloscope le signal d’entrée LINE IN et le
signal de sortie LINE OUT (noter que la fréquence d’échantillonnage du AIC est
présentement ajustée à 8 kHz); tracer une courbe qui donne la fréquence du signal de
sortie en fonction de celle du signal d’entrée et expliquer les résultats obtenus.
3. Reprendre la partie précédente avec un signal audio réaliste (Ex: signal 1kHz ou sortie
MP3) à l’entrée LINE IN. Modifier le programme principal afin que seulement 1 sur n
échantillons lus sur l’entrée analogique est renvoyé sur la sortie. Faire varier n de 2 à 15 et
écouter le signal audio obtenu. Que peut-on en déduire? Si, au lieu de réduire le nombre
d’échantillon on l’augmente en changeant la fréquence d’échantillonnage (ligne Uint32
fs=DSK6713_AIC23_FREQ_XXKHZ du programme), quel est la fréquence maximum
que l’AIC peut reproduire sans distorsion?
4. Reprendre la partie 5 en modifiant la résolution en bits du signal renvoyé sur la sortie de
manière à masquer les 2, 4, 8, 12 bits les moins significatifs de chaque échantillon du
signal. Que peut-on en déduire ?
5
Synopsis de la fonction sinesample.m
%function [Vs,t] = sinesample(fo,fs,Ns,shg,DC)
% DESCRIPTION:
%
Permet d’échantillonner un signal sinusoïdal d’amplitude 1. Retourne un
%
vecteur contenant les valeurs échantillonnée et un autre les temps
%
d’échantillonnage. Le format du signal à échantillonner est :
%
%
V = DC + sin( 2 * pi * fo * t)
% Arguments :
%
-fo : fréquence du signal (kHZ)
%
-fs : fréquence d’échantillonnage (kHZ)
%
-Ns : nombre d’échantillons
%
-shg : affichage graphique 0--> Non
1--> oui
%
-DC : 0--> zéro DC 1--> décalage d’une demi-amplitude vers le haut
%
% Valeurs de retour :
%
-t
: temps d’échantillonnage
%
-Vs : valeurs échantillonnées
%%============================================================
6