100% ont trouvé ce document utile (1 vote)
419 vues8 pages

Filtre FIR sur DSK C6713 : TP Informatique

Ce document décrit l'implémentation d'un filtre FIR passe-bas sur un DSK C6713. Il présente le calcul des coefficients du filtre à l'aide de Matlab, l'implémentation sur le DSP ainsi que les tests effectués pour valider le filtrage.

Transféré par

Maatoug Hadil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
419 vues8 pages

Filtre FIR sur DSK C6713 : TP Informatique

Ce document décrit l'implémentation d'un filtre FIR passe-bas sur un DSK C6713. Il présente le calcul des coefficients du filtre à l'aide de Matlab, l'implémentation sur le DSP ainsi que les tests effectués pour valider le filtrage.

Transféré par

Maatoug Hadil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’enseignement supérieur et de la recherche scientifique

Université de Sousse

Institut Supérieur d’Informatique et des


Techniques de Communication _ Hammam Sousse

TP 2 : Implantation d'un filtre FIR sur DSK


C6713

3éme licence en Technologies de l’Information et


de la Communication

Enseignante : Sana BOUGHARRIOU

[email protected]

2020/2021
TP 2 : Implantation d'un filtre FIR sur DSK C6713 Sana BOUGHARRIOU
2020 / 2021

1. Objectifs

L’objectif de ce TP est d’analyser l’implantation du filtrage FIR sur DSK C6713 et de


tester cette implantation avec CCS(code composer studio).

2. Généralités

Un signal est la représentation physique de l’information qu’il transporte de sa source à


son destinataire. Il sert de vecteur à une information. Il constitue la manifestation physique
d’une grandeur mesurable (courant, tension, force, température, pression, etc.). Les signaux
sont des grandeurs électriques variant en fonction du temps x(t) obtenues à l’aide de capteurs.

Tout signal physique comporte une composante aléatoire (perturbation externe, bruit,
erreur de mesure, etc. …). Le bruit est défini comme tout phénomène perturbateur gênant la
perception ou l'interprétation d'un signal, par analogie avec les nuisances acoustiques
(interférence, bruit de fond, etc.).

Afin de diminuer ou d'éliminer le bruit et les perturbations, une étape de filtrage est
nécessaire. Le filtrage du signal numérique intervient dans de nombreux domaines :
transmission du signal, traitement du son, des images, traitement des données scientifiques,
etc.

Les filtres numériques peuvent être classés selon plusieurs critères : la longueur de la
réponse impulsionnelle implique deux types de filtres :

 RIF, i.e. Filtres à réponse impulsionnelle finie


 RII, i.e. Filtres à réponse impulsionnelle infinie

Un filtre numérique à réponse impulsionnelle finie réalise le calcul d'un signal de sortie
𝒚𝒏 en fonction du signal d'entrée 𝒙𝒏 de la manière suivante :

𝑵−𝟏
𝒚𝒏 = 𝒌=𝟎 𝒉 𝒌 𝒙 𝒏−𝒌 𝒉(𝒏) ˂∞

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

Page 1
TP 2 : Implantation d'un filtre FIR sur DSK C6713 Sana BOUGHARRIOU
2020 / 2021

Le gabarit réel d'un filtre FIR est le suivant :

3. Création d’un filtre FIR passe-bas

3.1 Calcul des coefficients

Pour calculer les coefficients de la réponse impulsionnelle, on a recours à deux


méthodes : la première est celle du calcul manuel, qui demande beaucoup de temps, et que
nous ne traitons pas dans ce travail, tandis que la deuxième méthode est celle du calcul à l'aide
de l'outil "fdatool" de Matlab. Pour y arriver, il nous faut qu'à taper dans la fenêtre de
commande Matlab "fdatool", cette commande permet d'ouvrir la fenêtre suivante.

Figure 1. Fenêtre "fdatool" du MATLAB

Page 2
TP 2 : Implantation d'un filtre FIR sur DSK C6713 Sana BOUGHARRIOU
2020 / 2021

A ce niveau, nous précisons le type, les caractéristiques (citées ci-dessus), la méthode de


conception du filtre, 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
(fichier).

3.2 Implémentation du filtre sur le DSP

Pour implémenter ce filtre FIR sur le DSP qui fait objet de notre étude, 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 Figure 2.

Figure 2. Mémoire de donnée pour un filtre FIR

Pour tester ce filtre et s'assurer de son bon fonctionnement, nous avons passé par les
étapes suivantes :

a) La création d’un projet nommé « filtre_fir.pjt » en CCS : pour y arriver, il faut


joindre au programme principal en langage C « filtre_fir.c » (voir annexe A), les fichiers

Page 3
TP 2 : Implantation d'un filtre FIR sur DSK C6713 Sana BOUGHARRIOU
2020 / 2021

suivants : c6713dskinit.c, Vectors_intr.asm, c6713dsk.cmd, rts6700.lib, dsk6713bsl.lib et


csl6713.lib.

b) 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).

b) La création d'un script MATLAB pour la génération d'une somme de deux signaux
sinusoïdaux, la première sinusoïde a une fréquence de 1 kHz et la deuxième de 2 kHz (le
signal qui sera filtré) (voir script dans l'annexe B).

c) Relier l'entrée "LINE IN" du DSK avec le PC à l'aide d'un câble JACK.

d) Relier la sortie de la carte à un oscilloscope pour visualiser le signal de sortie.

e) Lancer le programme.

Le résultat obtenu sur l’oscilloscope est présenté au niveau de la Figure 3.

Figure 3. Résultat de filtrage


La sortie de la carte (signal en bleu) est un signal de fréquence de 1.02 kHz, d’ou la
validité du résultat escompté. En effet, le filtre a laissé passer le premier signal (de fréquence
de 1KHz) et il a rejeté le deuxième (de 2 KHz).
La Figure 4 montre la réponse réelle du filtre implémenté sur le DSP

Page 4
TP 2 : Implantation d'un filtre FIR sur DSK C6713 Sana BOUGHARRIOU
2020 / 2021

Figure 4. Réponse du filtre FIR de fréquence de coupure de 1500HZ sur DSP


La réponse du filtre qui nous a généré les coefficients de la réponse impulsionnelle est
donnée dans la Figure 5.

Figure 5. Réponse du filtre FIR désigné par "fdatool" dans MATLAB


Nous constatons qu’il y a une ressemblance entre la réponse théorique et pratique du
filtre implémenté sur le DSP, au niveau de la bande passante et de la bande de transition.

Page 5
Annexe A : Programme principal en langage C du filtre FIR
passe-bas de fréquence de coupure 1500Hz

#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 sortie = 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
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
}
Annexe B: Script MATLAB pour la génération de la somme de deux
signaux sinusoïdaux de fréquences 1kHz et 2kHz

F1=1000; % fréquence du premier signal

F2=2000; % fréquence du deuxième signal

fe=8000; % fréquence de l’échantillonnage

N= 2^16; % Nombre d’échantillons

temps=(0:N-1)/fe; %axe temporel en seconde

x1=sin(2*pi*F1*temps); %premier signal

x2=sin(2*pi*F2*temps); %deuxième signal

for u=1:100,

sound(x1+x2) ; %écouter le mélange des deux fréquences

end

Vous aimerez peut-être aussi