La convolución FFT El solape-suma Método El método de solape-suma se basa en la técnica fundamental en DSP: 1. descomponer la señal en componentes simples. 2. el proceso de cada uno de los componentes de alguna manera útil. 3. recombinar los componentes procesados en la señal final.
La Figura 18-1 muestra un ejemplo de cómo se hace esto para el método de solape-suma. La figura (a) es la señal a filtrar, mientras que (b) muestra el núcleo del filtro a utilizar, un filtro de paso bajo de ventana-sinc. Saltando a la parte inferior de la figura, (i) muestra la señal filtrada, una versión suavizada de (a). La clave de este método es la forma en las longitudes de estas señales se ven afectados por la convolución. Cuando una señal de muestra de N se convoluciona con un kernel de filtros de muestra M, la señal de salida es N+ M - 1 muestras de largo. Por ejemplo, la señal de entrada, (a), es de 300 muestras (correr 0-299), el núcleo del filtro, (b), es de 101 muestras (que va de 0 a 100), y la señal de salida, (i), es 400 muestras (que va de 0 a la 399). En otras palabras, cuando se filtra una señal de N de las muestras, se expandió por M - 1 puntos a la derecha. (Esto es suponiendo que el núcleo del filtro se extiende desde el índice 0 a M. Si se utilizan índices negativos en el núcleo del filtro, la expansión también estará a la izquierda). En (a), los ceros se han añadido a la señal entre la muestra 300 y 399 para ilustrar donde ocurrirá esta expansión. Figuras (c), (d) y (e) muestran la descomposición utilizado en el método de solape-suma. La señal se divide en segmentos, y cada segmento que tiene 100 muestras de la señal original. Además, 100 ceros se añaden a la derecha de cada segmento. En el siguiente paso, cada segmento se filtra de forma individual mediante la convolución con el núcleo del filtro. Esto produce los segmentos de salida que se muestran en (f), (g), y (h). Debido a que cada segmento de entrada es de 100 muestras de largo, y el núcleo del filtro es de 101 muestras de largo, cada segmento de salida será de 200 muestras de largo. El punto importante a entender es que los 100 ceros se añadieron a cada segmento de entrada para permitir la expansión durante la convolución. Tenga en cuenta que los resultados de expansión en los segmentos de salida se solapan entre sí. se añaden estos segmentos de salida superpuestas para dar la señal de salida, (i). El método de solape-suma produce exactamente la misma señal de salida como convolución directa. La desventaja es una complejidad mucho mayor programa para realizar un seguimiento de las muestras que se superponen. La convolución FFT FFT convolución utiliza el principio de que la multiplicación en el dominio de frecuencia corresponde a la convolución en el dominio del tiempo. La señal de entrada se transforma en el dominio de frecuencia usando el DFT, multiplicado por la respuesta de frecuencia del filtro, y luego se transformó de nuevo en el dominio del tiempo mediante la inversa DFT.
Al utilizar el algoritmo de FFT para calcular la DFT, de convolución a través del dominio de frecuencia puede ser más rápido que la convolución directamente las señales de dominio de tiempo. El resultado final es el mismo; sólo el número de cálculos se ha cambiado por un algoritmo más eficiente. Por esta razón, FFT convolución también se llama convolución de alta velocidad. FFT convolución utiliza el método de solape-suma se muestra en la Fig. 181; Sólo la forma en que los segmentos de entrada se convierten en los segmentos de salida se cambia.
La Figura 18-2 muestra un ejemplo de cómo un segmento de entrada se convierte en un segmento de salida de FFT convolución. Para empezar, la respuesta de frecuencia del filtro se encuentra tomando la DFT del núcleo de filtro, utilizando la FFT.
Por ejemplo, (a) muestra un ejemplo del núcleo de filtro, un filtro de paso de banda de ventana-sinc. La FFT convierte esta en las partes real e imaginaria de la respuesta de frecuencia, que se muestran en (b) y (c). Estas señales de dominio de frecuencia pueden no ven como un filtro de paso de banda, ya que son en forma rectangular. Recuerde, la forma polar es generalmente mejor para los seres humanos para comprender el dominio de la frecuencia, mientras que la forma rectangular es normalmente mejor para los cálculos matemáticos. Estas partes real e imaginaria se almacenan en el ordenador para su uso cuando se calcula cada segmento. La figura (d) muestra el segmento de entrada de ser procesado. La FFT se utiliza para encontrar su espectro de frecuencia, que se muestra en (e) y (f). El espectro de frecuencia del segmento de salida, (h) y (i) se encuentra a continuación, multiplicando respuesta de frecuencia del filtro, (b) y (c), por el espectro del segmento de entrada, (e) y (f). Dado que estos espectros se componen de partes real e imaginaria, que se multiplican de acuerdo con la Ec. 9-1 en el capítulo 9.
La FFT inversa se utiliza para encontrar el segmento de salida, (g), a partir de su espectro de frecuencia, (h) y (i). Es importante reconocer que este segmento de salida es exactamente la misma que la que se obtendría por la convolución directa del segmento de entrada, (d), y el núcleo del filtro, (a). Los FFT debe ser lo suficientemente largo que la convolución circular no tiene lugar. Esto significa que la FFT debe ser la misma longitud que el segmento de salida, (g). Por ejemplo, en el ejemplo de la fig. 18-2, el núcleo de filtro contiene 129 puntos y cada segmento contiene 128 puntos, lo que hace segmento de salida de 256 puntos largos. Esto exige 256 FFT de punto para ser utilizado. Esto significa que el núcleo del filtro, (a), debe ser rellenado con ceros 127 para llevarlo a una longitud total de 256 puntos. Del mismo modo, cada uno de los segmentos de entrada, (d), debe ser tabulada con 128 ceros. Como otro ejemplo, imagine que necesita convolución una señal muy larga con un núcleo de filtro que tiene 600 muestras. Una alternativa sería el uso de segmentos de 425 puntos, y 1024 FFT de punto. Otra alternativa sería el uso de segmentos de 1449 puntos y 2048 FFT de punto. Las mejoras de velocidad ¿Cuando es más rápido que la FFT convolución convolución estándar? La respuesta depende de la longitud del núcleo de filtro, como se muestra en la Fig. 18-3.
El tiempo kernel filtro. El cruce se produce cuando el núcleo de filtro tiene alrededor de 40 a 80 muestras (dependiendo del hardware en particular utilizado). La idea importante para recordar: filtro de núcleos más cortas de unos 60 puntos se pueden implementar más rápido con convolución estándar, y el tiempo de ejecución es proporcional a la longitud del grano. Más largos núcleos de filtro se pueden implementar más rápido con FFT convolución. Con FFT convolución, el núcleo del filtro se puede hacer como el tiempo que desee, con muy poca penalización en tiempo de ejecución. Por ejemplo, un filtro de kernel 16000 punto sólo requiere el doble de tiempo para ejecutar como uno con sólo 64 puntos. La velocidad de la convolución también determina la precisión del cálculo. Esto es debido a que el error de redondeo en la señal de salida depende del número total de cálculos, que es directamente proporcional al tiempo de cálculo. Si la señal de salida se calcula más rápido, sino que también se calculará con mayor precisión. Por ejemplo, imagina la convolución de una señal con un núcleo de filtro 1000 puntos, con punto flotante de precisión simple. El uso de convolución estándar, el ruido típico de redondeo puede esperarse que sea aproximadamente 1 parte en 20.000 (de las directrices contenidas en el Capítulo 4). En comparación, FFT convolución se puede esperar que sea un orden de magnitud más rápido, y un orden de magnitud más precisa (es decir, 1 parte en 200.000). Mantenga convolución FFT escondido para cuando se tiene una gran cantidad de datos a procesar y necesita un núcleo del filtro extremadamente larga. Pensar en términos de una señal de millones de muestras y un núcleo de filtro mil puntos.