Suponiendo que realiza operaciones de vector de elementos a la vez, puede desenrollar la ecuación de diferencia por un factor de M con bastante facilidad para el filtro de un solo polo simple. Suponga que ya ha calculado todas las salidas hasta y [ n ] . Luego, puede calcular los siguientes de la siguiente manera:
y [ n + 1 ]METROMETROy[ n ]
y[ n + 1 ]y[ n + 2 ]= ( 1 - a ) y[ n ] + a x [ n + 1 ]= ( 1 - a ) y[ n + 1 ] + a x [ n + 2 ]= ( 1 - a ) ( ( 1 - a ) y[ n ] + a x [ n + 1 ] ) + a x [ n + 2 ]= ( 1 - a )2y[ n ] + a ( 1 - a ) x [ n + 1 ] + a x [ n + 2 ]⋮
En general, puede escribir como:y[ n + k ]
y[ n + k ] = ( 1 - a )ky[ n ] + ∑i = 1ka ( 1 - a )k - ix [ n + i ]
Para cada índice de muestra , esto se parece a un filtro FIR con k + 1 toques: un toque multiplica la última salida del filtro y [ n ] , y los otros k taps multiplican las entradas del filtro x [ n + 1 ] , ... , x [ n + k ] . Lo bueno es que los coeficientes utilizados para todos estos grifos se pueden calcular previamente, lo que le permite desenrollar el filtro recursivo en M M + 1n + kk + 1y[ n ]kx [ n + 1 ] , … , x [ n + k ]METRO METRO+ 1-tap filtros paralelos no recursivos (estos filtros calculan las muestras de salida ), actualizando el término de retroalimentación cada M muestras de salida. Entonces, dada una condición inicial y [ n ] (que se supone que es la última salida calculada en la iteración vectorizada anterior), puede calcular las siguientes M salidas en paralelo.y[ n + 1 ] , ... , y[ n + M]METROy[ n ]METRO
Hay algunas advertencias a este enfoque:
Si hace grande, entonces terminas multiplicando un grupo de números para obtener los coeficientes FIR efectivos para los filtros desenrollados. Dependiendo de su formato de número y el valor de a , esto podría tener implicaciones de precisión numérica.METROuna
METROy[ n + k ]kMETROk2 millonesMETROMETROMETRO+ 1METRO
R = M+ 12 millones= 12( 1 + 1METRO)
METROMETRO= 4METRO= 8y[n]y[n−1]. Este efecto es obviamente muy dependiente de la plataforma.