Unter der Annahme, dass Sie Vektoroperationen Elemente gleichzeitig ausführen , können Sie die Differenzgleichung für den einfachen einpoligen Filter ziemlich einfach um den Faktor M abrollen. Angenommen, Sie haben bereits alle Ausgaben bis zu y [ n ] berechnet . Dann können Sie die folgenden wie folgt berechnen:
y [ n + 1 ]M.M.y[ 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 ]⋮
Im Allgemeinen können Sie schreiben als:y[ n + k ]
y[ n + k ] = ( 1 - a )ky[ n ] + ∑i = 1ka ( 1 - a )k - ix [ n + i ]
Für jeden Abtastindex sieht dies wie ein FIR-Filter mit k + 1 Abgriffen aus: Ein Abgriff multipliziert den letzten Filterausgang y [ n ] und die anderen k Abgriffe multiplizieren die Filtereingänge x [ n + 1 ] , … , x [ n + k ] . Das Schöne ist, dass die für alle diese Abgriffe verwendeten Koeffizienten vorberechnet werden können, sodass Sie den rekursiven Filter in M M + 1 abrollen könnenn + kk + 1y[ n ]kx [ n + 1 ] , … , x [ n + k ]M. M.+ 1-tippen Sie auf parallele nicht rekursive Filter (diese Filter berechnen die Ausgangsabtastwerte ) und aktualisieren den Rückkopplungsterm alle M Ausgangsabtastwerte. Wenn also eine Anfangsbedingung y [ n ] gegeben ist (die als die letzte Ausgabe angenommen wird, die bei der vorherigen vektorisierten Iteration berechnet wurde), können Sie die nächsten M Ausgaben parallel berechnen .y[ n + 1 ] , … , y[ n + M.]]M.y[ n ]M.
Dieser Ansatz weist einige Einschränkungen auf:
M.ein
M.y[ n + k ]kM.k2 M.M.M.M.+ 1M.
R = M.+ 12 M.= 12( 1 + 1M.)
M.M.= 4M.= 8y[n]y[n−1]. Dieser Effekt ist offensichtlich sehr plattformabhängig.