donde para fuera de la región Este artículo utiliza notaciones abstractas comunes, como o en las que se entiende que las funciones deben considerarse en su totalidad, en lugar de en instantes específicos (ver Convolución#Notación ).
El concepto es dividir el problema en múltiples convoluciones con segmentos cortos de :
donde es una longitud de segmento arbitraria. Entonces :
y puede escribirse como una suma de convoluciones cortas : [1]
donde la convolución lineal es cero fuera de la región Y para cualquier parámetro [A] es equivalente a la convolución circular de punto con dentro de la región La ventaja es que la convolución circular se puede calcular de manera más eficiente que la convolución lineal, de acuerdo con el teorema de convolución circular :
( Algoritmo de superposición y adición para convolución lineal )h = filtro FIRM = longitud(h)Nx = longitud(x)N = 8 × 2^ceiling( log2(M) ) (8 veces la potencia más pequeña de dos mayor que la longitud del filtro M. Consulte la siguiente sección para una opción ligeramente mejor).
step_size = N - (M-1) (L en el texto anterior)H = DFT(h, N)posición = 0y(1 : Nx + M-1) = 0mientras posición + tamaño de paso ≤ Nx hacer y(posición+(1:N)) = y(posición+(1:N)) + IDFT(DFT(x(posición+(1:tamaño_de_paso)), N) × H) posición = posición + tamaño de pasofin
Consideraciones de eficiencia
Cuando la DFT y la IDFT se implementan mediante el algoritmo FFT, el pseudocódigo anterior requiere aproximadamente N (log 2 (N) + 1) multiplicaciones complejas para la FFT, el producto de matrices y la IFFT. [B] Cada iteración produce N-M+1 muestras de salida, por lo que la cantidad de multiplicaciones complejas por muestra de salida es aproximadamente :
Por ejemplo, cuando y la ecuación 3 es igual a , mientras que la evaluación directa de la ecuación 1 requeriría hasta multiplicaciones complejas por muestra de salida, siendo el peor caso cuando tanto y tienen valores complejos. Observe también que para cualquier ecuación 3 dada tiene un mínimo con respecto a La figura 2 es un gráfico de los valores de que minimizan la ecuación 3 para un rango de longitudes de filtro ( ).
En lugar de la ecuación 1 , también podemos considerar la aplicación de la ecuación 2 a una secuencia larga de muestras de longitud. La cantidad total de multiplicaciones complejas sería:
Comparativamente, el número de multiplicaciones complejas requeridas por el algoritmo de pseudocódigo es:
Por lo tanto, el costo del método de superposición-adición es casi igual, mientras que el costo de una sola convolución circular grande es casi . Los dos métodos también se comparan en la Figura 3, creada mediante simulación de Matlab. Los contornos son líneas de proporción constante de los tiempos que lleva realizar ambos métodos. Cuando el método de superposición-adición es más rápido, la proporción supera 1 y se ven proporciones tan altas como 3.
^ Esta condición implica que el segmento tiene al menos ceros agregados, lo que evita la superposición circular de los transitorios de subida y bajada de salida.
^ Rabiner, Lawrence R.; Gold, Bernard (1975). "2.25" . Teoría y aplicación del procesamiento de señales digitales . Englewood Cliffs, NJ: Prentice-Hall. págs. 63–65. ISBN.0-13-914101-4.
Lectura adicional
Oppenheim, Alan V.; Schafer, Ronald W. (1975). Procesamiento de señales digitales . Englewood Cliffs, Nueva Jersey: Prentice-Hall. ISBN 0-13-214635-5.
Hayes, M. Horace (1999). Procesamiento de señales digitales . Serie Schaum's Outline. Nueva York: McGraw Hill. ISBN 0-07-027389-8.
Senobari, Nader Shakibay; Funning, Gareth J.; Keogh, Eamonn; Zhu, Yan; Yeh, Chin-Chia Michael; Zimmerman, Zachary; Mueen, Abdullah (2019). "Correlación cruzada supereficiente (SEC-C): un código de filtrado rápido y adaptado adecuado para computadoras de escritorio" (PDF) . Seismological Research Letters . 90 (1): 322–334. doi :10.1785/0220180122. ISSN 0895-0695.