In signal processing, a sinc filter is an idealized filter that removes all frequency components above a given cutoff frequency, without affecting lower frequencies, and has linear phase response. The filter's impulse response is a sinc function in the time domain, and its frequency response is a rectangular function.
It is an "ideal" low-pass filter in the frequency sense, perfectly passing low frequencies, perfectly cutting high frequencies; and thus may be considered to be a brick-wall filter.
Real-time filters can only approximate this ideal, since an ideal sinc filter (a.k.a. rectangular filter) is non-causal and has an infinite delay, but it is commonly found in conceptual demonstrations or proofs, such as the sampling theorem and the Whittaker–Shannon interpolation formula.
In mathematical terms, the desired frequency response is the rectangular function:
where is an arbitrary cutoff frequency (a.k.a. bandwidth). The impulse response of such a filter is given by the inverse Fourier transform of the frequency response:
where sinc is the normalized sinc function.
As the sinc filter has infinite impulse response in both positive and negative time directions, it must be approximated for real-world (non-abstract) applications; a windowed sinc filter is often used instead. Windowing and truncating a sinc filter kernel in order to use it on any practical real world data set reduces its ideal properties.
An idealized electronic filter, one that has full transmission in the pass band, and complete attenuation in the stop band, with abrupt transitions, is known colloquially as a "brick-wall filter", in reference to the shape of the transfer function. The sinc filter is a brick-wall low-pass filter, from which brick-wall band-pass filters and high-pass filters are easily constructed.
The lowpass filter with brick-wall cutoff at frequency BL has impulse response and transfer function given by:
The band-pass filter with lower band edge BL and upper band edge BH is just the difference of two such sinc filters (since the filters are zero phase, their magnitude responses subtract directly):
The high-pass filter with lower band edge BH is just a transparent filter minus a sinc filter, which makes it clear that the Dirac delta function is the limit of a narrow-in-time sinc filter:
Brick-wall filters that run in realtime are not physically realizable as they have infinite latency (i.e., its compact support in the frequency domain forces its time response not to have compact support meaning that it is ever-lasting) and infinite order (i.e., the response cannot be expressed as a linear differential equation with a finite sum), but approximate implementations are sometimes used and they are frequently called brick-wall filters.
The name "sinc filter" is applied also to the filter shape that is rectangular in time and a sinc function in frequency, as opposed to the ideal low-pass sinc filter, which is sinc in time and rectangular in frequency. In case of confusion, one may refer to these as sinc-in-frequency and sinc-in-time, according to which domain the filter is sinc in.
The simplest implementation of a Sinc-in-frequency filter is a group-averaging filter, also known as accumulate-and-dump filter. This filter also performs a data rate reduction.
It collects N data samples, accumulates them and provides the accumulator value as output. Thus, the decimation factor of this filter is N. It can be modelled as a FIR filter with all N coefficients equal, followed by a N-time downsampling block. The simplicity of the filter, requiring just an accumulator as central data processing block, is foiled with strong aliasing effects: an N sample filter aliases all attenuated and unattenuated signal components lying above to the baseband ranging from 0 to ( fS is the input sample rate).
A group averaging filter processing N samples has N/2 transmission zeroes.
The picture "transmission function of a 16sample group averaging filter" shows how the transmission function looks above the Nyquist frequency.
The sinc filter is not bounded-input–bounded-output (BIBO) stable. That is, a bounded input can produce an unbounded output, because the integral of the absolute value of the sinc function is infinite. A bounded input that produces an unbounded output is sgn(sinc(t)). Another is sin(2πBt)u(t), a sine wave starting at time 0, at the cutoff frequency.