Filtr o skończonej odpowiedzi impulsowej (ang. finite impulse response filter, FIR filter) – rodzaj nierekursywnego filtru cyfrowego.
Nazwa FIR oznacza filtr o skończonej odpowiedzi impulsowej (polski akronim tej nazwy to filtr SOI). Oznacza to tyle, że reakcja na wyjściu tego układu na pobudzenie o skończonej długości jest również skończona (przez długość pobudzenia i odpowiedzi rozumie się długość odcinka czasu, dla którego próbki sygnału przyjmują wartości niezerowe). Aby warunek ten był spełniony, w tego typu filtrach nie występuje pętla sprzężenia zwrotnego, co widać na poniższym schemacie (zob. filtr IIR, w którym występuje pętla sprzężenia zwrotnego).
Na powyższym schemacie człony b i {\displaystyle b_{i}} oznaczają współczynniki filtru, a człony z − 1 {\displaystyle z^{-1}} są opóźnieniami o jedną próbkę.
Wzór na transmitancję filtru jest wielomianem opisanym za pomocą współczynników filtru:
Odpowiedź impulsowa filtru FIR jest tożsama z ciągiem współczynników { b i } . {\displaystyle \{b_{i}\}.}
Realizacja skomplikowanych transmitancji wymaga wielomianu wysokiego rzędu, dlatego w porównaniu z filtrem o nieskończonej odpowiedzi impulsowej dla uzyskania podobnej charakterystyki potrzeba więcej zasobów sprzętowych, przez co realizacja jest bardziej złożona obliczeniowo. Współczesne implementacje filtrów FIR wykorzystują realizacje polifazowe oraz transformacje ortogonalne (DFT, DCT), co znacząco zmniejsza złożoność, przybliżając ją do złożoności filtrów IIR.
Filtry FIR są obecnie częściej stosowane niż IIR z powodu następujących zalet:
Jedynymi, choć istotnymi, wadami filtrów FIR w porównaniu do IIR są:
Rozważane jest działanie filtru o skończonej odpowiedzi impulsowej. Założeniem jest estymacja średniego kosztu użytkowania energii elektrycznej na podstawie rachunku za prąd z bieżącego oraz poprzedniego miesiąca. Równanie, według którego będzie dokonywana ww. estymacja, jest następujące:
gdzie:
Powyższe równanie nazywa się równaniem różnicowym filtru.
Założeniem jest, że rachunki x ( n ) {\displaystyle x(n)} za kolejne miesiące wyglądały następująco:
Przykładowo, dla miesiąca n = 4 {\displaystyle n=4} otrzymuje się:
Dla miesiąca n = 1 {\displaystyle n=1} przyjmuje się, że x ( 0 ) = 0 , {\displaystyle x(0)=0,} w związku z czym:
Wykres kolejnych rachunków i estymowanych średnich przedstawiony jest na rysunku poniżej (sygnał określony jest tylko dla dyskretnych wartości n , {\displaystyle n,} natomiast linie pomagają zaobserwować trend sygnału):
Na podstawie tego prostego przykładu można wysnuć następujące, użyteczne wnioski:
Realizację powyższego filtru przedstawiono na poniższym rysunku, gdzie blok opóźniający o jedną próbkę oznaczono przez z − 1 {\displaystyle z^{-1}} (patrz transformata Z).