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