• Aucun résultat trouvé

Réalisation complète de l’algorithme

En reprenant l’algorithme avec décimation en temps on obtient le graphe représenté figureVI.11qui inclut les multiplications par 1.

FIGUREVI.11 – Décomposition complète pourN = 8

Nombre d’opérations

Si le nombre total de points estN = 2r, le nombre total d’étage estlog2(N) =r. On aN/2papillons élémentaires par étage.

Il y aN/2 multiplications complexes par étage correspondant aux facteurs de rotation. La recombinaison des résultats de chaque papillon demande 2 additions complexes et comme il y aN/2papillons par étage, on obtient un total deN additions par étage.

Le nombre total d’opération est donc : – N/2 log2N ’×’ complexes et – Nlog2N’+’ complexes

On dit que cet algorithme a une complexitéO(log2(N)). Le tableau2.5donne le nombre d’opérations nécessaires pour quelques longueurs usuelles de signaux.

N × +

128 448 896

1024 5120 10240 4096 24576 49152

TABLEVI.2 – Nombre d’opérations complexes

Calcul en place

Une autre propriété remarquable de cet algorithme est le calcul en place : une fois que les données ont été consommées pour calculer un papillon, elles ne sont plus utilisées dans la suite des calculs (cf figureVI.11). Le résultat des calculs du papillons peuvent donc être placées à leur place en mémoire. Le nombre de case mémoire nécessaire pour cet algorithme est donc deN contre2Npour le calcul direct de laTFD.

Ordonnancement des données

Pour conduire cet algorithme de manière régulière, il est nécessaire d’organiser la séquence d’entrée suivant un ordre par-ticulier, dit “bit-reverse”. Cet ordonnancement vient du fait que à chaque étape de l’algorithme les données en entrée d’une TFDsont séparées en une séquence pour les entrées d’indice pair et une autre séquence pour les entrées de rang impair (figure VI.12). L’appellation de “bit-reverse” vient du fait que la place de la donnée (son adresse en mémoire) en entrée de l’algorithme correspond à son indice en base 2 dont on a retourné les poids (110→011).

FIGUREVI.12 – Ordonnancement des données

Cette technique d’adressage est réalisée par l’algorithme de propagation de la retenue à l’envers (Reverse Carry Propagation).

Si les données sont lues dans l’ordre lexicographique(0,1,2,3,· · ·), la première donnée (x(0)) est placée dans la case mémoire 0. L’adresse de la donnée suivante est calculée en rajoutant à l’adresse de la donnée courante la taille de laTFDdivisée par deux.

Mais à la différence d’une addition classique, si il y a une retenue, elle n’est pas propagée vers les poids forts mais vers les poids faibles. Le tableau2.5montre le déroulement de cet algorithme pourTFRde tailleN = 8.

n Ad(x(n+1)) Ad(x(n))

000 RCP(000+100)=100 000

001 RCP(100+100)=010 100

010 RCP(010+100)=110 010

011 RCP(110+100)=001 110

100 RCP(001+100)=101 001

101 RCP(101+100)=011 101

110 RCP(011+100)=111 011

111 111

TABLEVI.3 – Placement des données en mémoire (RCP :Reverse Carry Propagation)

Régularité de l’algorithme

Cet algorithme deTFRest régulier : on peut déterminer un motif de traitement paramétrés par des variables. Cette propriété permet d’obtenir une structure d’implantation générique.

Le traitement à chaque étage (cf figureVI.11) est déterminé par l’écart entre les entrées d’un papillon, le nombre de papillons dans une groupe, les facteurs de rotation associés et le nombre de groupe (cf tableauVI.4)

1erétage 2ndétage 3èmeétage · · · log2(N)èmeétage

Écart entre les entrées 1 2 4 · · · N/2

Nbre de papillons par groupe 1 2 4 · · · N/2

Nbre de groupe N/2 N/4 N/8 · · · 1

Facteur de rotation WN−(N/2)k WN−(N/4)k WN−(N/8)k · · · WN−k k= 0 k= 0,1 k= 0· · ·3 · · · k= 0· · ·N/2−1 TABLEVI.4 – Paramètres de l’algorithme

Implantation séquentielle

Un exemple d’organigramme pour une implantation séquentielle sur une cible tel qu’un processeur de traitement numérique des signaux est montré figureVI.13. Le traitement est organisé en imbriquant trois boucles :

– La plus extérieure sur les étages, – Sur les groupes à l’intérieur d’un étage, – Sur les papillons à l’intérieur d’un groupe.

À chaque entrée dans une boucle, ses paramètres caratéristiques (cf tableauVI.4) sont mis à jour. L’organigramme présenté réalise le calcul en virgule flottante par blocs au niveau de chaque étage.

FIGUREVI.13 – Organigramme d’implantation d’uneTFR

3 Dérivation algébrique de l’algorithme en base 2 avec décimation en temps (P=2 et Q=N/2)

La version la plus répandue de l’algorithme de COOLEY-TUCKEYest celle appliquée à une séquence de longueurN = 2r. À chaque étage, la ou lesTFDsont toujours de longueur paire et peuvent donc être décomposée en 2TFDde longueur moitié et ce jusqu’à ce que l’on arrive à uneTFDde longueur 2.

La séquence d’entrée est divisée en une séquence paire et une séquence impaire, l’expression (VI.1) devient alors :

X(k) =

N 2−1

X

n=0

x(2n)WN−nk 2

+WN−k

N 2−1

X

n=0

x(2n+ 1)WN−nk 2

. (VI.17)

avec

k= 0· · ·N−1.

3.1 1ère étape de l’algorithme

Cette première étape consiste à séparer le calcul d’uneTFD de taille N en le calcul de 2TFDde taille N/2 appliquée chacune sur une version décimée de la séquence d’entrée.

En utilisant l’antisymétrie autour deN/2de l’exponentielle complexe le calcul peut encore être simplifié, en effet : W(k+N2)

N =e−j2πkN e−jπ=−e−j2πkN =−WN−k. Si on note :

Xp(k) =

N 2−1

X

n=0

x(2n)W−nkN 2

(VI.18)

Xi(k) =

N 2−1

X

n=0

x(2n+ 1)W−nkN

2

, (VI.19)

avec

k= 0· · ·N 2 −1.

Le calcul de (VI.17) peut être réalisé par :

(X(k) =Xp(k) +WNkXi(k)

X(k+N/2) =Xp(k)−WN−kXi(k). (VI.20) Cette dernière expression correspond à la structure de calcul en papillon.

Nombre d’opérations

Le calcul des expressions (VI.18) et (VI.19) demande chacune : – (N/2)2’×’ complexes et

– N/2 (N/2−1)’+’ complexes.

L’application du facteur de rotationWNk dans (VI.20) est commun aux deux expressions et demande donc : – N/2’×’ complexes et

La recombinaison des résultats intermédiaires dans (VI.20) demande : – N’+’ complexes.

Soit au total :

– (N/2)2+ (N/2)2+N/2 =N/2 (N+ 1)’×’ complexes, – N/2(N/2−1) +N/2(N/2−1) +N =N2/2’+’ complexes.

On pourra noter que l’on a prit en compte dans ce calcul le fait queQ=N/2facteurs de rotation sont égaux à1.

À partir du moment où le nombre de points d’entrée de chaqueTFDaprès un niveau de décomposition est un multiple de 2, le processus décrit ci-dessus peut être itéré et conduit au graphe représenté figureVI.3

FIGUREVI.14 – 1ère étape de la décomposition

4 Bruit de calcul

Nous allons étudier le bruit de calcul en précision fixe. Dans ce contexte le bruit e(n)introduit au cours de l’algorithme du fait de la limite de précision dans la représentation des données est supposé additif (figureVI.15). On considère ici un bruit introduit en sortie des multiplieurs (ce qui correspond plutôt à une architecture de type circuit où l’on ne conserve en sortie des multiplications que les bits de poids forts).

FIGUREVI.15 – Modèle du bruit de calcul pour l’évaluation d’uneTFR

Le bruit de quantification e(n) est supposé blanc, indépendant des données et de distribution uniforme sur l’intervalle −2,2

où∆est le pas de quantification et correspond à∆ = 2−bsi il y abbits pour représenter les données.

La puissance d’une source de bruit est doncσe2= 2−2b/12. La multiplication représentée figureVI.15étant complexe, elle correspond à quatre multiplications réelles. Les différentes sources de bruit étant supposées non corrélées, la puissance totale du bruit introduit après une multiplication est donc :

σe2m= 4σe2=2−2b

3 . (VI.21)

Le calcul de chaqueX(k)correspondant àNmultiplications, le bruit total pour chaqueX(k)est donc : σe2tot=N σe2m =N

3 2−2b. (VI.22)

4.1 Facteur d’échelle

Le nombre fini de bits pour représenter les données limite d’une part la précision, mais aussi la dynamique représentable. Si on concidère que l’on représente l’intervalle[−1,1]et que le calcul d’uneTFDcorrespond pour chacune des raies fréquentielle

à l’équation :

Pour pouvoir représenter le résultat sans débordement ou saturation, on doit donc avoir la condition

|X(k)|61, (VI.24)

qui est réalisée si on introduit un facteur d’échelle de1/Nsur les données car alors on a X(k) =

Documents relatifs