BPSK / QPSK avec symboles analogiques

publicité
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:
Limits :
–1 (1.000 0000 0000 0000b = 0x8000 ) à
+0.999969... (0.111 1111 1111 1111b = 0x7FFF )
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
BE télécom
2008-2009
Comment modifier la réponse imulsionnelle du filtre
La réponse du filtre peut être changée en modifiant le fichier assembleur SinCardinal_psv.s. Pour
cela, on peut utiliser un tableur et concaténer les nombres obtenus avec le mot « .hword » afin de
coller le résultat dans le fichier assembleur.
2. Le pilotage des DAC (liaison SPI) – validé Mai 2009
C'est grâce à la liaison SPI que le DSP peut communiquer les données numériques vers les DAC (il
y a deux voies).
Le module : SPI_INSA.C
Le fichier d'entête : SPI_INSA.h
Les fonctions :
float Config_SPI(float Tcy_us);
– initialise le SPI par défaut à Tck=200ns
– Renvoie la durée effective du transfert 16 bits (3,2us par défaut)
void OutputDAC_via_SPI( int s, char voie);
– Charge la valeur s dans le DAC correspondant à la voie (1 ou 2), mais la sortie du DAC
reste encore inchangée.
– Met à jour la sortie du DAC de la donnée précédente sur le DAC correspondant à la voie
(1 ou 2).
Guide_Bibli_DSPIC_Filtrage.odt
2/2
Téléchargement