Sinc filter

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
The normalized sinc function, the impulse response of the sinc filter.
The rectangular function, the frequency response of the sinc filter.

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 (aka 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:

H(f) = \mathrm{rect} \left( \frac{f}{2B} \right)

where B\, is an arbitrary cutoff frequency (aka bandwidth). The impulse response of such a filter is given by the inverse Fourier transform of the frequency response:


\begin{align}
h(t) = \mathcal{F}^{-1} \{ H (f)\} & = 2B \frac{\sin(2\pi Bt)}{2\pi Bt} \\
 & = 2B \, \mathrm{sinc}(2 B t)
\end{align}

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.

Brick-wall filters

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:

 h_{LPF}(t) = 2B_L \, \mathrm{sinc}\left(2B_L t\right)
 H_{LPF}(f) = \mathrm{rect}\left( \frac{f}{2B_L} \right).

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):[1]

 h_{BPF}(t) = 2B_H \, \mathrm{sinc}\left(2B_H t\right) - 2B_L \, \mathrm{sinc}\left(2B_L t\right)
 H_{BPF}(f) = \mathrm{rect}\left( \frac{f}{2B_H} \right) - \mathrm{rect}\left( \frac{f}{2B_L} \right).

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:

 h_{HPF}(t) = \delta(t) - 2B_H \, \mathrm{sinc}\left(2B_H t\right)
 H_{HPF}(f) = 1 - \mathrm{rect}\left( \frac{f}{2B_H} \right).

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.[citation needed]

Frequency-domain sinc

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.

Sinc-in-frequency CIC filters, among many other applications, are almost universally used for decimating delta-sigma ADCs, as they are easy to implement and nearly optimal for this use.[2]

Stability

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.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.

External links