Saltar al contenido principal
LibreTexts Español

6.5: La generación automática de DFT cortos de Winograd

  • Page ID
    86862
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Introducción

    Las DFT eficientes de longitud principal son importantes por dos razones. Una aplicación particular puede requerir una DFT de longitud principal y, en segundo lugar, la longitud máxima y la variedad de longitudes de un algoritmo PFA o WFTA dependen de la disponibilidad de módulos de longitud principal.

    Esto analiza la automatización del proceso que Winograd utilizó para construir FFT de longitud principal\(N<7\) y al que Johnson y Burrus extendieron\(N<19\). También describe un programa que diseñará cualquier FFT de longitud prima en principio, y también generará automáticamente el algoritmo como un programa C y dibujará el gráfico de flujo correspondiente.

    El enfoque de Winograd utiliza el método de Rader para convertir una DFT de\(P-1\) longitud prima en una convolución cíclica de longitud, reducción de residuos polinómicos para descomponer el problema en convoluciones más pequeñas y el algoritmo Toom-Cook. El Teorema del resto chino (TRC) para polinomios se utiliza entonces para recombinar las circunvoluciones más cortas. Desafortunadamente, el procedimiento de diseño derivado directamente de la teoría de Winograd se vuelve engorroso para DFT de mayor longitud, y esto a menudo ha impedido el diseño de programas de DFT para longitudes mayores que\(19\).

    Aquí utilizamos tres métodos para facilitar la construcción de módulos FFT de longitud principal. En primer lugar, se utiliza la propiedad de intercambio de matriz para que se pueda utilizar la transposición del operador de reducción en lugar del operador de reconstrucción CRT más complicado. Esto se combina luego con el método numérico para obtener los coeficientes de multiplicación más que con el uso directo del CRT. También nos desviamos del algoritmo Toom-Cook, porque requiere demasiadas adiciones para las longitudes en las que estamos interesados. En su lugar, usamos un algoritmo de multiplicación polinomial iterado. Hemos incorporado estas tres ideas en un único procedimiento estructural que automatiza el diseño de FFT de longitud principal.

    Descripción de la matriz

    Es importante que cada paso en la FFT de Winograd pueda describirse utilizando matrices. Expresando la convolución cíclica como una forma bilineal, se puede obtener una forma compacta de DFT de longitud de prima.

    Si\(y\) es la convolución cíclica de\(h\) y\(x\), entonces se\(y\) puede expresar como

    \[y=C\left [ Ax.\ast Bh \right ] \nonumber \]

    donde, usando la convención de Matlab, .* representa multiplicación punto por punto. Cuándo\(A\),\(B\) y\(C\) se les permite ser complejos,\(A\) y\(B\) se ven como el operador DFT y\(C\), el DFT inverso. Cuando sólo se permiten números reales\(A\),,\(B\) y\(C\) serán rectangulares. Usando la propiedad de intercambio matricial, este formulario puede escribirse como

    \[y=RB^{T}\left [ C^{T}Rh.\ast Ax \right ] \nonumber \]

    donde\(R\) está la matriz de permutación que invierte el orden.

    Cuando\(h\) es fijo, como lo es al considerar DFT de longitud prima, el término\(C^TRh\) puede ser precalculado y una matriz diagonal\(D\) formada por

    \[D=diag{C^{T}Rh} \nonumber \]

    Esto es ventajoso porque en general,\(C\) es más complicado que\(B\), por lo que la capacidad de “ocultar”\(C\) guarda cómputos. Ahoray=RBTDAxy=RBTDAx“role="presentación” style="position:relative;” tabindex="0">


    This page titled 6.5: La generación automática de DFT cortos de Winograd is shared under a CC BY license and was authored, remixed, and/or curated by C. Sidney Burrus.