WO2008125708A1 - Procedimiento y arquitectura sin memoria para el cálculo de las rotaciones de la fft - Google Patents

Procedimiento y arquitectura sin memoria para el cálculo de las rotaciones de la fft Download PDF

Info

Publication number
WO2008125708A1
WO2008125708A1 PCT/ES2008/000220 ES2008000220W WO2008125708A1 WO 2008125708 A1 WO2008125708 A1 WO 2008125708A1 ES 2008000220 W ES2008000220 W ES 2008000220W WO 2008125708 A1 WO2008125708 A1 WO 2008125708A1
Authority
WO
WIPO (PCT)
Prior art keywords
fft
rotations
rotation
calculation
stages
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.)
Ceased
Application number
PCT/ES2008/000220
Other languages
English (en)
French (fr)
Other versions
WO2008125708A8 (es
Inventor
Mario GARRIDO GÁLVEZ
Jesús GRAJAL DE LA FUENTE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad Politecnica de Madrid
Original Assignee
Universidad Politecnica de Madrid
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Universidad Politecnica de Madrid filed Critical Universidad Politecnica de Madrid
Publication of WO2008125708A1 publication Critical patent/WO2008125708A1/es
Publication of WO2008125708A8 publication Critical patent/WO2008125708A8/es
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Definitions

  • the Fourier transform is one of the fundamental operations in the field of signal processing, especially in spectral analysis.
  • the DFT Discrete Fourier Transform
  • N indicates the number of points on which the DFT is calculated
  • x [n] are the samples in the time domain
  • k is a discrete variable that represents the frequency
  • X [k] is the signal in the frequency domain, which is defined for the values of .fe from 0 to N - 1.
  • the name FFT (Fast Fourier Transform) encompasses a set of algorithms that reduce the number of operations required by the DFT.
  • the decomposition can be performed following different methods. The most common are time decimated (DIT) and frequency decimated (DIF). In this way a reduction in the number of operations is achieved, which goes from an order 0 (N 2 ) in the DFT, to an order O ( ⁇ ⁇ og r N) in the FFT.
  • Each of the n stages of the FFT is characterized by having to calculate a set of additions, subtractions and rotations in the complex plane. Addition and subtraction are carried out through elements called butterflies, and complex rotations through rotators.
  • Each butterfly receives r input data and offers r outputs that represent the FFT of r points of the inputs.
  • the 2-point FFT and the 4-point FFT can be performed by trivial rotations (0 or , 90 °, 180 ° and 270 °)
  • the most common is to use radix 2 or 4 FFTs, since in other cases it is necessary include rotators inside the butterflies to carry out the non-trivial rotations that appear.
  • N / r butterflies and N rotations are calculated.
  • all butterflies are usually calculated with a single circuit, taking advantage of the fact that the data arrives sequentially.
  • rotations it is necessary to know the angle of rotation (or any data related to it) that each of the samples that reach the rotator must be rotated.
  • the CORDIC algorithm is used to efficiently calculate complicated mathematical operations in digital systems. This algorithm is based on transforming these operations into a set of sums and displacements, which are easy to carry out in digital circuits.
  • the CORDlC algorithm breaks down the angle of rotation, ⁇ , into a sum of angles, ⁇ ⁇ :
  • m and M are respectively the indices of the first and last angle considered, and is the error of the approximation
  • is outside this range, trivial rotations of 180 ° and 90 ° are used to place it. In fact, by these rotations it is possible to leave the remaining angle of rotation, z, in the range [-45 °, 45 °].
  • V ⁇ + l V ⁇ + X ⁇ ⁇ 2 ⁇ l
  • the rotations are calculated using a modification of the CORDIC algorithm that allows simplifying the blocks of calculation of the micro-rotations with respect to other existing options [MGBS02, Hu92].
  • This invention presents a method for calculating the rotations of any decomposed FFT according to the Cooley-Tukey algorithm, and whose number of points, N, and radix, r, are both power of 2, with the following Steps:
  • circuit architecture that includes:
  • An angle generation module that includes a single counter (1) for the entire FFT, from which the rotation angles of all stages of the FFT are obtained without resorting to any previously stored data, • a module of calculation of the rotations for each of the stages of the FFT.
  • the rotations of some of the FFT stages can be trivial, in which case the rotational calculation module of said stage can be dispensed with.
  • ⁇ s 0, 0, 0, 0,. . ., 0, 1, 2, 3,. . . ,
  • sequence of angles can be generated by concatenating r sub-sequences:
  • this representation of ⁇ as a value between 0 and JV-1 is advantageous for two reasons.
  • the represented angle is exact and the number of bits used is minimal; If the angle of rotation is represented in radians, an error would always be made in the approximation because the number of bits is finite.
  • the JV value is equivalent to a full circle turn, so that, since JV is a power of 2, multiplying by 2 ⁇ radians becomes a bit shift.
  • the explained method serves to generate both the angles of the DIT decomposition (decimated in time) and those of the DIF decomposition (decimated in frequency), considering that s - 1 is the input stage of the FFT in the case of the DIT decomposition , and the exit stage in the DIF case.
  • the angle generation module represented in Figure 1 is used.
  • the angle generation module comprises, in addition to the counter (1), the following elements:
  • combinational logic (3) which operates on the counter value, m an accumulator block (4) for each stage of the FFT, for the calculation of the sequences at s .
  • each accumulator block (4) comprises the following elements:
  • the counter (1) is a binary counter that counts from 0 to N - 1 periodically. This is considered divided into parts (2) of log bits. Each of them contains the p-value of one of the stages, and s ⁇ corresponds to the input (41) of the accumulator block of said stage. Specifically, the value of p for a stage s includes the bits ranging from the position (s - 1) • Iog 2 (r) + 1 to the s • log% r of the counter, considering that the least significant bit is the bit 1
  • the register (45) will increase according to the value of p provided that the control signal (42) is not activated.
  • the less significant (s - 1) • log 2 r bits of the counter (1) perform a cyclic count from 0 to ⁇ r ⁇ 1 - 1).
  • the control signal (42) is activated which causes the register value (45) to be set to zero, which provides the values of the sequence at s .
  • the generation of the rotation angle sequences ⁇ s of all stages of the FFT is carried out by means of a simple circuit that does not require any type of memory or the realization of multiplications.
  • the next step of the procedure described is the calculation of the rotations corresponding to each of the stages of the FFT from the generated rotation angles.
  • the way to proceed is the same for each of the stages of the FFT, and is composed of the following steps:
  • the 180 ° rotations are easily calculated by changing the real and imaginary components of the input data, and the 90 ° one with a sign change and exchanging those components.
  • m is the index corresponding to the first micro rotation and M the one corresponding to the last micro rotation.
  • ⁇ ou ⁇ and you ⁇ respectively the real and imaginary part of the data resulting from applying the micro-rotations
  • the rotational calculation module of the FFT is represented in Figure 3 and is composed of the following blocks:
  • the generator of the rotation vector (6) determines whether the rotator input data has to be rotated 180 ° and / or 90 ° and obtains the rotation vector, ⁇ , all from the rotation angle, ⁇ , that Ie arrives from the angle generation module.
  • the 180 ° and / or 90 ° rotations calculation blocks (8) rotate the input data those angles (in the negative direction) if necessary, according to the value of ⁇ .
  • the rotation of 180 ° can be done by changing the sign of the real and imaginary components of the data and the one of 90 ° with a change of sign and exchanging said components.
  • FIG 4 shows the scheme of the microarotation calculation block (9).
  • the inputs (91) and (92) correspond respectively to the values of a t and b % described in the procedure, while the switch (93) is controlled by the signal ⁇ [(94). After the switch, the data is shifted and positions (95). Since the value is fixed for each micro rotation stage, the signals are wired, which does not constitute any physical element.
  • the circuit consists of an adder (96) and a subtractor (97).
  • the rotated data leaves the scaled circuit by a constant factor and, therefore, can be compensated.
  • the compensation factor will be:
  • the scaling compensation can be done exclusively using two subtractors.
  • Figure 1 Scheme of the angle generation module, which includes a counter (1), combinational logic (3), accumulator blocks (4) and scaling blocks (5).
  • Figure 2 Scheme of the accumulator block (4), which is composed of an adder (43), s a register (45) and a logic gate (44).
  • Figure 3 Scheme of the rotation calculation module, which includes a generator of the rotation vector (6), an adapter of the rotation vector (7), calculation blocks, of the 180 ° and 90 ° rotations (8) and calculation blocks of micro rotations (9).
  • Figure 4 Scheme of the micro-rotation calculation block (9), which is composed of a switch (93), shifters (95), an adder (96) and a subtractor (97).
  • the following table shows the way to obtain the rotation sequences ⁇ s from the values taken by the counter. .
  • the first two columns of the table indicate the value of the counter in decimal and in binary respectively.
  • the value of p ⁇ corresponds to that of the least significant bit of the counter, that of ⁇ i with the next, and that of P 3 with the most significant.
  • the sequence at 3 begins with O 'and increases with the value of p $.
  • the sequence is reset and then increased again with the value of P 3 until the counter returns to 0, where the sequence is reset again.
  • the adapted rotation vector is calculated in accordance with the procedure described:
  • ⁇ ' 1, -1, -1, 1, 1, 1, -1, 1, 1
  • the rotator input data is the complex number 10 + 3j
  • VOUT -10.69,. ,
  • the data to be multiplied by K will be taken, the same data shifted by 3 bits and finally the data shifted by 6 bits. They will then be subtracted from the data without shifting the offset values.
  • bit shifts are fixed, only two testers are needed to carry out the scaling compensation.
  • the presented invention can be applied in numerous communications and signal processing systems.
  • the proposed architecture is useful when it is intended to build FFTs on hardware platforms, such as FPGAs (Field Programmable Gate Array).
  • FPGAs Field Programmable Gate Array
  • the invention provides a great advantage over other designs in applications where it is necessary to calculate FFTs of a high number of points.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

Procedimiento y arquitectura sin memoria para el calculo de las rotaciones de la FFT. Permite el calculo de Ia FFT descompuesta según el algoritmo Cooley-Tukey, sin recurrir a datos de memoria. Los angulos de rotación en las etapas de Ia FFT, se generan a partir de un único contador (1) y un circuito compuesto por sumadores y puertas lógicas, eliminandose la necesidad de almacenar datos relacionados con angulos de rotación. Las rotaciones se calculan empleando una modificación del algoritmo CORDIC que permite simplificar los bloques de calculo de las microrrotaciones. Ademas, se presenta un sistema que utiliza únicamente dos restadores para compensar el escalado propio del algoritmo CORDIC.

Description

Procedimiento y arquitectura sin memoria para el cálculo de las rotaciones de Ia
FFT
Sector técnico.
La invención que se describe se enmarca dentro del campo del procesado de se- nal, más en concreto en Io referente a Ia elaboración de algoritmos y el desarrollo de arquitecturas de circuito eficientes para llevar a cabo dichos algoritmos. >
Estado de Ia técnica.
La transformada de Fourier es una de las operaciones fundamentales en el campo del procesado de señal, especialmente en análisis espectral. Para su aplicación en sis- temas digitales se hace uso de Ia DFT (Discrete Fourier Transform), que permite realizar
Ia transformada de Fourier sobre datos almacenados en un ordenador o muestreados mediante un conversor analógico-digital,, y cuya fórmula es:
Figure imgf000003_0001
En Ia ecuación, el valor N indica el número de puntos sobre los que se calcula Ia DFT, x[n] son las muestras en el dominio del tiempo, k es una variable discreta que representa Ia frecuencia, y X[k] es Ia señal en el dominio de Ia frecuencia, que se define para los valores de .fe desde 0 a N — 1. '
Con el objetivo de calcular Ia DFT de forma eficiente, el nombre FFT (Fast Fourier Transform) engloba un conjunto de algoritmos que reducen el número de operaciones requerido por lá DFT. De todos ellos, el algoritmo de Cooley-Tukey [CT65] es el más utilizado. Éste se basa en descomponer Ia DFT en n = logrN etapas de cálculo en cascada, donde r es el radix empleado en Ia descomposición. Por otra parte, Ia descomposición se puede realizar siguiendo distintos métodos. Los más comunes son el diezmado en tiempo (DIT) y el diezmado en frecuencia (DIF). De esta forma se consigue una reducción en el número de operaciones, que pasa de un orden 0(N2) en Ia DFT, a un orden O(Ñ\ogr N) en Ia FFT.
Cada una de las n etapas de Ia FFT se caracteriza por tener que calcular un conjunto de sumas, restas y rotaciones en el plano complejo. Las sumas y restas se realizan mediante elementos denominados mariposas, y las rotaciones complejas mediante rotadores.
Cada mariposa recibe r datos de entrada y ofrece r salidas que representan Ia FFT de r puntos de las entradas. Como Ia FFT de 2 puntos y Ia de 4 puntos se pueden realizar mediante rotaciones triviales (0o, 90°, 180° y 270°), Io más habitual es utilizar FFTs de radix 2 ó 4, ya que en otros casos es necesario incluir rotadores dentro de las mariposas para llevar a cabo las rotaciones no triviales que aparecen.
En cada etapa s de Ia FFT1 s e {1 . . . n}, se calculan N/r mariposas y N rotaciones. Sin embargo, en las arquitecturas de los circuitos de cálculo de Ia FFT, todas las mariposas se suelen calcular con un único circuito, aprovechando que los datos llegan de formas secuencial. Lo mismo ocurre con las rotaciones: un único rotador es suficiente para llevar a cabo todas las rotaciones de una etapa. De esta forma, se consigue un ahorro importante de componentes. Sin embargo, en el caso de las rotaciones es necesario conocer el ángulo de rotación (o algún dato relacionado con él) que hay que rotar cada una de las muestras que van llegando al rotador.
Existen dos métodos principales para Ia realización de las rotaciones de Ia FFT. El primero consiste en rotar el dato de entrada aplicando directamente Ia fórmula de una rotación, mediante el empleo de multiplicadores reales y sumadores. La otra opción, más utilizada por requerir en general menos recursos, es emplear el algoritmo CORDIC, propuesto por J.E.Volder [Vol59], y que se describe brevemente a continuación.
El algoritmo CORDIC se utiliza para calcular de forma eficiente operaciones matemáticas complicadas en sistemas digitales. Este algoritmo se basa en transformar estas operaciones en un conjunto de sumas y desplazamientos, que son fáciles de llevar a cabo en los circuitos digitales.
Si se utiliza para realizar rotaciones en el plano complejo, el algoritmo CORDlC descompone el ángulo de rotación, θ, en una suma de ángulos, ατ:
M
donde m y M son respectivamente los índices del primer y último ángulo considerado, e es el error de Ia aproximación y
Figure imgf000005_0001
Habitualmente m = 0 y, por Io tanto, el primer ángulo es «o = tg~1(l) = 45°, Io que hace que el algoritmo sea válido para cualquier valor de θ en el intervalo [—90°, 90°]. s Cuando θ se encuentra fuera de este intervalo se utilizan las rotaciones triviales de 180° y 90° para situarlo en él. De hecho, mediante estas rotaciones es posible dejar el ángulo restante de rotación, z, en el intervalo [-45°, 45°]. De acuerdo con esta idea, es posible prescindir de Ia rotación de 45° y considerar que Ia primera rotación del algoritmo CORDIC es para el caso m = l, siendo ai = tg~1(2~1) « 26,5°.
io La rotación del dato de entrada al rotador se lleva a cabo mediante una serie de etapas llamadas microrrotaciones, en cada una de las cuales se rota un ángulo aτ de acuerdo con las ecuaciones:
X1+1 = xτ - yτδι2
Vτ+l = Vτ + Xιδτ2~l
i5 donde S1 indica el sentido de Ia microrrotación y se calcula de acuerdo con:
S1 — SIgTi(Z1) Zι+i — Zi — S1 aτ
siendo sιgn(η) = 1 si η > 0, y sιgn(η) = — 1 si η < 0. Como S1 E {— 1, 1}, se realiza una rotación en cada una de las etapas, bien en sentido positivo o bien en sentido negativo. 20 Ello da lugar a una ganancia constante en el rotador, que puede ser compensada, en caso de que sea necesario, simplemente multiplicando las muestras de salida por:
M M
Figure imgf000005_0002
ι=m i=m
Para poder rotar adecuadamente cada uno de los datos de entrada al rotador se almacenan en una memoria los valores de los vectores de rotaciones, <5, correspondientes
25 a cada una de las rotaciones que debe realizar el rotador. Estos datos son leídos de Ia memoria secuencialmente de tal forma que cada dato de entrada al rotador sea rotado el ángulo de rotación correspondiente. Cuando el número de rotaciones que realiza el rotador de una cierta etapa de Ia FFT es elevado, Ia memoria de rotaciones deberá almacenar una gran cantidad de datos, Io que repercute negativamente en el área y en Ia velocidad de Ia FFT. Este problema es análogo en el caso de emplear multiplicadores para calcular las rotaciones, puesto que
5 deben ser almacenados los valores del seno y el coseno de los ángulos de rotación.
Ciertas investigaciones han conseguido reducir Ia memoria de rotaciones a log^N [YCC06], ó 0,5N [CP03]. Además, se han utilizado otros métodos de descomposición de Ia FFT (distintos al algoritmo de Cooley-Tukey) para reducir el número de rotaciones que hay que calcular, como ocurre en [ZH05], donde se emplea el método de descomposición0 en factores primos, el cual sólo es aplicable cuando el número de puntos de Ia FFT se puede representar como producto de factores primos entre sí.
Por el contrario, con el procedimiento y Ia arquitectura propuestos se consigue reemplazar las memorias de rotaciones de todas las etapas de Ia FFT por un sencillo circuito compuesto por un contador (único para toda Ia FFT), y unos pocos sumadores y puertass lógicas. Así, a partir del valor del contador se calculan las rotaciones de todas las etapas de Ia FFT aprovechando características comunes entre ellas. De esta forma, se consigue mejorar significativamente las prestaciones de Ia FFT, principalmente en cuanto a área. Además, Ia mejora es más significativa cuanto mayor sea el número de puntos de Ia FFT que se desea calcular, Io que hace que este procedimiento sea muy adecuado para elo cálculo de FFTs de un elevado número de puntos.
Por otra parte, las rotaciones se calculan empleando una modificación del algoritmo CORDIC que permite simplificar los bloques de cálculo de las microrrotaciones respecto a otras opciones existentes [MGBS02, Hu92].
Descripción detallada de Ia invención s Esta invención presenta un procedimiento para el cálculo de las rotaciones de cualquier FFT descompuesta según el algoritmo Cooley-Tukey, y cuyo número de puntos, N, y radix, r, son ambos potencia de 2, con los siguientes pasos:
« obtener las secuencias de ángulos de rotación de todas las etapas de Ia FFT,
• calcular las rotaciones correspondientes a cada una de las etapas de Ia FFT a partir de los ángulos de rotación generados, donde a partir de un único contador se obtienen las secuencias de ángulos de rotacipn , de todas las etapas de Ia FFT. Este procedimiento tiene Ia ventaja de que no es necesario recurrir a ningún dato previamente almacenado.
Para implementar el procedimiento se utiliza una arquitectura de circuito que comprende:
• un módulo de generación de ángulos que incluye un único contador (1 ) para toda Ia FFT, a partir del cual se obtienen los ángulos de rotación de todas las etapas de Ia FFT sin necesidad de recurrir a ningún dato almacenado previamente, • un módulo de cálculo de las rotaciones para cada una de las etapas de Ia FFT. Como se verá posteriormente, las rotaciones de alguna de las etapas de Ia FFT pueden resultar triviales, en cuyo caso se puede prescindir del módulo de cálculo de las rotaciones de dicha etapa.
Como se explicó anteriormente, una FFT de N puntos puede ser dividida en n = logrN etapas, donde r es el radix de Ia FFT. Asumiendo que tanto N como r son potencia de 2, Ia secuencia de ángulos, (de longitud N) de cualquier etapa s de lá FFT, s e {1 . . . n}, está, formada por N/rs secuencias iguales de longitud L = rs.
La secuencia de ángulos depende del radix elegido en Ia descomposición de Ia FFT. Así, para radix 2, Ia secuencia de longitud L será:
αs = 0, 0, 0, 0, . . ., 0, 1, 2, 3, . . . ,
y para radix 4,
αs =
Figure imgf000007_0001
Generalizando estas expresiones para cualquier valor de radix, la secuencia de ángulos se puede generar concatenando r subsecuencias:
; 0,^, . . . , (T-"-1 - i)P
donde p = 0, 1, 2, . . . , ?* - 1. Para normalizar las secuencia de todas las etapas de Ia FFT al mínimo ángulo de rotación, Θmιn{rad) = 2π/N, los valores de las secuencias deben ser multiplicados por q = N/ra o, Io que es Io mismo, desplazados Iog2(q) bits:
θs = q • as = 0, 0, 0, 0, . . ., 0, q, 2g, 3g, . . .
29-i 23-1 La secuencia θs contiene los ángulos de rotación, θ, de Ia etapa s de Ia FFT, y cada ángulo de rotación θ e [0, JV - 1], siendo su equivalencia en radianes:
, 0(d) = ~ÉI
Desde el punto de vista digital, esta representación de θ como un valor entre 0 y JV — 1 resulta ventajosa por dos motivos. En primer lugar, el ángulo representado es exacto y el número de bits utilizado es mínimo; si el ángulo de rotación se representara en radianes siempre se cometería un error en Ia aproximación debido a que el número de bits es finito. Por otra parte, el valor JV equivale a una vuelta de circunferencia completa, por Io que, como JV es potencia de 2, multiplicar por 2π radianes se transforma en un desplazamiento de bits.
Considerando ahora que se dispone de un contador, para una etapa cualquiera, s, de Ia FFT, Ia generación de Ia secuencia de ángulos de rotación de dicha etapa, θs, se realiza siguiendo los siguientes pasos:
• tomar los s • Iog2τ bits menos significativos proporcionados por el contador,
" de los bits tomados, multiplicar los (s — 1) logir bits menos significativos por los logir más significativos, obteniendo así los valores de Ia secuencia as. Los bits más significativos se corresponden con el valor de p mientras que los menos significativos contarán de 0 a (rs~x — 1).
" multiplicar el resultado por N/rs, obteniendo así los valores de Ia secuencia θs.
El método explicado sirve para generar tanto los ángulos de Ia descomposición DIT (Diezmado en tiempo) como los de Ia descomposición DIF (Diezmado en frecuencia), considerando que s — 1 es Ia etapa de entrada de Ia FFT en el caso de Ia descomposición DIT, y Ia etapa de salida en el caso DIF. Para implementar Ia generación de ángulos se emplea el módulo de generación de ángulos representado en Ia figura 1. El módulo de generación de ángulos comprende, además del contador (1), los siguientes elementos:
• lógica combinacional (3), que opera sobre el valor del contador, m un bloque acumulador (4) por cada etapa de Ia FFT, para el cálculo de las secuencias as.
Por otra parte, como se puede observar en Ia figura 2, cada bloque acumulador (4) comprende los siguientes elementos:
• un sumador (43), que permite ir actualizando los valores de Ia secuencia aa, m un registro (45) que proporciona los valores de Ia secuencia as,
• una puerta lógica (44) para el control del bloque acumulador.
El contador (1) es un contador binario que cuenta de 0 a N - 1 de forma periódica. Éste se considera dividido en s partes (2) de logir bits. Cada una de ellas contiene el valor p de una de las etapas, y s^ corresponde con Ia entrada (41 ) del bloque acumulador de dicha etapa. En concreto, el valor de p para una etapa s incluye los bits que van desde Ia posición (s - 1) Iog2(r) + 1 a Ia s • log%r del contador, considerando que el bit menos significativo es el bit 1.
Según Ia estructura del bloque acumulador (4), el registro (45) se irá incrementando de acuerdo con el valor de p siempre que no se active Ia señal de control (42).
Por otra parte, los (s - 1) • log2r bits menos significativos del contador (1 ) realizan una cuenta cíclica desde 0 hasta {r^1 - 1). Cuando Ia cuenta de estos bits vuelve a cero, se activa Ia señal de control (42) que hace que se ponga a cero el valor del registro (45), que va proporcionando los valores de Ia secuencia as.
Finalmente, los bloques de escalado (5) no incluyen ningún componente lógico. Ello se debe a que, al ser N y r potencias de 2, el factor de escalado q = N/rs representa únicamente un desplazamiento fijo de bits, para Io cual sólo hay que ajustar el interconexionado de los bits con Ia etapa siguiente.
Así, Ia generación de las secuencias de ángulos de rotación θs de todas las etapas de Ia FFT se lleva a cabo mediante un sencillo circuito que no requiere ningún tipo de memoria ni Ia realización de multiplicaciones. Además, sólo es necesario el empleo de un único contador para toda Ia FFT, a partir de cual se generan todas las secuencias de ángulos de rotación.
El siguiente paso del procedimiento descrito es el cálculo de las rotaciones correspon- ' dientes a cada una de las etapas de Ia FFT a partir de los ángulos de rotación generados. La forma de proceder es Ia misma para cada una de las etapas de Ia FFT, y se compone de los siguientes pasos:
" determinar si se deben realizar las rotaciones de 180° y 90°,
" calcular el vector de rotaciones, δ, u obtener el vector de rotaciones adaptado δ',
• rotar el dato de entrada al rotador.
En primer lugar, para cada ángulo de rotación θ perteneciente a Ia secuencia θs se determina si se deben realizar las rotaciones de 180° y 90° con el fin de situar el ángulo restante de rotación, z, en el intervalo de definición del algoritmo CORDIC. Nótese que como θ(rad) = -2πθ/N, las rotaciones deberán realizarse en sentido negativo.
El hecho de representar θ como un valor entero, θ e [0, JV - 1], siendo JV potencia de 2, presenta Ia ventaja de que en Ia arquitectura del circuito resulta muy sencillo determinar las rotaciones de 180° y 90° que permiten situar el ángulo restante de rotación z en el intervalo [— 45° , 45°]. Para ello únicamente hay que sumar al conjunto de los dos bits más t significativos de θ el siguiente bit más significativo. De esta forma, los dos bits resultantes de Ia operación indicarán respectivamente si se deben realizar las rotaciones de 180° y 90°. Además, z se obtiene directamente tomando todos los bits de θ excepto los dos más significativos y considerando que el z está expresado en complemento a 2, y cambiado de signo respecto al ángulo en radianes.
A partir de z se determina el vector de rotaciones, δ, de acuerdo con:
δt = -sign(zt) Z1^-I = Z1 + δt a%
siendo sign(η) = 1 si η > 0, y sign(η) = -1 si η < 0. Este cálculo se realiza a partir de Z0 = z en el caso de emplear Ia microrrotación de αo = 45° (m = 0); y a partir de z\ — z si se considera que Ia primera microrrotación es Ia de Ct1 = tg~1(2~1) ∞ 26,5°. El cambio de signo respecto al procedimiento habitual del CORDIC se debe únicamente a que, como se ha dicho anteriormente, Ia representación del ángulo en el intervalo [0, N - I] tiene signo contrario a Ia representación del ángulo en radianes.
Las, rotaciones de 180° se calculan fácilmente cambiando de signo las componentes real e imaginaria de los datos de entrada, y Ia de 90° con un cambio de signo e intercambiando dichas componentes.
Habitualmente, a partir de los valores de d, y una vez aplicadas las rotaciones de 180° y 90° sobre los datos de entrada al rotador, se procede a realizar las microrrotaciones de acuerdo con las ecuaciones:
xι+i - X1 - yιδι2 Vι+i = Vι + «A2"1
Sin embargo, es posible modificar este procedimiento para reducir Ia complejidad del módulo de cálculo de las rotaciones. Con esta idea, se propone un paso en el que se obtiene el vector de rotaciones adaptado, δ', a partir del , vector de rotaciones, δ, de Ia siguiente forma:
δ[ = -δt - δt-ι, ι = m + l, . .{ . , M δM+l = δM donde m es el índice correspondiente a la primera microrrotación y M el correspondiente a Ia última microrrotación.
Una vez- obtenido el vector δ', el cálculo de las microrrotaciones se realiza de Ia siguiente forma:
+ 6, : -1
{ { h + a, Si ^i = = 1
Figure imgf000011_0001
siendo O1 y bz las entradas de Ia ¿-ésima etapa de microrrotación. Las entradas a Ia primera etapa de microrrotación, am y bm , valdrán:
O-m = XlN bm = V IN siendo XIN e VIN respectivamente Ia parte real e imaginaria del dato sobre el que hay 5 que realizar las microrrotaciones. Por otra parte, χouτ e youτ, respectivamente Ia parte real e imaginaria del dato resultante de aplicar las microrrotaciones, valdrán:
Figure imgf000012_0001
El módulo de cálculo de las rotaciones de Ia FFT se representa en Ia figura 3 y se io compone de los siguientes bloques:
" un generador del vector de rotaciones (6),
" un adaptador del vector de rotaciones (7),
" bloques de cálculo de las rotaciones de 180° y 90° (8),
" varios bloques de cálculo de las microrrotaciones (9).
i5 El generador del vector de rotaciones (6) determina si hay que rotar 180° y/o 90° el dato de entrada al rotador y obtiene el vector de rotaciones, δ, todo ello a partir del ángulo de rotación, θ, que Ie llega del módulo de generación de ángulos.
A continuación, el adaptador del vector de rotaciones (7) calcula el vector de rotaciones adaptado, δ', a partir del vector de rotaciones, δ, de acuerdo con el procedimiento 20 descrito. Desde el punto de vista digital, los valores de δt y δt', se representan con un bit, que puede tomar el valor '0' ó '1', en lugar de los valores '-1' y T descritos en el procedimiento. Teniendo esto en cuenta, en Ia ¡mplementación de Ia arquitectura, el procedimiento se transforma en: δm' = δm
2s δ[ = S1 XOR δt-i, i = m + l, . . . ,'M δM' +i = δM . Los bloques de cálculo de las rotaciones de 180° y/o 90° (8) rotan el dato de entrada esos ángulos (en sentido negativo) en caso de que sea necesario, de acuerdo con el valor de θ. La rotación de 180° se puede realizar cambiando de signo las componentes real e imaginaria del dato y Ia de 90° con un cambio de signo e intercambiando dichas componentes.
En Ia figura 4 se presenta el esquema del bloque de cálculo de las microrrotaciones (9). Las entradas (91 ) y (92) se corresponden respectivamente con los valores de at y b% descritos en el procedimiento, mientras que el conmutador (93) está controlado por Ia señal δ[ (94). Después del conmutador, los datos son desplazados i posiciones (95). Como el valor es fijo para cada etapa de microrrotación, las señales están cableadas, Io que no constituye ningún elemento físico. Finalmente, el circuito se compone dé un sumador (96) y de un restador (97).
Así, se consigue simplificar los bloques de cálculo de las microrrotaciones (9) siendo únicamente necesario un conmutador (93), un sumador'(96), y un restador (97) en cada uno de ellos.
Como se dijo anteriormente, el dato rotado sale del circuito escalado por un factor constante y, por Io tanto, puede ser compensado. En el caso de m = 1 el factor de compensación será:
M
K = J[ cos(tg-1(2-')) « 0,8588
considerando que cos(tg~1(2^1)) « 1,Vi > M, que es una buena aproximación para M ≥ 7. Así, teniendo en cuenta que:
K = 0,8588 ∞ 0,8594 = 1 - 2~3 - 2~6
Ia compensación del escalado se puede realizar exclusivamente empleando dos resta- dores.
Por Io tanto, en el caso de que el primer bloque de cálculo de las microrrotaciones sea el correspondiente a a\ ~ tg'1(2), se puede añadir un módulo adicional de compensación del escalado que consiste en dos restadores. Breve descripción de los dibujos
Figura 1 : Esquema del rπódulo de generación de ángulos, que incluye un contador (1), lógica combinacional (3), bloques acumuladores (4) y bloques de escalado (5).
Figura 2: Esquema del bloque acumulador (4), que se compone de un sumador (43), s un registro (45) y una puerta lógica (44).
Figura 3: Esquema del módulo de cálculo de las rotaciones, que incluye un generador del vector de rotaciones (6), un adaptador del vector de rotaciones (7), bloques de cálculo , de las rotaciones de 180° y 90° (8) y bloques de cálculo de las microrrotaciones (9).
Figura 4: Esquema del bloque de cálculo de las microrrotaciones (9), que se compone io de un conmutador (93), desplazadores (95), un sumador (96) y un restador (97).
Exposición de un modo de realización de Ia invención
A continuación se explica Ia invención para el caso en el que se calculen las rotaciones de una FFT de 8 puntos y radix 2. Como N = 8, el contador contará cíclicamente de 0 a 7, y se incrementará en cada ciclo de reloj. El número de etapas de Ia FFT considerada i5 será n = logrN = 3 y, por Io tanto, s e {1, 2, 3}. , . '
La siguiente tabla muestra Ia forma de obtener las secuencias de rotación θs a partir de los valores que va tomando el contador. , .
Contador s =1 s =2 s =3
Dec. Bin. Pi ai θl P2 α2 - "02 Pz α3 θ3
0 000 0 0 0 0 0 0 0 0 0
1 001 1 0 0 0 0 0 0 0 0
2 010 0 0 0 1 0 0 0 0 0
3 011 1 0 0 1 1 2 0 0 0
4 100 0 0 0 0 0 0 1 0 oí.
25 , 5 101 1 0 0 0 0 0 1 1 1
6 110 0 0 0 1 0 0 1 2 2
7 111 1 0 0 1 1 2 1 3 3 Las dos primeras columnas de Ia tabla indican el valor del contador en decimal y en binario respectivamente. Como estamos trabajando con radix 2, el valor de p\ se corresponde con el del bit menos significativo del contador, el de ψi con el siguiente, y el de P3 con el más significativo.
Para obtener Ia secuencia a?, se toma el valor de los dos bits menos significativos del contador y se multiplica porp3¡ para obtener a-¿ se multiplica el bit menos significativo del contador por^; y «i vale siempre cero, como debe ocurrir en todas las FFTs para s = 1.
Por otra parte, θs = qs • as, siendo qs = N/r\ por Io que gi = 4, q¿ — 2 y q$ — 1.
A partir de Ia tabla también se puede entender el funcionamiento de Ia arquitectura de circuito que lleva a cabo el procedimiento. Así, por ejemplo, Ia secuencia a3 empieza valiendo O' y se incrementa con el valor de p$. Cuando el contador llega a 4, como los dos bits menos significativos valen cero, Ia secuencia se resetea y a continuación se vuelve a incrementar con el valor de P3 hasta que el contador vuelve a 0, donde se resetea de nuevo Ia secuencia.
Para entender el sistema de rotaciones tomaremos el caso en el que θ = 3 = B' 011, que se corresponde con un ángulo en radianes:
Figure imgf000015_0001
Sumando a los dos bits más significativos de θ, '01', el siguiente bit, '1', obtenemos el valqr '10', por Io que habrá que realizar una rotación de 180°, que situará el ángulo restante en z — τr/4.
A partir de z se obtiene el vector de rotaciones que, en el caso de que m = l y M = 8 valdrá:
δ = 1, 1, 1, -1, 1, -1, -1, 1
A continuación se calcula el vector de rotaciones adaptado de acuerdo con el procedimiento descrito:
Figure imgf000015_0002
$M+1 SM dando como resultado:
δ' = 1, -1, -1, 1, 1, 1, -1, 1, 1
Considerando ahora que el dato de entrada al rotador es el número complejo 10 + 3j, se aplicará primero Ia rotación de 180°, con Io que las entradas a Ia primera etapa de s microrrotación (para m = 1) serán:
ai = -10 h = -3
Aplicando el procedimiento de cálculo de las microrrotaciones:
Figure imgf000016_0001
ι siendo δ' el vector de rotaciones adaptado que se ha calculado, y M = 8, se obtienen los valores de salida:
i5 . XOUT = —5,80
VOUT = -10,69 , . ,
' ' i
Se puede comprobar fácilmente que el ángulo que se ha rotado el dato de entrada es:
' ' θ(rad) = -2,3593 PS -—
'. ' 4
20 Por otra parte, el módulo del dato de salida está escalado respecto al módulo del dato de entrada, y es posible compensarlo multiplicando Ia salida por K = 1 - 2~3 - 2~6. También es posible realizar Ia compensación del escalado a Ia entrada de Ia FFT o en cualquier punto intermedio de Ia FFT.
Para realizar Ia compensación se tomará el dato que hay que multiplicar por K, el mismo dato desplazado 3 bits y finalmente el dato desplazado 6 bits. A continuación se restarán del dato sin desplazar los valores desplazados. Así, como los desplazamientos de bits son fijos, únicamente hacen falta dos Testadores para llevar a cabo Ia compensación del escalado.
Aplicación industrial
Debido a que Ia FFT es un algoritmo ampliamente utilizado en las tecnologías de Ia información y las comunicaciones, Ia invención presentada puede tener aplicación en numerosos sistemas de comunicaciones y de procesado de señal. En especial, Ia arquitectura propuesta resulta útil cuando se pretende construir FFTs en plataformas hardware, como pueden ser las FPGAs (Field Programmable Gate Array). Por otra parte,
Ia invención aporta una gran ventaja respecto a otros diseños en aplicaciones donde es necesario calcular FFTs de un elevado número de puntos.
Referencias
[CP03] Yun-Nan Chang and Keshab K. Parhi. An efficient pipelined FFT architectu- re. IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, 50:322-325, Jun 2003.
s [CT65] J. W. Cooley and J.W Tukey. An algorithm for machine computation of complex fourier series. Math. Computation, 19:297-301 , Apr. 1965.
[Hu92] • Y. H. Hu. CORDIC-based VLSI Architectures for Digital Signal Processing. IEEE Signal Processing Magazine, 9, Ju1 1992.
[MGBS02] K. Maharatna, E. Grass, S. Banerjee, and A. Sundar. CORDIC UNIT. Patente « US 20060059215A1, 20.12. 2002.
[Vol59] J. E. Volder. The CORDIC trigonometric computing technique. IRE Trans. Electronic Computers, EC-8:330-334, Sep. 1959.
[YCC06] Cheng-Ying Yu, Sau-Gee Chen, and Jen-Chuan Chih. Efficient CORDIC Designs for Multi-Mode OFDM FFT. Proc. IEEE International Conference on is Acoustics, Speech and Signal Processing, 3:1036-1039, May 2006.
[ZH05] Li Zou and Xiao Huang. 3780-point Discrete Fourier Transformation proces- sor. Patente EP 1750206A1, 04.08. 2005.

Claims

Reivindicaciones
1. Procedimiento para el cálculo de las rotaciones de cualquier FFT descompuesta según el algoritmo Pooley-Tukey, y cuyo número de puntos, N, y radix, r, son ambos potencia de 2, con los siguientes pasos: s m obtener las secuencias de ángulos de rotación de cada una de las etapas de Ia FFT,
• calcular las rotaciones de cada una de las etapas de Ia FFT a partir de los ángulos de rotación generados, caracterizado porque a partir de un único contador se obtienen las secuencias de ánguloso de rotación de todas las etapas de Ia FFT, y para una etapa cualquiera, s, de Ia FFT, Ia generación de Ia secuencia de ángulos de rotación de dicha etapa, θs, se realiza siguiendo íos siguientes pasos:
" tomar los s • Iog2r bits menos significativos proporcionados por el contador,
• de los bits tomados, multiplicar los (s — 1) • logir bits menos significativos por loss log'zr más significativos, obteniendo así los valores de Ia secuencia αs,
" multiplicar el resultado por N/ra, obteniendo así los valores de Ia secuencia θs.
2. Procedimiento según Ia reivindicación 1 , caracterizado por que para el cálculo de las rotaciones de cada una de las etapas de Ia FFT, se obtiene el vector de rotaciones t adaptado, δ', a partir del vector de rotaciones, δ, de Ia siguiente forma: 0 δ'm - δm δ[ = -δi ÍÍ-I , i = m + l, . . . , M i δM+i[- δM donde m es el índice correspondiente a Ia primera microrrotación y M el correspondiente a Ia última microrrotación. 5 3. Procedimiento según las reivindicaciones 1 a 2, caracterizado por que para el cálculo de las rotaciones de cada una de las etapas de Ia FFT, el cálculo de las microrrotaciones se realiza de Ia siguiente forma:
Figure imgf000019_0001
6, - 0,2-* si <J( = -l aτ - bτ2 si δ[ = 1 siendo aτ y bt las entradas de Ia z-esima etapa de microrrotación.
4. Arquitectura de circuito para implementar el procedimiento descrito en las reivindicaciones 1 a 3, caracterizada por que comprende: s « un módulo de generación de ángulos que incluye un único contador (1 ) para toda Ia FFT, a partir del cual se obtienen los ángulos de rotación de todas las etapas de Ia FFT sin necesidad de recurrir á ningún dato almacenado previamente,
« un módulo de cálculo de las rotaciones para cada una de las etapas de Ia FFT.
5. Arquitectura de circuito según Ia reivindicación 4, caracterizada por que el módulo io de generación de ángulos comprende, además del contador (1 ), los siguientes elementos:
" lógica combinacional (3), que opera sobre el valor del contador,
" un bloque acumulador (4) por cada etapa de Ia FFT, para el cálculo de las secuencias as.
6. Arquitectura de circuito según las reivindicaciones 4 y 5, caracterizada por que, i5 dentro del módulo de generación de ángulos, cada bloque acumulador (4) comprende los siguientes elementos:
• un sumador (43), que permite ir actualizando los valores de Ia secuencia as, " un registro (45) que proporciona los valores de Ia secuencia as, m una puerta lógica (44) para el control del bloque acumulador.
20 7. Arquitectura de circuito según las reivindicaciones 4 a 6, caracterizada por que el módulo de cálculo de las rotaciones de Ia FFT, comprende bloques de cálculo de las microrrotaciones (9) que consisten en un conmutador (93), un sumador (96), y un restador (97).
8. Arquitectura de circuito para el cálculo de las rotaciones de Ia FFT según las 25 reivindicaciones 4' a 7, caracterizada por que en el caso de que el primer bloque de cálculo de las microrrotaciones sea el correspondiente a ai = tg~1(2~1), se puede añadir un módulo adicional de compensación del escalado que consiste en dos Testadores.
PCT/ES2008/000220 2007-04-12 2008-04-10 Procedimiento y arquitectura sin memoria para el cálculo de las rotaciones de la fft Ceased WO2008125708A1 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES200700983A ES2283236B2 (es) 2007-04-12 2007-04-12 Procedimiento y arquitectura sin memoria para el calculo de las rotaciones de la fft.
ESP200700983 2007-04-12

Publications (2)

Publication Number Publication Date
WO2008125708A1 true WO2008125708A1 (es) 2008-10-23
WO2008125708A8 WO2008125708A8 (es) 2008-12-31

Family

ID=38556505

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2008/000220 Ceased WO2008125708A1 (es) 2007-04-12 2008-04-10 Procedimiento y arquitectura sin memoria para el cálculo de las rotaciones de la fft

Country Status (2)

Country Link
ES (1) ES2283236B2 (es)
WO (1) WO2008125708A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016007069A1 (en) * 2014-07-09 2016-01-14 Mario Garrido Galvez Device and method for performing a fourier transform on a three dimensional data set

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050216540A1 (en) * 2004-03-25 2005-09-29 Wen Kuei-Ann Novel CORDIC circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050216540A1 (en) * 2004-03-25 2005-09-29 Wen Kuei-Ann Novel CORDIC circuit

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DICK C.: "Computing the Discrete Fourier Transform on FPGA Based Systolic Arrays", FIELD-PROGRAMMABLE GATE ARRAYS, 1996. FGPA'96. PROCEEDINGS OF THE 1996 ACM FOURTH INTERNATIONAL SYMPOSIUM, 1996, pages 129 - 135, Retrieved from the Internet <URL:http://www.ieeexplore.ieee.org/iel5/9475/30061/01377297.pdf?tp=&arnumber=1377297&isnumber=30061> *
GROGINSKY H.L. ET AL.: "A Pipeline Fast Fourier Transform", COMPUTERS, IEEE TRANSACTIONS, vol. C-19, no. 11, November 1970 (1970-11-01), pages 1015 - 1019, Retrieved from the Internet <URL:http://www.ieeexplore.ieee.org/iel5/12/35041/01671419.pdf?tp=&arnumber=1671419&isnumber=35041> *
SUNG T.-Y.: "Memory-efficient and high-speed split-radix FFT/IFFT processor based on pipelined CORDIC rotations", VISION, IMAGE AND SIGNAL PROCESSING, IEE PROCEEDINGS, vol. 153, no. 4, August 2006 (2006-08-01), pages 405 - 410, Retrieved from the Internet <URL:http://www.ieeexplore.ieee.org/iel5/2200/35271/01677109.pdf=tp=&arnumber=1677109&isnumber=35271> *
YU C.-Y. ET AL.: "Efficient CORDIC Designs for Multi-Mode OFDM FFT", ACOUTICS, SPEECH AND SIGNAL PROCESSING, 2006. ICASSP 2006 PROCEEDINGS. 2006 IEEE INTERNATIONAL CONFERENCE, vol. 3, 14 May 2006 (2006-05-14) - 19 May 2006 (2006-05-19), pages III, Retrieved from the Internet <URL:http://www.ieeeexplore.ieee.org/iel5/11024/34759/01660834.pdf?tp=&arnumber=1660834&isnumber=34759> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016007069A1 (en) * 2014-07-09 2016-01-14 Mario Garrido Galvez Device and method for performing a fourier transform on a three dimensional data set

Also Published As

Publication number Publication date
WO2008125708A8 (es) 2008-12-31
ES2283236B2 (es) 2008-03-16
ES2283236A1 (es) 2007-10-16

Similar Documents

Publication Publication Date Title
US11416638B2 (en) Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
Lakshmi et al. CORDIC architectures: A survey
US6081821A (en) Pipelined, high-precision fast fourier transform processor
KR0146334B1 (ko) Cordic 복소수 승산기
Maharatna et al. Virtually scaling-free adaptive CORDIC rotator
Guoqiang et al. Asymptotic expansion for the trapezoidal nyström method of linear volterra—fredholm equations
Garrido et al. Efficient memoryless CORDIC for FFT computation
Kulshreshtha et al. CORDIC-based high throughput sliding DFT architecture with reduced error-accumulation
ES2283236B2 (es) Procedimiento y arquitectura sin memoria para el calculo de las rotaciones de la fft.
Nguyen et al. High-speed ASIC implementation of tanh activation function based on the CORDIC algorithm
Yu et al. Efficient CORDIC designs for multi-mode OFDM FFT
Kaya et al. Optimized 4-parallel 1024-point MSC FFT
US20250322030A1 (en) Cryptographic System Pipelined Number Theoretic Transform Accelerator
Ferizi et al. Design and implementation of a fixed-point radix-4 FFT optimized for local positioning in wireless sensor networks
Bansal et al. Memory-efficient Radix-2 FFT processor using CORDIC algorithm
Alsuhli et al. Efficient NTT/INTT processor for FALCON post-quantum cryptography
Hazarika et al. Energy efficient VLSI architecture of real‐valued serial pipelined FFT
Ananda Mohan Reverse Converters for the Moduli Set {2 n, 2 n-1-1, 2 n-1, 2 n+ 1-1}(n Even)
Baghaie et al. DHT algorithm based on encoding algebraic integers
Glittas et al. Pipelined FFT architectures for real-time signal processing and wireless communication applications
Kulshreshtha et al. Improved VLSI architecture for triangular windowed sliding DFT based on CORDIC algorithm
Neji et al. Architecture and FPGA implementation of the CORDIC algorithm for fingerprints recognition systems
Jones Design for Resource-Efficient Parallel Solution to Real-Data Sparse FFT
US20050256918A1 (en) Rotational sliding aperture fourier transform
Neji et al. FPGA Implementation of the CORDIC Algorithm for Fingerprints Recognition Systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08761467

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08761467

Country of ref document: EP

Kind code of ref document: A1