EP2507720A1 - Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunication - Google Patents
Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunicationInfo
- Publication number
- EP2507720A1 EP2507720A1 EP10801608A EP10801608A EP2507720A1 EP 2507720 A1 EP2507720 A1 EP 2507720A1 EP 10801608 A EP10801608 A EP 10801608A EP 10801608 A EP10801608 A EP 10801608A EP 2507720 A1 EP2507720 A1 EP 2507720A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- modules
- subtraction
- operator
- calculation
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3961—Arrangements of methods for branch or transition metric calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
Definitions
- the present invention relates to a digital data processing processor for executing a direct fast Fourier transform calculation known as FFT. (of English “Fast Fourier Transform”) or inverse fast Fourier transform known as IFFT (of the English “Inverse Fast Fourier Transform”). It also relates to a telecommunication terminal comprising at least one such processor.
- FFT direct fast Fourier transform
- IFFT inverse fast Fourier transform
- telecommunication terminal comprising at least one such processor.
- Such a processor finds use in a large number of telecommunication applications, especially in multi-carrier modulation / demodulation terminals of the transmitted / received signals. Indeed, in this type of terminals, the modulation / demodulation generally and advantageously involves a numerical calculation of FFT / IFFT, especially in the context of software or radio reconfigurable radio SDR (English “Software Defined Radio").
- An SDR transmission / reception terminal is a terminal in which the digital / analogue conversion is closer to the antenna, so that the modulation / demodulation and coding / decoding processes executed by the terminal are carried out. on digital signals. These digital signals are indeed better suited to a reconfigurable treatment, that is to say capable of adapting to different standards or different evolutions.
- a first solution to manage several standards is to juxtapose within the same terminal the different processing chains of standards considered each with their hardware operators. This solution is simple to implement but has the major disadvantage of not being effective in terms of the silicon surface used.
- Another solution is to design the different processing chains so that they share some of their functional modules and hardware operators.
- This second solution provides for a parameterization of the terminal so that its reconfiguration so that it executes such or such chain of treatment requires only a change of parameter values.
- a technique of pooling material operators is presented in the article by L. Alaus et al, entitled “Promising technique of parametrization for reconfigurable radio, the Common Operators Technique: fundamentals and examples", published in Journal of Signal Processing Systems, DOI 10.1007 / S1 1265-009-0353-04, March 14, 2009.
- OFDM modulation is a method of coding orthogonal frequency division digital signals.
- the principle of OFDM modulation consists of multiplexing a communication by distributing it over sub-channels sent simultaneously on independent frequencies.
- the heart of an OFDM modulation includes an FFT calculation.
- the FFT operator is more generally involved as a basic operator of signal reception functions in the frequency domain.
- an FFT operator is used in a frequency implementation of an equalization channel estimation, in a multi-carrier modulation / demodulation and in the execution of a so-called "channelization" function (ie channel selection) on a bench filters.
- This operator can therefore be used at different levels of a processing chain and in the context of different standards. It makes it possible to envisage obtaining a reconfigurable terminal presenting a limited number of hardware operators for calculating FFT.
- the invention relates more precisely to a processor with at least one butterfly operator, fulfilling this FFT operator function by an algorithmic approach called Cooley-Tukey in subdivision type Radix 2.
- a processor is for example described in the patent application published in EP 1 583 533.
- the implementation of such a butterfly operator processor provides that each butterfly operator comprises a complex first multiplication stage and a second addition stage and subtraction complex receiving as input the output data of the first stage, each of these two stages comprising a plurality of add / subtract hardware modules and data transmission links between these modules.
- the first complex multiplication stage further comprises multiplication hardware modules.
- TFF TFF since the FFT operator is not used in channel coding / decoding which is, in addition to the modulation / demodulation, another essential function of the telecommunication transmission / reception terminals, other hardware modules must be added to perform channel coding.
- the channel coding serves to combat the disturbances introduced by the transmission channel by replacing the message to be transmitted by a less vulnerable message, for example by coding this message with a convolutional coder.
- the Viterbi algorithm is then a technique generally used for the decoding of signals processed by convolutional code.
- the subject of the invention is therefore a digital data processing processor comprising at least one butterfly operator for executing a fast Fourier transform calculation, this butterfly operator comprising a complex first multiplication stage and a second stage of complex addition and subtraction receiving the output data of the first stage, each of these two stages comprising a plurality of hardware modules of addition / subtraction and data transmission links between these modules, processor in which at least a part of the add / subtract modules of each stage of the throttle operator and at least a part of the links between these modules are configurable using at least one programmable parameter, between a first configuration in which the throttle operator performs said fast Fourier transform calculation and a second configuration in which the butterfly operator performs a calculation of metrics values of branches and values of metrics of paths and survivors of an implementation of the Viterbi algorithm.
- the FFT computation operating on complex data the obtained processor, configurable between an FFT calculation and a computation of values of branch metrics and values of path and survivor metrics of an implementation of the FFT.
- Viterbi algorithm is able to process input data either hard (binary) or flexible (encoded on several bits) to perform Viterbi decoding.
- the first complex multiplication stage comprises a first level of actual additions / subtractions of input data, a second level of real multiplications made from data provided by the first level and a third level of addition and subtraction made from the data provided by the second level, at least part of the add / subtract modules of the first level of the first complex multiplication stage and at least a part of the links going to or from these modules being configurable to using at least one programmable parameter between a first configuration in which the first level of the first complex multiplication stage performs preliminary operations of addition and / or subtraction organized to limit the number of real multiplications to be performed at the second level and a second configuration in which it performs a calculation of branch metric values of an implementation of the Viterbi algorithm.
- This configuration optimizes the number of hardware modules that can be pooled for both calculations, FFT / IFFT on one side and Viterbi on the other.
- the first level of the first complex multiplication stage comprises four hardware modules of addition and / or subtraction and the second level of the first complex multiplication stage comprises three hardware modules of real multiplication.
- the configurable addition / subtraction modules are configurable, using a single binary parameter, between an adder configuration and a subtractor configuration.
- the configurable links comprise two-input multiplexers and an output and selection of one of the two inputs using said single binary parameter.
- a digital data processing processor comprises:
- a first operator with three combined addition / subtraction modules configurable using at least one programmable parameter between a first configuration in which this first operator realizes the calculation of real parts of coefficients involved in the calculation of Fourier transforms and a second configuration in which it performs a first calculation of path and survivor metric values of an implementation of the Viterbi algorithm, and
- a second operator different from the first operator, to three combined addition / subtraction modules configurable using at least one programmable parameter between a first configuration in which this second operator realizes the calculation of imaginary parts of coefficients involved in the fast Fourier transform calculation and a second configuration in which it performs a second computation of path and survivor metric values of an implementation of the Viterbi algorithm.
- a digital data processing processor comprises a plurality of configurable butterfly operators between said first configuration in which each operator butterfly performs said fast Fourier transform calculation and said second configuration in which each throttle operator performs a calculation of branch metric values and path and survivor metric values of an implementation of the Viterbi algorithm, these operators butterflies being structured together for Fast Fourier Transform computation using a Cooley-Tukey algorithm approach in lattice type Radix-2 and for an implementation of the Viterbi lattice algorithm with four reference symbols.
- the subject of the invention is also a telecommunication terminal with multi-carrier modulation / demodulation of the transmitted / received signals and decoding signals processed by a convolutional code, comprising at least one digital data processing processor as defined above.
- a telecommunication terminal according to the invention is modulating and demodulating OFDM type.
- a telecommunication terminal according to the invention is of multi-standard type, comprising at least one OFDM modulation and demodulation modulator / demodulator compatible with each implemented standard and at least one signal decoder coded by a compatible convolutional code. with each standard implemented.
- FIG. 1 schematically represents the general structure of a lattice data processing network for the implementation of an FFT / IFFT calculation by an algorithmic approach of Cooley-Tukey in subdivision of the Radix 2 type
- FIG. 2 diagrammatically represents the structure of a throttle operator used by the data processing network of FIG. 1,
- FIG. 3 diagrammatically represents the possible implementation in addition / subtraction and multiplication modules of the butterfly operator of FIG. 2,
- FIG. 4 schematically represents the general structure of a data processing chain for an implementation of the Viterbi algorithm
- FIG. 5 schematically represents the structure of a throttle operator used by a part of the data processing chain of FIG. 4,
- FIG. 6 diagrammatically represents the possible implementation in addition / subtraction modules of the butterfly operator of FIG. 5;
- FIGS. 7A and 7B illustrate the configurable pooling of part of the addition / subtraction modules of the implementations of FIGS. 3 and 6,
- FIG. 8 schematically represents the general structure of a throttle processor according to one embodiment of the invention.
- FIG. 9 schematically shows the general structure of a telecommunications terminal according to one embodiment of the invention.
- the Fast Fourier Transform FFT is an algorithm for calculating the discrete Fourier transform. This algorithm is used in digital signal processing to transform discrete data of the time or space domain into the frequency domain.
- N the discrete time value x [0], x [N-1] of a signal x.
- the N frequency values of the discrete Fourier transform X of this signal x are defined by the following formula:
- the IFFT inverse fast Fourier transform is based on the same algorithm as the FFT for calculating this inverse discrete Fourier transform. Any digital data processing processor configured for the execution of a FFT fast FFT calculation is therefore also suitable for the IFFT inverse fast Fourier transform calculation.
- a FFT calculation at a given scale is performed by two FFT calculations at a lower scale, one on even samples, the other on odd samples of the signal at the given scale.
- Each step comprises N / 2 butterfly calculations, for a total number of N / 2 x log 2 (N) butterfly calculations, such as that illustrated in FIG. 2.
- This butterfly calculation requires the cross computation of two data y k [0] and y k [1], having a complex multiplication of one of the data, y k [1], by a factor W to provide an intermediate value, and then a complex addition and subtraction between y k [0] and this intermediate value to provide two data y k + 1 [0] and y k + 1 [1].
- the factor W is w ° wide / step St1, w or w 2 ° wide / step St2 and ° w, w 1, w 2 and w 3 in scale / step St3.
- the butterfly calculation is performed by an operator structured in a first complex multiplication stage and a second complex addition and subtraction stage receiving as input the output data of the first stage.
- the first stage comprises real multiplication hardware modules, hardware modules of actual addition / subtraction and data transmission links between these modules.
- the second stage comprises hardware modules of actual addition / subtraction and data transmission links to these modules.
- the first complex multiplication stage of the throttle operator 10 shown in the left-hand part of FIG. 3, bearing the reference 12, comprises four multiplication modules 14, 16, 18 and 20 for respectively producing the products ad, bc, bd and ac, an addition module 22 receiving the output data of the modules 14 and 16 to produce the sum ad + bc and a subtraction module 24 receiving the output data of the modules 18 and 20 to perform the subtraction ac - bd .
- the complex addition and subtraction second stage of the butterfly operator, bearing the reference 26, comprises:
- an addition module 28 receiving the output data of the module 22 and the variable f to perform the operation ad + bc + f, thus providing the imaginary part denoted FFt-ImO of y k + i [0],
- an addition module 30 receiving the output data of the module 24 and the variable e for carrying out the operation ac - bd + e, thus providing the real part denoted FFt-ReO of y k + i [0],
- a subtraction module 32 receiving the output data of the module 22 and the variable f to carry out the operation - ad - bc + f, thus providing the imaginary part denoted FFt-lm1 of y k + [1], and
- a subtraction module 34 receiving the output data from the module 24 and the variable e to perform the operation bd-ac + e, thus providing the real part denoted FFt-Re1 of y k + 1 [1].
- the first stage 12 'of complex multiplication of the butterfly operator 10' shown in the right portion of FIG. 3 then comprises first of all at a first sequential level:
- a multiplication module 42 receiving the output data of the module 36 and the variable a to perform the operation a (d-c),
- a multiplication module 44 receiving the output data of the module 38 and the variable c to perform the operation c (a + b), and
- a multiplication module 46 receiving the output data from the module 40 and the variable b to perform the operation b (d + c).
- the complex addition and subtraction second stage 26 of the throttle operator is unchanged and provides the FFT-ImO, FFT-ReO, FFT-1m1 and FFT-Re1 values as respective outputs of the modules 28, 30, 32 and 34.
- This algorithm aims to find by recurrence the most likely sequence of states that produced a measured sequence [X 0 , ... , XN-I] in the case of a signal encoded by a convolutional coder, that is to say an encoder comprising a register offset in which each incoming bit generates an offset in the register and an output result.
- a lattice structure is obtained, plotting the set of possible states of the shift register as ordinates and the set of possible transitions as the lattice pattern invariably repeating over time at each new entry. of the encoder.
- At the output of the encoder only certain binary sequences are possible. They correspond to the different paths that exist in the lattice diagram.
- the application of the Viterbi algorithm then consists in finding, in the lattice, the binary sequence closest to the received sequence.
- the progress of the algorithm comprises the following three operations, at each instant and for each state of the lattice:
- branch metrics made by a block 48, consisting in calculating on receipt of N symbols (for a yield of 1 / N) values representing the likelihood of the received symbols with respect to the 2 N possible symbols.
- a calculation of values of path and survivor metrics made by a block 50 consisting of determining the most probable state of the shift register. For each node of the trellis, a path metric representing the cumulative probability for that node to be part of the transmitted sequence is updated taking into account the path metric calculated in the previous cycle and the metric values of current branches. This update includes the calculation of two path metrics and the selection of the weakest (surviving path);
- the block 48 calculates the difference between a received value and the possible outputs of the shift register.
- the block 50 generally called ACS block (for "Addition, Comparison and Selection") performs at each node of the trellis additions of two path metrics with branch metrics, a comparison of the two obtained path metrics and a selection of the weakest.
- Ref-b Bm01
- Ref-d Bm1
- Ref-c Bm10
- Ref-a Bm00
- an addition module 64 receiving the output data of the module 62 and the variable P0 for performing the operation P0 + BmOO
- an addition module 66 receiving the output data of the module 60 and the variable P1 for performing the operation P1 + Bm10
- an addition module 68 receiving the output data of the module 56 and the variable PO for performing the operation PO + Bm01, and
- an addition module 70 receiving the output data of the module 58 and the variable P1 for performing the operation P1 + Bm1 1,
- a subtraction module 72 receiving the output data of the modules 64 and 66 for a comparison of PO + BmOO and P1 + Bm10 making it possible to deduce the value of VitO, and
- a subtraction module 74 receiving the output data of the modules 68 and 70 for a comparison of P0 + Bm01 and P1 + Bm1 1 enabling the value of Vit1 to be deduced therefrom.
- the assembly consisting of the third level of the first complex multiplication stage (modules 22 and 24) associated with the complex second addition and subtraction stage, common to the FFT butterfly operators 10 and 10 ', has two groups of three modules.
- addition / subtraction equipment modules 22, 28 and 32 for the first group and modules 24, 30 and 34 for the second group
- the set consisting of the second and third levels of the Viterbi operator 54 modulees 64 , 66 and 72 for the first group and modules 68, 70 and 74 for the second group).
- the first level of the first stage of complex multiplication (modules 36, 38 and 40) of the throttle operator 10 'of FFT comprises three hardware modules of addition / subtraction which can be used, by setting, for the first level of the Viterbi operator 54 (modules 56, 58, 60 and 62).
- Figure 7A illustrates a possible pooling of modules 22, 28 and 32, on the one hand, and modules 64, 66 and 72, on the other hand. This material pooling appears via a common mathematical representation of the respective inputs and outputs of the two sets of three considered modules.
- Figure 7B illustrates a possible pooling of modules 24, 30 and 34, on the one hand, and modules 68, 70 and 74, on the other hand.
- This material pooling appears via a common mathematical representation of the respective inputs and outputs of the two sets of three considered modules.
- This hardware subtraction module 92 provides S2 (second relation).
- the astute throttle operator structure 10 'of FFT it is possible to pool not only the addition / subtraction modules illustrated in FIGS. 7A and 7B but also the addition / subtraction modules.
- the data processing processor 96 shown schematically in FIG. 8 is obtained.
- This data processing processor 96 has three sequential levels of hardware modules for multiplication or addition / subtraction.
- a first level 98 it comprises four independent add / subtraction hardware modules. This first level is common to the first level (realizing the function of the block 48) of the Viterbi operator 54 and the first level of the first complex multiplication stage of the butterfly operator 10 'of FFT. Three of the hardware modules of addition / subtraction of this first level 98 are common to the calculations of FFT and Viterbi, one is dedicated solely to the calculation of Viterbi.
- a second level 100 it comprises three multiplication hardware modules dedicated solely to the calculation of FFT.
- a third level 102 it comprises the two operators illustrated in FIGS. 7A and 7B.
- This third level is common to the second and third levels (realizing the function of the block 50) of the Viterbi operator 54 and the combination of the third level of the first complex multiplication stage and the second stage of complex addition and subtraction of the 10 'butterfly operator of FFT.
- the first level 98 further comprises a hardware subtraction module
- a first multiplexer 1 32 controlled by the output of the subtraction module 82 selects the smaller of the two values provided by the modules 76 and 78 for calculating Viterbi (Obtaining the VitO value) and a second multiplexer 134 controlled by the output of the module of subtraction 92 selects the smaller of the two values provided by the modules 86 and 88 also for the calculation of Viterbi (Obtaining the value Vit1).
- the shaded elements in the diagram illustrated in FIG. 8 (80, 84, 86, 90, 94, 104, 106, 1 12, 1 14, 1 16, 124, 126, 128, 130) are those which can be parameterized in FIG. help of ⁇ .
- the gain is all the more important since the FFT and Viterbi calculations are generally not performed simultaneously.
- Another advantage of this common structure is to be able to take advantage, in the Viterbi mode, of the fact that the data processed in the FFT mode must be complex and that their real and imaginary parts are in general integer. In Viterbi mode, the processing processor is then able to work with both hard (binary) input data and soft (integer) input data.
- a data processing processor 96 such as that described above is advantageously integrated in a telecommunication terminal 136 with muiti modulation / demodulation carrying transmitted / received signals and decoding signals processed by a convolutional code as illustrated in FIG. 9 .
- ADSL ADSL
- VDSL powerline modem
- Homeplug powerline modem
- Docsis standard cable modem
- FFT Fast Fourier transform
- it can be used for correlation calculations, the genesis of FIR type filters, channel estimation or detection of multiple users.
- the Viterbi algorithm has been extended in previous studies to the decoding of Turbos Codes.
- the proposed common FFT / Viterbi architecture can be used by a majority of telecommunication terminal functions and is not restricted to only channel decoding and modulation / demodulation blocks.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
Abstract
Ce processeur (96) de traitement de données numériques comporte au moins un opérateur papillon pour l'exécution d'un calcul de FFT/IFFT. Cet opérateur papillon comporte un premier étage (12') de multiplication complexe et un second étage (26) d'addition et soustraction complexes. Chacun de ces deux étages comporte une pluralité de modules matériels d'addition/soustraction (104, 108, 110, 114, 76, 78, 82, 86, 88, 92) et de liens de transmission de données entre ces modules. Au moins une partie (104, 114, 86) des modules d'addition/soustraction de chaque étage de l'opérateur papillon et au moins une partie (106, 112, 116, 124, 126, 128, 130, 80, 84, 90, 94) des liens entre ces modules sont configurables à l'aide d'au moins un paramètre programmable, entre une première configuration dans laquelle l'opérateur papillon réalise ledit calcul de FFT/IFFT et une seconde configuration dans laquelle l'opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi.
Description
PROCESSEUR DE TRAITEMENT DE DONNEES NUMERIQUES A OPERATEUR PAPILLON POUR L'EXECUTION D'UNE FFT/IFFT ET TERMINAL DE TELECOMMUNICATION La présente invention concerne un processeur de traitement de données numériques pour l'exécution d'un calcul de transformée de Fourier rapide directe dite FFT (de l'Anglais « Fast Fourier Transform ») ou de transformée de Fourier rapide inverse dite IFFT (de l'Anglais « Inverse Fast Fourier Transform »). Elle concerne également un terminal de télécommunication comportant au moins un tel processeur.
Un tel processeur trouve sont utilité dans un grand nombre d'applications de télécommunication, notamment dans les terminaux à modulation/démodulation multi porteuses des signaux émis/reçus. En effet, dans ce type de terminaux, la modulation/démodulation fait intervenir généralement et avantageusement un calcul numérique de FFT/IFFT, notamment dans le cadre de la radio logicielle ou radio reconfigurable SDR (de l'Anglais « Software Defined Radio »).
Un terminal d'émission/réception de type SDR est un terminal dans lequel la conversion numérique/analogique se fait au plus près de l'antenne, de sorte que les traitements de modulation/démodulation et de codage/décodage exécutés par le terminal se font sur des signaux numériques. Ces signaux numériques se prêtent effectivement mieux à un traitement reconfigurable, c'est-à-dire capable de s'adapter à différentes normes ou à différentes évolutions.
Aujourd'hui par exemple, de nombreuses normes de communication sans fil existent. Une conséquence immédiate de cette prolifération de normes est le besoin grandissant en terminaux capables de gérer des normes différentes. La limitation en capacité de calcul et la consommation électrique excessive des processeurs de traitement du signal programmables font de ces dispositifs une solution mal adaptée pour répondre complètement à ce besoin. Par conséquent une solution purement logicielle n'est pas envisageable et l'utilisation d'opérateurs matériels s'impose.
Une première solution pour gérer plusieurs normes consiste à juxtaposer au sein d'un même terminal les différentes chaînes de traitement des normes considérées comportant chacune leurs opérateurs matériels. Cette solution est simple à implémenter mais présente l'inconvénient majeur de ne pas être efficace en termes de surface de silicium utilisée.
Une autre solution consiste à concevoir les différentes chaînes de traitement de telle sorte qu'elles mettent en commun une partie de leurs modules fonctionnels
et opérateurs matériels. Cette seconde solution prévoit une paramétrisation du terminal de sorte que sa reconfiguration pour qu'il exécute telle ou telle chaîne de traitement ne nécessite qu'un changement de valeurs de paramètres. Notamment, une technique de mise en commun d'opérateurs matériels est présentée dans l'article de L. Alaus et al, intitulé « Promising technique of parametrization for reconfigurable radio, the Common Operators Technique : fundamentals and examples », publié dans Journal of Signal Processing Systems, DOI 10.1007/S1 1265-009-0353-04, le 14 mars 2009.
A titre d'exemple, cet article indique qu'un opérateur matériel de calcul de FFT/IFFT peut être avantageusement mis en commun parce qu'il est sollicité par un grand nombre de normes. En effet, la plupart des normes de télécommunication actuelles ou en préparation sont basées sur des modulations de type OFDM (de l'Anglais « Orthogonal Frequency Division Multiplexing »). La modulation OFDM est un procédé de codage de signaux numériques par répartition en fréquences orthogonales. Le principe de la modulation OFDM consiste à multiplexer une communication en la répartissant sur des sous canaux envoyés simultanément sur des fréquences indépendantes. Le cœur même d'une modulation OFDM comporte un calcul de FFT.
L'opérateur FFT intervient plus généralement en tant qu'opérateur de base de fonctions de réception de signaux dans le domaine fréquentiel. Par exemple, un opérateur FFT est utilisé dans une implémentation fréquentielle d'une estimation de canal par égalisation, dans une modulation/démodulation multi porteuses et dans l'exécution d'une fonction dite de « canalisation » (i.e. sélection de canal) en banc de filtres. Cet opérateur peut donc être utilisé à différents niveaux d'une chaîne de traitement et dans le cadre de différentes normes. Il permet d'envisager l'obtention d'un terminal reconfigurable présentant un nombre limité d'opérateurs matériels de calcul de FFT.
L'invention concerne plus précisément un processeur à au moins un opérateur papillon, remplissant cette fonction d'opérateur FFT par une approche algorithmique dite de Cooley-Tukey en subdivision de type Radix 2. Un tel processeur est par exemple décrit dans la demande de brevet européen publiée sous le numéro EP 1 583 533. En général, l'implémentation d'un tel processeur à opérateur(s) papillon(s) prévoit que chaque opérateur papillon comporte un premier étage de multiplication complexe et un second étage d'addition et soustraction complexes recevant en entrée les données de sorties du premier étage, chacun de
ces deux étages comportant une pluralité de modules matériels d'addition/soustraction et de liens de transmission de données entre ces modules. Le premier étage de multiplication complexe comporte en outre des modules matériels de multiplication.
Ces modules matériels sont propres à l'implémentation précitée de l'opérateur
FFT. Notamment, puisque l'opérateur FFT n'est pas utilisé en codage/décodage de canal qui est, outre la modulation/démodulation, une autre fonction essentielle des terminaux d'émission/réception en télécommunication, d'autres modules matériels doivent être ajoutés pour réaliser le codage de canal.
Or la majorité des normes impose un procédé de codage de canal pour assurer une fiabilité des données transmises. En effet, le codage de canal sert à lutter contre les perturbations apportées par le canal de transmission en remplaçant le message à transmettre par un message moins vulnérable, par exemple en codant ce message avec un codeur convolutif. L'algorithme de Viterbi est alors une technique généralement utilisée pour le décodage de signaux traités par code convolutif.
L'implémentation de cette technique dans un terminal d'émission/réception de type SDR augmente sensiblement sa complexité parce qu'elle nécessite des modules matériels et un processeur spécifiques.
II peut ainsi être souhaité de prévoir un processeur de traitement de données qui permette de résoudre au moins partiellement les problèmes et contraintes précités et/ou d'améliorer la reconfigurabilité d'un terminal.
L'invention a donc pour objet un processeur de traitement de données numériques comportant au moins un opérateur papillon pour l'exécution d'un calcul de transformée de Fourier rapide, cet opérateur papillon comportant un premier étage de multiplication complexe et un second étage d'addition et soustraction complexes recevant en entrée les données de sorties du premier étage, chacun de ces deux étages comportant une pluralité de modules matériels d'addition/soustraction et de liens de transmission de données entre ces modules, processeur dans lequel au moins une partie des modules d'addition/soustraction de chaque étage de l'opérateur papillon et au moins une partie des liens entre ces modules sont configurables à l'aide d'au moins un paramètre programmable, entre une première configuration dans laquelle l'opérateur papillon réalise ledit calcul de transformée de Fourier rapide et une seconde configuration dans laquelle l'opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de
métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi.
L'idée originale exploitée par l'invention provient du constat que l'implémentation par opérateur(s) papillons du calcul de FFT ressemble à une implémentation possible du calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants de l'algorithme de Viterbi. Cette implémentation à schéma de papillon de l'algorithme de Viterbi fait apparaître une mise en commun possible de plusieurs modules matériels d'addition/soustraction utilisés dans les étages de multiplication complexe et d'addition et soustraction complexes d'un processeur de calcul de FFT à opérateurs papillons. Ainsi, en paramétrant ces modules d'addition/soustraction et les liens entre eux, il devient envisageable de concevoir un unique processeur de traitement de données numériques capable, selon son paramétrage, de réaliser un calcul de FFT à opérateurs papillons en radix 2 et un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. Les fonctions de modulation/démodulation et de codage/décodage canal peuvent ainsi être remplies dans un même terminal sur la base d'opérateurs matériels communs, limitant d'autant le nombre et la taille des éléments matériels à intégrer dans le terminal.
En outre, le calcul de FFT s'opérant sur des données complexes, le processeur obtenu, configurable entre un calcul de FFT et un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, est capable de traiter des données d'entrée soit dures (binaires) soit souples (codées sur plusieurs bits) pour réaliser le décodage de Viterbi.
De façon optionnelle, le premier étage de multiplication complexe comporte un premier niveau d'additions/soustractions réelles de données d'entrées, un deuxième niveau de multiplications réelles réalisées à partir de données fournies par le premier niveau et un troisième niveau d'addition et soustraction réelles réalisées à partir des données fournies par le deuxième niveau, au moins une partie des modules d'addition/soustraction du premier niveau du premier étage de multiplication complexe et au moins une partie des liens allant vers ou partant de ces modules étant configurables à l'aide d'au moins un paramètre programmable entre une première configuration dans laquelle le premier niveau du premier étage de multiplication complexe réalise des opérations préalables d'addition et/ou
soustraction organisées pour limiter le nombre de multiplications réelles à exécuter au deuxième niveau et une seconde configuration dans laquelle il réalise un calcul de valeurs de métriques de branches d'une implémentation de l'algorithme de Viterbi.
Cette configuration optimise le nombre de modules matériels pouvant être mis en commun pour les deux calculs, FFT/IFFT d'un côté et Viterbi de l'autre.
De façon optionnelle également, le premier niveau du premier étage de multiplication complexe comporte quatre modules matériels d'addition et/ou soustraction et le deuxième niveau du premier étage de multiplication complexe comporte trois modules matériels de multiplication réelle.
De façon optionnelle également, les modules d'addition/soustraction configurables sont configurables, à l'aide d'un unique paramètre binaire, entre une configuration d'additionneur et une configuration de soustracteur.
De façon optionnelle également, les liens configurables comportent des multiplexeurs à deux entrées et une sortie et à sélection de l'une des deux entrées à l'aide dudit unique paramètre binaire.
De façon optionnelle également, un processeur de traitement de données numériques selon l'invention comporte :
- un premier opérateur à trois modules combinés d'addition/soustraction configurable à l'aide d'au moins un paramètre programmable entre une première configuration dans laquelle ce premier opérateur réalise le calcul de parties réelles de coefficients impliqués dans le calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un premier calcul de valeurs de métriques de chemins et de survivant d'une implémentation de l'algorithme de Viterbi, et
- un second opérateur, différent du premier opérateur, à trois modules combinés d'addition/soustraction configurable à l'aide d'au moins un paramètre programmable entre une première configuration dans laquelle ce second opérateur réalise le calcul de parties imaginaires de coefficients impliqués dans le calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un second calcul de valeurs de métriques de chemins et de survivant d'une implémentation de l'algorithme de Viterbi.
De façon optionnelle également, un processeur de traitement de données numériques selon l'invention comporte une pluralité d'opérateurs papillons configurables entre ladite première configuration dans laquelle chaque opérateur
papillon réalise ledit calcul de transformée de Fourier rapide et ladite seconde configuration dans laquelle chaque opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, ces opérateurs papillons étant structurés entre eux pour un calcul de transformée de Fourier rapide par une approche algorithmique de Cooley-Tukey en treillis de type Radix-2 et pour une implémentation de l'algorithme de Viterbi en treillis à quatre symboles de référence.
L'invention a également pour objet un terminal de télécommunication à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif, comportant au moins un processeur de traitement de données numériques tel que défini précédemment.
De façon optionnelle, un terminal de télécommunication selon l'invention est à modulation et démodulation de type OFDM.
De façon optionnelle également, un terminal de télécommunication selon l'invention est de type multi-normes, comportant au moins un modulateur/démodulateur à modulation et démodulation OFDM compatible avec chaque norme implémentée et au moins un décodeur de signal codé par un code convolutif compatible avec chaque norme implémentée.
L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels :
- la figure 1 représente schématiquement la structure générale d'un réseau de traitement de données en treillis pour l'implémentation d'un calcul de FFT/IFFT par une approche algorithmique de Cooley-Tukey en subdivision de type Radix 2,
- la figure 2 représente schématiquement la structure d'un opérateur papillon utilisé par le réseau de traitement de données de la figure 1 ,
- la figure 3 représente schématiquement l'implémentation possible en modules d'addition/soustraction et de multiplication de l'opérateur papillon de la figure 2,
- la figure 4 représente schématiquement la structure générale d'une chaîne de traitement de données pour une implémentation de l'algorithme de Viterbi,
- la figure 5 représente schématiquement la structure d'un opérateur papillon utilisé par une partie de la chaîne de traitement de données de la figure 4,
- la figure 6 représente schématiquement l'implémentation possible en modules d'addition/soustraction de l'opérateur papillon de la figure 5,
- les figures 7A et 7B illustrent la mise en commun configurable d'une partie des modules d'addition/soustraction des implémentations des figures 3 et 6,
- la figure 8 représente schématiquement la structure générale d'un processeur à opérateur papillon selon un mode de réalisation de l'invention, et
- la figure 9 représente schématiquement la structure générale d'un terminal de télécommunication selon un mode de réalisation de l'invention.
La transformée de Fourier rapide directe FFT est un algorithme de calcul de la transformée de Fourier discrète. Cet algorithme est utilisé en traitement numérique du signal pour transformer des données discrètes du domaine temporel ou spatial dans le domaine fréquentiel.
Soient par exemple N valeur temporelles discrètes x[0], x[N-1 ] d'un signal x. Les N valeurs fréquentielles de la transformée de Fourier discrète X de ce signal x sont définies par la formule suivante :
îv-i -π
X[k] =∑x[n].wkn , pour k = 0, N-1 , où w = e N .
La transformée de Fourier discrète inverse étant équivalente à la transformée de Fourier discrète directe, à un signe et facteur 1 /N près, la transformée de Fourrier rapide inverse IFFT repose sur le même algorithme que la FFT pour calculer cette transformée de Fourier discrète inverse. Tout processeur de traitement de données numériques configuré pour l'exécution d'un calcul de transformée de Fourier rapide directe FFT est donc également apte au calcul de transformée de Fourier rapide inverse IFFT.
Une implémentation particulièrement simple et très utilisée du calcul de FFT est l'approche algorithmique de Cooley-Tukey en subdivision de type Radix 2. Elle suppose que le nombre N d'échantillons transformés soit une puissance de deux et subdivise de façon récursive le traitement de n échantillons en deux traitements identiques de taille n/2 à une échelle inférieure. En effet, à une première échelle :
X[k] =∑x[n].e w =∑ 2«k w +∑ 2«+lk w
«=0 «=0 «=0
X[fc] = ∑ 2«k w 2 + e w ∑ x[2n + l]e Nl2 ,
n=0 n=0
N/ 2-l i 2π rJ, NI 2-1 i 2π rJ,
X[k] = ∑ x[2n].e N/2 + wk ∑ x[2n + l]e N/2
n=0 n=0
De façon récurrente, un calcul de FFT à une échelle donnée est réalisé par deux calculs de FFT à une échelle inférieure, l'un portant sur les échantillons pairs, l'autre sur les échantillons impairs du signal à l'échelle donnée.
A l'aide de simplifications supplémentaires bien connues, on obtient ainsi un traitement en treillis à plusieurs échelles (ou niveaux) impliquant autant d'étapes successives, tel qu'il est illustré sur la figure 1 pour N = 8 impliquant trois étapes St1 , St2 et St3.
Chaque étape comporte N/2 calculs en papillon, pour un nombre total de N/2 x log2(N) calculs en papillon, tels que celui illustré sur la figure 2. Ce calcul en papillon nécessite le calcul croisé de deux données yk[0] et yk[1 ], comportant une multiplication complexe de l'une des données, yk[1 ], par un facteur W pour fournir une valeur intermédiaire, puis une addition et une soustraction complexes entre yk[0] et cette valeur intermédiaire pour fournir deux données yk+1[0] et yk+1 [1 ]. Dans l'exemple illustré sur la figure 1 , le facteur W vaut w° à l'échelle/étape St1 , w° ou w2 à l'échelle/étape St2 et w°, w1 , w2 ou w3 à l'échelle/étape St3.
Les deux relations liant yk+i [0] et yk+i[1 ] à yk[0] et yk[1 ] prennent la forme suivante :
En pratique, le calcul en papillon est réalisé par un opérateur structuré en un premier étage de multiplication complexe et un second étage d'addition et soustraction complexes recevant en entrée les données de sorties du premier étage. Pour réaliser sa multiplication complexe, le premier étage comporte des modules matériels de multiplication réelle, des modules matériels d'addition/soustraction réelle et des liens de transmission de données entre ces modules. Pour réaliser son addition et sa soustraction complexes, le second étage comporte des modules matériels d'addition/soustraction réelle et des liens de transmission de données vers ces modules.
Plus précisément, en notant :
yk [l] = α + ib,
W = c + id,
yk [0] = e + if,
où a, b, c, d, e et f sont des valeurs réelles, on fait apparaître le besoin en modules matériels de multiplication, addition et soustraction réelles :
yk+l [θ] = (ac - bd + e) + i(bc + ad + f),
yk+l [l] = (-ac + bd + e) + i(—bc - ad + f).
Sous cette forme simple, le calcul réalisé par un opérateur papillon nécessite quatre modules matériels de multiplication réelle, trois modules matériels d'addition réelle et trois modules matériels de soustraction réelle, comme cela est représenté en partie gauche de la figure 3.
Plus précisément, le premier étage de multiplication complexe de l'opérateur papillon 10 représenté en partie gauche de la figure 3, portant la référence 12, comporte quatre modules de multiplication 14, 16, 18 et 20 pour réaliser respectivement les produits ad, bc, bd et ac, un module d'addition 22 recevant les données de sortie des modules 14 et 16 pour réaliser la somme ad + bc et un module de soustraction 24 recevant les données de sortie des modules 18 et 20 pour réaliser la soustraction ac - bd.
Le second étage d'addition et soustraction complexes de l'opérateur papillon, portant la référence 26, comporte :
- un module d'addition 28 recevant la donnée de sortie du module 22 et la variable f pour réaliser l'opération ad + bc + f, fournissant ainsi la partie imaginaire notée FFt-ImO de yk+i[0],
- un module d'addition 30 recevant la donnée de sortie du module 24 et la variable e pour réaliser l'opération ac - bd + e, fournissant ainsi la partie réelle notée FFt-ReO de yk+i[0],
- un module de soustraction 32 recevant la donnée de sortie du module 22 et la variable f pour réaliser l'opération - ad - bc + f, fournissant ainsi la partie imaginaire notée FFt-lm1 de yk+ [1 ], et
- un module de soustraction 34 recevant la donnée de sortie du module 24 et la variable e pour réaliser l'opération bd - ac + e, fournissant ainsi la partie réelle notée FFt-Re1 de yk+1[1 ].
Sous une forme plus étendue qui va s'avérer plus astucieuse par la suite, le calcul réalisé par un opérateur papillon peut ne nécessiter que trois modules matériels de multiplication réelle, mais utilise alors cinq modules matériels d'addition
réelle et quatre modules matériels de soustraction réelle, comme cela est représenté en partie droite de la figure 3. Cette forme plus étendue exprime yk+1[0] et yk+1 [1 ] de la façon équivalente suivante :
yk+l [θ] = [c(a + b) - b(d + c) + e] + i[c(a + b) + a(d - c) + f],
/t+i [l] = i-c(a + b) + b(d + c) + e] + i[-c(a + b) - a(d - c) + f].
Plus précisément, le premier étage 12' de multiplication complexe de l'opérateur papillon 10' représenté en partie droite de la figure 3 comporte alors tout d'abord à un premier niveau séquentiel :
- un module de soustraction 36 pour réaliser l'opération d-c,
- un module d'addition 38 pour réaliser l'opération a+b, et
- un module d'addition 40 pour réaliser l'opération d+c.
Il comporte ensuite à un deuxième niveau séquentiel :
- un module de multiplication 42 recevant la donnée de sortie du module 36 et la variable a pour réaliser l'opération a(d-c),
- un module de multiplication 44 recevant la donnée de sortie du module 38 et la variable c pour réaliser l'opération c(a+b), et
- un module de multiplication 46 recevant la donnée de sortie du module 40 et la variable b pour réaliser l'opération b(d+c).
Enfin, il comporte à un troisième niveau séquentiel :
- un module d'addition tel que le module 22 recevant les données de sortie des modules 42 et 44 pour réaliser l'opération a(d-c)+c(a+b) = ad+bc, et
- un module de soustraction tel que le module 24 recevant les données de sortie des modules 44 et 46 pour réaliser l'opération c(a+b)-b(d+c) = ac-bd.
Le second étage 26 d'addition et soustraction complexes de l'opérateur papillon est inchangé et fournit les valeurs FFT-ImO, FFT-ReO, FFT-lm1 et FFT-Re1 en sorties respectives des modules 28, 30, 32 et 34.
Il apparaît donc clairement que les deux structures d'opérateur papillon 10 et 10' illustrées sur la figure 3 sont équivalentes en termes de calcul effectué pour la réalisation d'un calcul de FFT.
La structure générale d'une chaîne de traitement de données pour une implémentation de l'algorithme de Viterbi est représentée sur la figure 4.
Cet algorithme a pour but de trouver par récurrence la séquence d'états la plus probable ayant produit une séquence mesurée [X0, .. . , XN-I] dans le cas d'un signal codé par un codeur convolutif, c'est-à-dire un codeur comportant un registre à
décalage dans lequel chaque bit entrant génère un décalage dans le registre et un résultat en sortie.
Son principe est de comparer chaque valeur reçue avec toutes les sorties possibles du registre à décalage de manière à déterminer quel a été le décalage de ce registre le plus probable qui a engendré la valeur reçue. La connaissance de ce décalage permet de connaître la valeur qui l'a provoqué et par conséquent la valeur génératrice du message reçu.
Pour chaque valeur de message reçu, on obtient une structure en treillis reportant en ordonnée l'ensemble des états possibles du registre à décalages et en abscisse l'ensemble des transitions possibles, le motif du treillis se répétant invariablement dans le temps à chaque nouvelle entrée du codeur. En sortie du codeur, seules certaines séquences binaires sont possibles. Elles correspondent aux différents chemins qui existent dans le diagramme en treillis.
L'application de l'algorithme de Viterbi consiste alors à rechercher, dans le treillis, la séquence binaire la plus proche de la séquence reçue. En pratique, le déroulement de l'algorithme comporte les trois opérations suivantes, à chaque instant et pour chaque état du treillis :
- un calcul de valeurs de métriques de branches réalisé par un bloc 48, consistant à calculer à la réception de N symboles (pour un rendement de 1 /N) des valeurs représentant la vraisemblance des symboles reçus par rapport aux 2N symboles possibles. Ces 2N valeurs sont appelées les métriques de branches et notées BmOO, Bm01 , Bm10 et Bm1 1 pour N = 2 ;
- un calcul de valeurs de métriques de chemins et de survivants réalisé par un bloc 50, consistant à déterminer l'état le plus probable du registre à décalage. Pour chaque nœud du treillis, une métrique de chemin représentant la probabilité cumulée pour ce nœud de faire partie de la séquence émise est mise à jour en tenant compte de la métrique de chemin calculée au cycle précédent et des valeurs de métriques de branches courantes. Cette mise à jour comporte le calcul de deux métriques de chemins et la sélection de la plus faible (chemin survivant) ;
- une mémorisation du bit de décision réalisée par un bloc 52, en vue de restituer le signal décodé en fin de trame par une technique de remontée des survivants.
Concrètement, le bloc 48 calcule la différence entre une valeur reçue et les sorties possibles du registre à décalage.
Le bloc 50, généralement qualifié de bloc ACS (pour « Addition, Comparaison et Sélection ») réalise à chaque nœud du treillis des additions de deux métriques de chemins avec les métriques de branches, une comparaison des deux métriques de chemins obtenues et une sélection de la plus faible.
Pour un calcul sur la base de quatre métriques de branches possibles BmOO, Bm01 , Bm10 et Bm1 1 calculées par le bloc 48, on peut ainsi faire apparaître un opérateur papillon tel que celui représenté sur la figure 5, pour le calcul des deux métriques de chemins suivantes :
Pmk [t + l] = VitO = Min(Pmk [t]+ BmOO, Pmk+l [t] + BmlO),
Pmk+N/2 [t + 1] = Vitï = Min(Pmk [t] + BmOÏ, Pmk+l [t] + Bmï 1).
En considérant que la détection d'un minimum par comparaison de deux valeurs peut être réalisée à l'aide d'un soustracteur couplé à un multiplexeur, on note que cet opérateur papillon nécessite, pour réaliser les calculs des blocs 48 et 50, à savoir un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi :
- pour chacun des deux calculs de valeurs de métriques de chemins et de survivants, deux modules matériels d'addition et un module matériel de soustraction,
- quatre modules matériels de soustraction supplémentaires pour le calcul des quatre valeurs de métriques de branches BmOO, Bm01 , Bm10 et Bm1 1 .
En tout, dix modules matériels d'addition/soustraction sont utilisés par cet opérateur papillon, comme cela est représenté sur la figure 6. Si l'on note P0 et P1 les deux métriques de chemins calculées au cycle précédent, Ref la valeur reçue et a, b, c, d les quatre valeurs de sortie possibles, alors l'opérateur papillon 54 illustré sur la figure 6 comporte à un premier niveau séquentiel :
- quatre modules de soustraction 56, 58, 60 et 62 pour réaliser respectivement les opérations Ref-b = Bm01 , Ref-d = Bm1 1 , Ref-c = Bm10 et Ref-a = BmOO,
à un deuxième niveau séquentiel :
- un module d'addition 64 recevant la donnée de sortie du module 62 et la variable P0 pour réaliser l'opération P0 + BmOO,
- un module d'addition 66 recevant la donnée de sortie du module 60 et la variable P1 pour réaliser l'opération P1 + Bm10,
- un module d'addition 68 recevant la donnée de sortie du module 56 et la variable PO pour réaliser l'opération PO + Bm01 , et
- un module d'addition 70 recevant la donnée de sortie du module 58 et la variable P1 pour réaliser l'opération P1 + Bm1 1 ,
et à un troisième niveau séquentiel :
- un module de soustraction 72 recevant les données de sorties des modules 64 et 66 pour une comparaison de PO + BmOO et P1 + Bm10 permettant d'en déduire la valeur de VitO, et
- un module de soustraction 74 recevant les données de sorties des modules 68 et 70 pour une comparaison de P0 + Bm01 et P1 + Bm1 1 permettant d'en déduire la valeur de Vit1 .
Il apparaît alors que les structures en papillon des opérateurs papillons 10 et 10' de FFT, d'une part, et de l'opérateur Viterbi 54, d'autre part, impliquent des configurations matérielles permettant d'envisager une mise en commun d'une partie de leurs modules matériels d'addition/soustraction et des liens entre ces modules, moyennant un paramétrage de certains modules d'addition/soustraction et des liens à l'aide de multiplexeurs par exemple.
En particulier, l'ensemble constitué du troisième niveau du premier étage de multiplication complexe (modules 22 et 24) associé au second étage d'addition et soustraction complexes, commun aux opérateurs papillons 10 et 10' de FFT, présente deux groupes de trois modules matériels d'addition/soustraction (modules 22, 28 et 32 pour le premier groupe et modules 24, 30 et 34 pour le second groupe), tout comme l'ensemble constitué des deuxième et troisième niveaux de l'opérateur Viterbi 54 (modules 64, 66 et 72 pour le premier groupe et modules 68, 70 et 74 pour le second groupe).
Plus astucieusement encore, le premier niveau du premier étage de multiplication complexe (modules 36, 38 et 40) de l'opérateur papillon 10' de FFT comporte trois modules matériels d'addition/soustraction qui peuvent être utilisés, moyennant paramétrage, pour le premier niveau de l'opérateur Viterbi 54 (modules 56, 58, 60 et 62).
Dans un premier temps, la figure 7A illustre une mise en commun possible des modules 22, 28 et 32, d'une part, et des modules 64, 66 et 72, d'autre part. Cette
mise en commun matérielle apparaît via une représentation mathématique commune des entrées et sorties respectives des deux ensembles de trois modules considérés.
Ainsi, si l'on considère les modules 64, 66 et 72 de l'opérateur Viterbi 54, en notant E1 (Ref-c) et E2 (P1 ) les deux entrées du module d'addition 66, E3 (Ref-a) et E4 (PO) les deux entrées du module d'addition 64, S1 (P0+Bm00) la sortie du module d'addition 64, S2 (P0+Bm00-(P1 +Bm10)) la sortie du module de soustraction 72 et S3 (P1 +Bm10) la sortie du module d'addition 66, on obtient le jeu de relations suivantes :
Si l'on considère maintenant les modules 22, 28 et 32 de l'opérateur papillon
10 ou 10' de FFT, en notant E1 (bc pour l'opérateur 10 ou c(a+b) pour l'opérateur 10') et E2 (ad pour l'opérateur 10 ou a(d-c) pour l'opérateur 10') les deux entrées du module d'addition 22, E4 (f) l'une des deux entrées du module d'addition 28 (ou du module de soustraction 32) l'autre étant la sortie du module 22, S1 (FFT-ImO) la sortie du module d'addition 28, S2 (FFT-lm1 ) la sortie du module de soustraction 32 et S3 la sortie du module d'addition 22, on obtient le jeu de relations suivantes :
A partir de ces deux jeux de relations, on peut en déduire un troisième, commun aux deux opérateurs FFT et Viterbi, à un paramètre β près :
De ce troisième jeu de relations, on déduit l'opérateur commun 75 illustré sur la figure 7A. Cet opérateur comporte un module matériel d'addition 76 recevant E1 et E2 et fournissant S3 (troisième relation). Il comporte en outre un module matériel d'addition 78 recevant E4 et la sortie d'un multiplexeur 80, commandé en fonction de la valeur du paramètre β, fournissant S3 (β =1 ) ou E3 (β =0). Ce module matériel d'addition 78 fournit S1 (première relation). Enfin, il comporte un module matériel de soustraction 82 recevant S3 et la sortie d'un multiplexeur 84, commandé en fonction
de la valeur du paramètre β, fournissant E4 (β =1 ) ou S1 {β =0). Ce module matériel de soustraction 82 fournit S2 (deuxième relation).
On observe que le module d'addition 76 de l'opérateur commun 75 remplit la fonction du module 22 lorsque β =1 et celle du module 66 lorsque β =0 ; le module d'addition 78 de l'opérateur commun 75 remplit la fonction du module 28 lorsque β =1 et celle du module 64 lorsque β =0 ; le module de soustraction 82 de l'opérateur commun 75 remplit la fonction du module 32 lorsque β =1 et celle du module 72 lorsque β =0.
De façon analogue, la figure 7B illustre une mise en commun possible des modules 24, 30 et 34, d'une part, et des modules 68, 70 et 74, d'autre part. Cette mise en commun matérielle apparaît via une représentation mathématique commune des entrées et sorties respectives des deux ensembles de trois modules considérés.
Ainsi, si l'on considère les modules 68, 70 et 74 de l'opérateur Viterbi 54, en notant E1 (Ref-d) et E2 (P1 ) les deux entrées du module d'addition 70, E3 (Ref-b) et E4 (P0) les deux entrées du module d'addition 68, S1 (P0+Bm01 ) la sortie du module d'addition 68, S2 (P0+Bm01 -(P1 +Bm1 1 )) la sortie du module de soustraction 74 et S3 (P1 +Bm1 1 ) la sortie du module d'addition 70, on obtient le jeu de relations suivantes :
Si l'on considère maintenant les modules 24, 30 et 34 de l'opérateur papillon
10 ou 10' de FFT, en notant E1 (bd pour l'opérateur 10 ou b(d+c) pour l'opérateur 10') et E2 (ac pour l'opérateur 10 ou c(a+b) pour l'opérateur 10') les deux entrées du module de soustraction 24, E4 (e) l'une des deux entrées du module d'addition 30 (ou du module de soustraction 34) l'autre étant la sortie du module 24, S1 (FFT-ReO) la sortie du module d'addition 30, S2 (FFT-Re1 ) la sortie du module de soustraction 34 et S3 la sortie du module de soustraction 24, on obtient le jeu de relations suivantes :
A partir de ces deux jeux de relations, on peut en déduire un troisième, commun aux deux opérateurs FFT et Viterbi, à un paramètre β près :
Ξ1 = - - β)Ε3 + βΞ3 + Ε4,
< S2 = (l - fi)Sl + 0E4 - S3,
De ce troisième jeu de relations, on déduit un opérateur commun 85 illustré sur la figure 7B. Cet opérateur comporte un module matériel d'addition/soustraction paramétrable 86 recevant E1 et E2 et fournissant S3 (troisième relation). Plus précisément ce module paramétrable 86 est conçu pour fonctionner en additionneur (E1 +E2) lorsque β =0 et en soustracteur (E2-E1 ) lorsque β =1 . Il comporte en outre un module matériel d'addition 88 recevant E4 et la sortie d'un multiplexeur 90, commandé en fonction de la valeur du paramètre β, fournissant S3 (β =1 ) ou E3 (β =0). Ce module matériel d'addition 88 fournit S1 (première relation). Enfin, il comporte un module matériel de soustraction 92 recevant S3 et la sortie d'un multiplexeur 94, commandé en fonction de la valeur du paramètre β, fournissant E4 (β =1 ) ou S1 (β =0). Ce module matériel de soustraction 92 fournit S2 (deuxième relation).
On observe que le module d'addition/soustraction paramétrable 86 de l'opérateur commun 85 remplit la fonction du module 24 lorsque β =1 et celle du module 70 lorsque β =0 ; le module d'addition 88 de l'opérateur commun 85 remplit la fonction du module 30 lorsque β =1 et celle du module 68 lorsque β =0 ; le module de soustraction 92 de l'opérateur commun 85 remplit la fonction du module 34 lorsque β =1 et celle du module 74 lorsque β =0.
A partir des opérateurs communs illustrés sur les figures 7A et 7B, il est possible de concevoir un processeur de traitement de données comportant au moins un opérateur papillon commun paramétrable (à l'aide même du seul paramètre β) capable d'exécuter un calcul de transformée de Fourier rapide dans une première configuration (β =1 ) et un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi dans une seconde configuration (β =0).
En se basant en outre sur la structure astucieuse d'opérateur papillon 10' de FFT, il est possible de mettre en commun non seulement les modules d'addition/soustraction illustrés sur les figures 7A et 7B mais également les modules d'addition/soustraction du premier niveau du premier étage de multiplication complexe (modules 36, 38 et 40) de l'opérateur papillon 10' de FFT et ceux du premier niveau de l'opérateur Viterbi 54 (modules 56, 58, 60 et 62).
On obtient ainsi par exemple le processeur de traitement de données 96 représenté schématiquement sur la figure 8.
Ce processeur de traitement de données 96 comporte trois niveaux séquentiels de modules matériels de multiplication ou d'addition/soustraction.
A un premier niveau 98, il comporte quatre modules matériels d'addition/soustraction indépendants. Ce premier niveau est commun au premier niveau (réalisant la fonction du bloc 48) de l'opérateur Viterbi 54 et au premier niveau du premier étage de multiplication complexe de l'opérateur papillon 10' de FFT. Trois des modules matériels d'addition/soustraction de ce premier niveau 98 sont communs aux calculs de FFT et de Viterbi, un est dédié uniquement au calcul de Viterbi.
A un deuxième niveau 100, il comporte trois modules matériels de multiplication dédiés uniquement au calcul de FFT.
A un troisième niveau 102, il comporte les deux opérateurs illustrés sur les figures 7A et 7B. Ce troisième niveau est commun aux deuxième et troisième niveaux (réalisant la fonction du bloc 50) de l'opérateur Viterbi 54 et à la combinaison du troisième niveau du premier étage de multiplication complexe et du second étage d'addition et soustraction complexes de l'opérateur papillon 10' de FFT.
Plus précisément, le premier niveau 98 comporte un module matériel d'addition/soustraction paramétrable 104 recevant la valeur a et la sortie d'un multiplexeur 106, commandé en fonction de la valeur du paramètre β, fournissant b (β =1 ) ou Ref (β =0). Plus précisément ce module paramétrable 104 est conçu pour fonctionner en additionneur lorsque β=λ et en soustracteur lorsque β=0. Il fournit ainsi a+b lorsque β=λ et Ref-a lorsque β=0.
Le premier niveau 98 comporte en outre un module matériel de soustraction
108 recevant b et Ref pour fournir Ref-b.
Le premier niveau 98 comporte en outre un module matériel de soustraction 1 10 recevant la valeur c et la sortie d'un multiplexeur 1 12, commandé en fonction de la valeur du paramètre β, fournissant d (β =1 ) ou Ref (β =0). Ce module 1 10 fournit ainsi d-c lorsque β=λ et Ref-c lorsque β=0.
Enfin, le premier niveau 98 comporte un module matériel d'addition/soustraction paramétrable 1 14 recevant la valeur d et la sortie d'un multiplexeur 1 16, commandé en fonction de la valeur du paramètre β, fournissant c (β =1 ) ou Ref (β =0). Plus précisément ce module paramétrable 1 14 est conçu pour
fonctionner en additionneur lorsque β=λ et en soustracteur lorsque β=0. Il fournit ainsi c+d lorsque β=λ et Ref-d lorsque β=0.
Le deuxième niveau 1 00, sollicité uniquement pour le calcul de FFT (/3=1 ), comporte :
- un premier module matériel de multiplication 1 18 recevant la valeur a et la sortie du module de soustraction 1 1 0 pour fournir, lorsque β=λ , la valeur a(d-c),
- un deuxième module matériel de multiplication 1 20 recevant la valeur b et la sortie du module d'addition/soustraction paramétrable 1 14 pour fournir, lorsque β=λ , la valeur b(d+c), et
- un troisième module matériel de multiplication 122 recevant la valeur c et la sortie du module d'addition/soustraction paramétrable 104 pour fournir, lorsque β=λ , la valeur c(a+b).
Le module d'addition 76 du troisième niveau 102 reçoit la sortie d'un multiplexeur 1 24, commandé en fonction de la valeur du paramètre β, fournissant la sortie a(d-c) du module de multiplication 1 18 (β =1 ) ou P0 (β =0), et la sortie d'un multiplexeur 1 26, commandé en fonction de la valeur du paramètre β, fournissant la sortie c(a+b) du module de multiplication 1 22 (β =1 ) ou la sortie Ref-a du module d'addition/soustraction paramétrable 104 (β =0).
Le module d'addition/soustraction paramétrable 86 du troisième niveau 102 reçoit la sortie d'un multiplexeur 128, commandé en fonction de la valeur du paramètre β, fournissant la sortie b(d+c) du module de multiplication 1 20 (β =1 ) ou la sortie Ref-b du module de soustraction 108 (β =0), et la sortie d'un multiplexeur 130, commandé en fonction de la valeur du paramètre β, fournissant la sortie c(a+b) du module de multiplication 1 22 (/3=1 ) ou P1 (β =0).
Enfin, le multiplexeur 80 reçoit d'une part la sortie du module 76 (qu'il fournit en sortie lorsque β=λ ) et d'autre part la sortie du module de soustraction 1 1 0 (qu'il fournit en sortie au module 78 lorsque
le multiplexeur 90 recevant quant à lui d'une part la sortie du module 86 (qu'il fournit en sortie lorsque β=λ ) et d'autre part la sortie du module de d'addition/soustraction paramétrable 1 14 (qu'il fournit en sortie au module 88 lorsque β=0).
En sortie du troisième niveau 1 02, un premier multiplexeur 1 32 commandé par la sortie du module de soustraction 82 sélectionne la plus petite des deux valeurs fournies par les modules 76 et 78 pour le calcul de Viterbi (Obtention de la valeur VitO) et un second multiplexeur 134 commandé par la sortie du module de
soustraction 92 sélectionne la plus petite des deux valeurs fournies par les modules 86 et 88 également pour le calcul de Viterbi (Obtention de la valeur Vit1 ).
Il apparaît clairement que le processeur de traitement de données décrit précédemment est configurable à l'aide d'un simple paramètre binaire β pour effectuer un calcul de FFT à l'aide des valeurs d'entrées a, b, c, d, e, f lorsque β=λ et pour effectuer un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi à l'aide des valeurs d'entrées Ref, a, b, c, d, PO, P1 lorsque β=0. Les éléments grisés dans le schéma illustré sur la figure 8 (80, 84, 86, 90, 94, 104, 106, 1 12, 1 14, 1 16, 124, 126, 128, 130) sont ceux qui sont paramétrables à l'aide de β.
Alors que les algorithmes FFT et Viterbi sont différents tant dans les données qu'ils traitent que dans les fonctions qu'ils réalisent, la mise en commun de modules matériels de soustraction et/ou d'addition et la conception d'une structure commune sont rendues possibles grâce à la mise en évidence originale d'une similarité de fonctionnement d'opérateurs papillons qu'ils mettent en oeuvre.
Par rapport à un processeur de traitement de données à opérateur papillon apte uniquement à effectuer un calcul de FFT, il nécessite juste l'ajout du module de soustraction 108 et de tous les multiplexeurs permettant de basculer du mode FFT au mode Viterbi. Ainsi, en comparant un opérateur de calcul FFT et un opérateur de calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi à l'opérateur précédemment décrit, on réduit le besoin en opérateurs d'addition et/ou soustraction de moitié environ.
Le gain est d'autant plus important que les calculs de FFT et de Viterbi ne sont généralement pas réalisés simultanément.
Néanmoins les ressources globales nécessaires aux deux traitements étant différentes (en se référant aux normes actuelles, la taille des FFT oscille entre 64 et 2048, ce qui nécessite entre 32 et 1024 opérateurs papillons par étape du treillis, alors que les degrés des polynômes générateurs des codes convolutifs varient entre 4 et 8, ce qui nécessite entre 8 et 128 papillons), en supposant que l'on implémente uniquement la moitié des opérateurs papillons de FFT de la façon décrite précédemment, alors on dispose de suffisamment d'opérateurs papillons pour effectuer les calculs de Viterbi avec un gain de 13% en nombre de module matériels d'addition/soustraction. Avec un parallélisme encore plus accru voire total au niveau des opérateurs papillons de Viterbi, il reste possible d'atteindre environ 50% de gain.
Un autre avantage de cette structure commune est de pouvoir tirer profit, dans le mode Viterbi, du fait que les données traitées dans le mode FFT doivent pouvoir être complexes et que leurs parties réelles et imaginaires sont en général entières. En mode Viterbi, le processeur de traitement est alors capable de fonctionner aussi bien avec des données d'entrée dures (binaires) que des données d'entrée souples (entières).
Enfin, compte tenu de la variabilité de la performance des technologies microélectroniques, il est avantageux de proposer des processeurs de base les plus réguliers possible. En effet, il est alors envisageable d'implanter de tels processeurs en surnombre et de les configurer a posteriori en fonction des performances ou des pannes éventuelles de chacun de ces processeurs.
Par conséquent un processeur de traitement de données 96 tel que celui décrit précédemment est avantageusement intégré dans un terminal de télécommunication 136 à modulation/démodulation muiti porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif comme illustré sur la figure 9.
Les applications de ce processeur de traitement à deux modes de fonctionnement FFT et Viterbi sont multiples que ce soit pour un terminal à norme unique ou pour un terminal multi-normes. En effet, beaucoup de normes mettent par exemple en oeuvre une modulation OFDM (calcul de FFT) et nécessitent un décodage de code convolutif (algorithme de Viterbi), parmi lesquels :
- la radiodiffusion numérique terrestre DAB,
- la télédiffusion numérique terrestre (DVB-T, DVB-H),
- la radiodiffusion numérique terrestre T-DMB,
- la radiodiffusion numérique DRM,
- les liaisons filaires : ADSL, VDSL, modem sur courant porteur (Homeplug), modem câble (norme Docsis),
- les réseaux sans-fils basés sur les normes 802.1 1 a, 802.1 1 g (Wi-Fi), 802.16 (WiMAX) et HiperLAN,
- les réseaux mobiles de nouvelle génération (4G).
Cette liste n'est bien sûr pas exhaustive puisque la quasi totalité des normes actuelles ou à l'étude utilise une modulation OFDM et/ou un décodage de Viterbi.
En outre, des travaux récents on montré que la FFT pouvait être appliquée pour des opérations plus diversifiées qu'une simple modulation. Notamment, elle peut être utilisée pour des calculs de corrélation, la genèse de filtres de type FIR,
l'estimation de canal ou la détection de plusieurs utilisateurs. De même, l'algorithme de Viterbi a lors d'études passées été étendu au décodage des Turbos Codes.
Ainsi, l'architecture commune FFT/Viterbi proposée peut être utilisée par une majorité des fonctions de terminaux de télécommunication et ne se restreint pas aux seuls blocs de décodage canal et de modulation/démodulation.
On notera enfin que l'invention ne se limite pas aux modes de réalisation envisagés. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées au mode de réalisation décrit ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué. Dans les revendications qui suivent, les termes utilisés ne doivent pas être interprétés comme limitant les revendications au mode de réalisation exposé dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents que les revendications visent à couvrir du fait de leur formulation et dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.
Claims
1 . Processeur (96) de traitement de données numériques comportant au moins un opérateur papillon pour l'exécution d'un calcul de transformée de Fourier rapide, cet opérateur papillon comportant un premier étage (12 ;12') de multiplication complexe et un second étage (26) d'addition et soustraction complexes recevant en entrée les données de sorties du premier étage, chacun de ces deux étages comportant une pluralité de modules matériels d'addition/soustraction (104, 108, 1 10, 1 14, 76, 78, 82, 86, 88, 92) et de liens de transmission de données entre ces modules, caractérisé en ce qu'au moins une partie (104, 1 14, 86) des modules d'addition/soustraction de chaque étage de l'opérateur papillon et au moins une partie (106, 1 12, 1 16, 124, 126, 128, 130, 80, 84, 90, 94) des liens entre ces modules sont configurables à l'aide d'au moins un paramètre programmable (β), entre une première configuration dans laquelle l'opérateur papillon réalise ledit calcul de transformée de Fourier rapide et une seconde configuration dans laquelle l'opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi.
2. Processeur (96) de traitement de données numériques selon la revendication 1 , dans lequel le premier étage de multiplication complexe (12') comporte un premier niveau (98) d'additions/soustractions réelles de données d'entrées (Ref, a, b, c, d, e/PO, f/P1 ), un deuxième niveau (100) de multiplications réelles réalisées à partir de données fournies par le premier niveau et un troisième niveau (76, 86) d'addition et soustraction réelles réalisées à partir des données fournies par le deuxième niveau, au moins une partie (104, 1 14) des modules d'addition/soustraction (104, 108, 1 10, 1 14) du premier niveau (98) du premier étage de multiplication complexe (12') et au moins une partie (106, 1 12, 1 16, 80, 90) des liens allant vers ou partant de ces modules étant configurables à l'aide d'au moins un paramètre programmable (β) entre une première configuration dans laquelle le premier niveau (98) du premier étage de multiplication complexe (12') réalise des opérations préalables d'addition et/ou soustraction organisées pour limiter le nombre de multiplications réelles à exécuter au deuxième niveau (100) lorsque l'opérateur papillon réalise un calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un calcul de valeurs de métriques de branches d'une implémentation de l'algorithme de Viterbi.
3. Processeur (96) de traitement de données numériques selon la revendication 2, dans lequel le premier niveau (98) du premier étage de multiplication complexe (12') comporte quatre modules matériels d'addition et/ou soustraction (104, 108, 1 10, 1 14) et le deuxième niveau (100) du premier étage de multiplication complexe (12') comporte trois modules matériels de multiplication réelle (1 18, 120, 122).
4. Processeur (96) de traitement de données numériques selon l'une quelconque des revendications 1 à 3, dans lequel les modules d'addition/soustraction configurables (86, 104, 1 14) sont configurables, à l'aide d'un unique paramètre binaire (β) , entre une configuration d'additionneur et une configuration de soustracteur pour chacun d'eux, de sorte que le processeur est dans ladite première configuration de calcul de transformée de Fourier rapide par l'opérateur papillon lorsque l'unique paramètre binaire (β) prend l'une de ses deux valeurs binaires possibles et dans ladite seconde configuration de calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants par l'opérateur papillon lorsque l'unique paramètre binaire (β) prend l'autre de ses deux valeurs binaires possibles.
5. Processeur (96) de traitement de données numériques selon la revendication 4, dans lequel les liens configurables (80, 84, 90, 94, 106, 1 12, 1 16, 124, 126, 128, 130) comportent des multiplexeurs à deux entrées et une sortie et à sélection de l'une des deux entrées à l'aide dudit unique paramètre binaire (β).
6. Processeur (96) de traitement de données numériques selon l'une quelconque des revendications 1 à 5, comportant :
- un premier opérateur (85) à trois modules combinés d'addition/soustraction configurable à l'aide d'au moins un paramètre programmable entre une première configuration dans laquelle ce premier opérateur réalise le calcul de parties réelles de coefficients impliqués dans le calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un premier calcul de valeurs de métriques de chemins et de survivant d'une implémentation de l'algorithme de Viterbi, et
- un second opérateur (75), différent du premier opérateur, à trois modules combinés d'addition/soustraction configurable à l'aide d'au moins un paramètre programmable entre une première configuration dans laquelle ce second opérateur réalise le calcul de parties imaginaires de coefficients impliqués dans le calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un second calcul de valeurs de métriques de chemins et de survivant d'une implémentation de l'algorithme de Viterbi.
7. Processeur (96) de traitement de données numériques selon l'une quelconque des revendications 1 à 6, comportant une pluralité d'opérateurs papillons configurables entre ladite première configuration dans laquelle chaque opérateur papillon réalise ledit calcul de transformée de Fourier rapide et ladite seconde configuration dans laquelle chaque opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, ces opérateurs papillons étant structurés entre eux pour un calcul de transformée de Fourier rapide par une approche algorithmique de Cooley-Tukey en treillis de type Radix-2 et pour une implémentation de l'algorithme de Viterbi en treillis à quatre symboles de référence.
8. Terminal de télécommunication (136) à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif, comportant au moins un processeur (96) de traitement de données numériques selon l'une quelconque des revendications 1 à 7.
9. Terminal de télécommunication (136) selon la revendication 8, à modulation et démodulation de type OFDM.
10. Terminal de télécommunication (136) selon la revendication 9, de type multi-normes, comportant au moins un modulateur/démodulateur à modulation et démodulation OFDM compatible avec chaque norme implémentée et au moins un décodeur de signal codé par un code convolutif compatible avec chaque norme implémentée.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0958495A FR2953356B1 (fr) | 2009-11-30 | 2009-11-30 | Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunication |
| PCT/FR2010/052565 WO2011064514A1 (fr) | 2009-11-30 | 2010-11-29 | Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunication |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2507720A1 true EP2507720A1 (fr) | 2012-10-10 |
Family
ID=42735542
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP10801608A Withdrawn EP2507720A1 (fr) | 2009-11-30 | 2010-11-29 | Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunication |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US8938034B2 (fr) |
| EP (1) | EP2507720A1 (fr) |
| JP (1) | JP6008194B2 (fr) |
| FR (1) | FR2953356B1 (fr) |
| WO (1) | WO2011064514A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015033080A1 (fr) | 2013-09-09 | 2015-03-12 | Commissariat à l'énergie atomique et aux énergies alternatives | Processeur de traitement de donnees numeriques a operateur papillon configurable entre un calcul de fft/ifft et un decodage canal et dispositif de telecommunication correspondant |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2960990B1 (fr) | 2010-06-07 | 2015-08-21 | Commissariat Energie Atomique | Processeur de traitement de donnees numeriques a operateur papillon en pipeline pour l'execution d'une fft/ifft et dispositif de telecommunication |
| US12574237B2 (en) | 2023-04-07 | 2026-03-10 | Nxp B.V. | Number theoretic transform with parallel coefficient processing |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
| JP3846196B2 (ja) * | 2001-01-19 | 2006-11-15 | ソニー株式会社 | 演算装置および並列演算装置 |
| US20040092529A1 (en) | 2002-10-30 | 2004-05-13 | Pfizer Inc | Methods of using piperazine derivatives |
| JP4423953B2 (ja) * | 2003-07-09 | 2010-03-03 | 株式会社日立製作所 | 半導体集積回路 |
| JP4796339B2 (ja) * | 2005-06-20 | 2011-10-19 | Okiセミコンダクタ株式会社 | メモリの読み出し及び書き込み方法 |
| DE602005014636D1 (de) * | 2005-08-22 | 2009-07-09 | Panasonic Corp | Dynamisch rekonfigurierbare und geteilte Vorrichtung für die Basisband-Verarbeitung |
| JP2009245407A (ja) * | 2008-04-01 | 2009-10-22 | Dainippon Printing Co Ltd | 複素数の積和演算装置および積和演算方法 |
| JP4814969B2 (ja) * | 2009-03-23 | 2011-11-16 | 富士通株式会社 | 準固定回路 |
-
2009
- 2009-11-30 FR FR0958495A patent/FR2953356B1/fr not_active Expired - Fee Related
-
2010
- 2010-11-29 JP JP2012540486A patent/JP6008194B2/ja not_active Expired - Fee Related
- 2010-11-29 WO PCT/FR2010/052565 patent/WO2011064514A1/fr not_active Ceased
- 2010-11-29 EP EP10801608A patent/EP2507720A1/fr not_active Withdrawn
- 2010-11-29 US US13/511,672 patent/US8938034B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2011064514A1 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015033080A1 (fr) | 2013-09-09 | 2015-03-12 | Commissariat à l'énergie atomique et aux énergies alternatives | Processeur de traitement de donnees numeriques a operateur papillon configurable entre un calcul de fft/ifft et un decodage canal et dispositif de telecommunication correspondant |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6008194B2 (ja) | 2016-10-19 |
| US8938034B2 (en) | 2015-01-20 |
| JP2013512491A (ja) | 2013-04-11 |
| US20120281739A1 (en) | 2012-11-08 |
| WO2011064514A1 (fr) | 2011-06-03 |
| FR2953356B1 (fr) | 2014-12-05 |
| FR2953356A1 (fr) | 2011-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0481549B1 (fr) | Système et procédé de codage/décodage de signaux numériques transmis en modulation codée | |
| FR2938140A1 (fr) | Recepteur a suppression d'interferences entre porteuses. | |
| FR2964003A1 (fr) | Procede et dispositif de relayage dans un reseau de communication | |
| EP0459968B1 (fr) | Démodulateur numérique pour signal modulé par déplacement de phase à plusieurs états | |
| WO2011154642A2 (fr) | Processeur de traitement de donnees numeriques a operateur papillon en pipeline pour l'execution d'une fft/ifft et dispositif de telecommunication | |
| WO2007048790A1 (fr) | Procédé de transmission d'un signal multiporteuse conçu pour limiter l'interférence, signal, dispositif d'émission, procédé et dispositif de réception, et programmes d'ordinateur correspondants | |
| EP2507720A1 (fr) | Processeur de traitement de donnees numeriques a operateur papillon pour l'execution d'une fft/ifft et terminal de telecommunication | |
| WO1995015638A1 (fr) | Codeur et decodeur differentiels pour la modulation mdp-8 codee en treillis par l'approche pragmatique | |
| FR2837044A1 (fr) | Procede de modulation et de determination du nombre de bits a transmettre sur un canal de transmission | |
| FR2835136A1 (fr) | Demodulateur cofdm a positionnement optimal de fenetre d'analyse fft | |
| EP2415225A1 (fr) | Procede et dispositif d'emission avec mappage temps-frequence des symboles dans des sous-canaux | |
| WO2015033080A1 (fr) | Processeur de traitement de donnees numeriques a operateur papillon configurable entre un calcul de fft/ifft et un decodage canal et dispositif de telecommunication correspondant | |
| WO2014006351A1 (fr) | Procède de recherche d'un signal utile pans une bande de multiplexage | |
| WO2011064515A1 (fr) | Operateur materiel d'additions/soustractions, processeur et terminal de telecommunication incluant un tel operateur | |
| EP1964348B1 (fr) | Procédé de réception d'un signal à porteuses multiples, procédé d'émission, récepteur et émetteur correspondants | |
| EP1792463B1 (fr) | Procede d'estimation de la phase et du gain de donnees d'observation transmises sur un canal de transmission en modulation qam | |
| EP2091149A1 (fr) | Procédé et dispositif de conversion descendante de fréquence d'échantillonnage d'un signal numérique. | |
| FR2825550A1 (fr) | Dispositif et procede de demodulation numerique d'un signal recu par selection d'un filtre et recepteur de communication numerique le comportant | |
| EP1826973A1 (fr) | Procédé et dispositif d'estimation de la fonction de transfert du canal de transmission pour démodulateur COFDM | |
| WO2025132966A1 (fr) | Procédé, dispositif et programme de démodulation d'une trame de données | |
| FR2972876A1 (fr) | Procede d'encodage correcteur d'erreur, procede de decodage et dispositifs associes. | |
| WO2008145915A2 (fr) | Composant de traitement d'un signal numerique, dispositif de modulation et/ou de demodulation, procede de modulation et/ou de demodulation et programme d'ordinateur correspondants | |
| Le Bihan | Z-Transform based method for coefficient computation and generating function derivation for sinc N FIR filters | |
| FR3030158A1 (fr) | Recepteur multi-standard et procede de traitement associe | |
| FR2915645A1 (fr) | Composant de traitement d'un signal numerique, dispositif de modulation et/ou de demodulation, procede de modulation et/ou de demodulation et programme d'ordinateur correspondants |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20120518 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20180602 |