In
signal processing
Signal processing is an electrical engineering subfield that focuses on analyzing, modifying and synthesizing '' signals'', such as sound, images, and scientific measurements. Signal processing techniques are used to optimize transmissions, ...
, a finite impulse response (FIR) filter is a
filter whose
impulse response
In signal processing and control theory, the impulse response, or impulse response function (IRF), of a dynamic system is its output when presented with a brief input signal, called an impulse (). More generally, an impulse response is the reac ...
(or response to any finite length input) is of ''finite'' duration, because it settles to zero in finite time. This is in contrast to
infinite impulse response (IIR) filters, which may have internal feedback and may continue to respond indefinitely (usually decaying).
The
impulse response
In signal processing and control theory, the impulse response, or impulse response function (IRF), of a dynamic system is its output when presented with a brief input signal, called an impulse (). More generally, an impulse response is the reac ...
(that is, the output in response to a
Kronecker delta
In mathematics, the Kronecker delta (named after Leopold Kronecker) is a function of two variables, usually just non-negative integers. The function is 1 if the variables are equal, and 0 otherwise:
\delta_ = \begin
0 &\text i \neq j, \\
1 ...
input) of an N
th-order discrete-time FIR filter lasts exactly
samples (from first nonzero element through last nonzero element) before it then settles to zero.
FIR filters can be
discrete-time or
continuous-time, and
digital or
analog
Analog or analogue may refer to:
Computing and electronics
* Analog signal, in which information is encoded in a continuous variable
** Analog device, an apparatus that operates on analog signals
*** Analog electronics, circuits which use analo ...
.
Definition

For a
causal discrete-time FIR filter of order ''N'', each value of the output sequence is a weighted sum of the most recent input values:
:
where:
*