BE télécom 2008-2009
Présentation des bibiothèques mises à
disposition pour aborder le filtrage numérique
(BPSK / QPSK avec symboles analogiques)
1. Les fonctions DSP – validé Mai 2009
Une seule fonction DSP sera réellement utilisée, il s'agit de la fonction permettant de réaliser un
filtre FIR (Finite Impulse Response).
Afin de faire fonctionner correctement les opérations de traitement de signal DSP, les développeurs
de chez Microchip proposent un type de donnée qui est dérivé de int : il s'agit du type fractional.
Le type fractional
Il s'agit d'un simple integer dont l'interprétation est particulière. Pour un integer classique, codé sur
16 bits, les valeurs possibles s'étalent de -32 768 à +32 767.
Dans le cas d'un type fractional, on considèrera que les valeurs vont de -1,0 à +0,999969...Pour
cela il suffit d'associer au bit 0 le poids 2-15, le bit 14 ayant le poids 2-1 et enfin le bit 15 est le bit de
signe:
Le DSP est pourvu d'un unité arithmétique justement optimisée pour ce type de donnée. C'est la
raison pour laquelle le type fractional est introduit en C (compilateur C30 de Microchip).
Le module : FIR_INSA.C
Le fichier d'entête : FIR_INSA.h
Les fonctions :
void Init_FIR(void);
– initialise la fonction de filtrage avec le filtre défini dans le fichier SinCardinal_psv.s.
fractional Filtre(fractional entree);
– Opère le filtrage (convolution : {sn}={en}⊗{hn}) à partir de entree, fournit la réponse s(n).
– Temps d'execution : environ 18µs pour tcy = 100ns et un filtre de 100 coefficients.
Guide_Bibli_DSPIC_Filtrage.odt 1/2
Limits :
–1 (1.000 0000 0000 0000b = 0x8000 ) à
+0.999969... (0.111 1111 1111 1111b = 0x7FFF )