Comb filter

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description

File:Comb filter feedforward.svg
Feedforward comb filter structure

In signal processing, a comb filter is a filter implemented by adding a delayed version of a signal to itself, causing constructive and destructive interference. The frequency response of a comb filter consists of a series of regularly spaced notches in between regularly spaced peaks (sometimes called teeth) giving the appearance of a comb.

Comb filters exist in two forms, feedforward and feedback; which refer to the direction in which signals are delayed before they are added to the input.

Comb filters may be implemented in discrete time or continuous time forms which are very similar.

Applications

File:Sony VPL-HS1 - EP-GW 1-682-352-12 - Motorola MC141627FT-1.jpg
Advanced PAL Comb Filter-II (APCF-II, Motorola MC141627FT)

Comb filters are employed in a variety of signal processing applications, including:

In acoustics, comb filtering can arise as an unwanted artifact. For instance, two loudspeakers playing the same signal at different distances from the listener create a comb filtering effect on the audio.[1] In any enclosed space, listeners hear a mixture of direct sound and reflected sound. The reflected sound takes a longer, delayed path compared to the direct sound, and a comb filter is created where the two mix at the listener.[2] Similarly, comb filtering may result from mono mixing of multiple mics, hence the 3:1 rule of thumb that neighboring mics should be separated at least three times the distance from its source to the mic.[3]

Discrete time implementation

Feedforward form

File:Comb filter feedforward.svg
Feedforward comb filter structure in discrete time

The general structure of a feedforward comb filter is described by the difference equation:

y[n]=x[n]+αx[nK]

where K is the delay length (measured in samples), and αScript error: No such module "Check for unknown parameters". is a scaling factor applied to the delayed signal. The zScript error: No such module "Check for unknown parameters". transform of both sides of the equation yields:

Y(z)=(1+αzK)X(z)

The transfer function is defined as:

H(z)=Y(z)X(z)=1+αzK=zK+αzK

Frequency response

File:Comb filter response ff pos.svg
Feedforward magnitude response for various positive values of αScript error: No such module "Check for unknown parameters". and K = 1Script error: No such module "Check for unknown parameters". in discrete time
File:Comb filter response ff neg.svg
Feedforward magnitude response for various negative values of αScript error: No such module "Check for unknown parameters". and K = 1Script error: No such module "Check for unknown parameters". in discrete time

The frequency response of a discrete-time system expressed in the zScript error: No such module "Check for unknown parameters".-domain is obtained by substitution z=ejω, where j is the imaginary unit and ω is angular frequency. Therefore, for the feedforward comb filter:

H(ejω)=1+αejωK

Using Euler's formula, the frequency response is also given by

H(ejω)=[1+αcos(ωK)]jαsin(ωK)

Often of interest is the magnitude response, which ignores phase. This is defined as:

|H(ejω)|=Re{H(ejω)}2+Im{H(ejω)}2

In the case of the feedforward comb filter, this is:

|H(ejω)|=(1+αcos(ωK))2+(αsin(ωK))2=(1+α2)+2αcos(ωK)

The (1+α2) term is constant, whereas the 2αcos(ωK) term varies periodically. Hence the magnitude response of the comb filter is periodic.

The graphs show the periodic magnitude response for various values of α. Some important properties:

  • The response periodically drops to a local minimum (sometimes known as a notch), and periodically rises to a local maximum (sometimes known as a peak or a tooth).
  • For positive values of α, the first minimum occurs at half the delay period and repeats at even multiples of the delay frequency thereafter:
f=12K,32K,52Kω=πK,3πK,5πK
  • The levels of the maxima and minima are always equidistant from 1.
  • When α=±1, the minima have zero amplitude. In this case, the minima are sometimes known as nulls.
  • The maxima for positive values of α coincide with the minima for negative values of α, and vice versa.

Impulse response

The feedforward comb filter is one of the simplest finite impulse response filters.[4] Its response is simply the initial impulse with a second impulse after the delay.

Pole–zero interpretation

Looking again at the zScript error: No such module "Check for unknown parameters".-domain transfer function of the feedforward comb filter:

H(z)=zK+αzK

the numerator is equal to zero whenever zK = −αScript error: No such module "Check for unknown parameters".. This has KScript error: No such module "Check for unknown parameters". solutions, equally spaced around a circle in the complex plane; these are the zeros of the transfer function. The denominator is zero at zK = 0Script error: No such module "Check for unknown parameters"., giving KScript error: No such module "Check for unknown parameters". poles at z = 0Script error: No such module "Check for unknown parameters".. This leads to a pole–zero plot like the ones shown.

File:Comb filter pz ff pos.svg
Pole–zero plot of feedforward comb filter with K = 8Script error: No such module "Check for unknown parameters". and α = 0.5Script error: No such module "Check for unknown parameters". in discrete time
File:Comb filter pz ff neg.svg
Pole–zero plot of feedforward comb filter with K = 8Script error: No such module "Check for unknown parameters". and α = −0.5Script error: No such module "Check for unknown parameters". in discrete time

Feedback form

File:Comb filter feedback.svg
Feedback comb filter structure in discrete time

Similarly, the general structure of a feedback comb filter is described by the difference equation:

y[n]=x[n]+αy[nK]

This equation can be rearranged so that all terms in y are on the left-hand side, and then taking the zScript error: No such module "Check for unknown parameters". transform:

(1αzK)Y(z)=X(z)

The transfer function is therefore:

H(z)=Y(z)X(z)=11αzK=zKzKα

Frequency response

File:Comb filter response fb pos.svg
Feedback magnitude response for various positive values of αScript error: No such module "Check for unknown parameters". and K = 2Script error: No such module "Check for unknown parameters". in discrete time
File:Comb filter response fb neg.svg
Feedback magnitude response for various negative values of αScript error: No such module "Check for unknown parameters". and K = 2Script error: No such module "Check for unknown parameters". in discrete time

By substituting z=ejω into the feedback comb filter's zScript error: No such module "Check for unknown parameters".-domain expression:

H(ejω)=11αejωK,

the magnitude response becomes:

|H(ejω)|=1(1+α2)2αcos(ωK).

Again, the response is periodic, as the graphs demonstrate. The feedback comb filter has some properties in common with the feedforward form:

  • The response periodically drops to a local minimum and rises to a local maximum.
  • The maxima for positive values of α coincide with the minima for negative values of α, and vice versa.
  • For positive values of α, the first maximum occurs at 0 and repeats at even multiples of the delay frequency thereafter:
f=0,1K,2K,3Kω=0,2πK,4πK,6πK

However, there are also some important differences because the magnitude response has a term in the denominator:

  • The levels of the maxima and minima are no longer equidistant from 1. The maxima have an amplitude of Template:SfracScript error: No such module "Check for unknown parameters"..
  • The filter is only stable if Template:AbsScript error: No such module "Check for unknown parameters". is strictly less than 1. As can be seen from the graphs, as Template:AbsScript error: No such module "Check for unknown parameters". increases, the amplitude of the maxima rises increasingly rapidly.

Impulse response

The feedback comb filter is a simple type of infinite impulse response filter.[5] If stable, the response simply consists of a repeating series of impulses decreasing in amplitude over time.

Pole–zero interpretation

Looking again at the zScript error: No such module "Check for unknown parameters".-domain transfer function of the feedback comb filter:

H(z)=zKzKα

This time, the numerator is zero at zK = 0Script error: No such module "Check for unknown parameters"., giving KScript error: No such module "Check for unknown parameters". zeros at z = 0Script error: No such module "Check for unknown parameters".. The denominator is equal to zero whenever zK = αScript error: No such module "Check for unknown parameters".. This has KScript error: No such module "Check for unknown parameters". solutions, equally spaced around a circle in the complex plane; these are the poles of the transfer function. This leads to a pole–zero plot like the ones shown below.

File:Comb filter pz fb pos.svg
Pole–zero plot of feedback comb filter with K = 8Script error: No such module "Check for unknown parameters". and α = 0.5Script error: No such module "Check for unknown parameters". in discrete time
File:Comb filter pz fb neg.svg
Pole–zero plot of feedback comb filter with K = 8Script error: No such module "Check for unknown parameters". and α = −0.5Script error: No such module "Check for unknown parameters". in discrete time

Continuous time implementation

Comb filters may also be implemented in continuous time which can be expressed in the Laplace domain as a function of the complex frequency domain parameter s=σ+jω analogous to the z domain. Analog circuits use some form of analog delay line for the delay element. Continuous-time implementations share all the properties of the respective discrete-time implementations.

Feedforward form

The feedforward form may be described by the equation:

y(t)=x(t)+αx(tτ)

where τScript error: No such module "Check for unknown parameters". is the delay (measured in seconds). This has the following transfer function:

H(s)=1+αesτ

The feedforward form consists of an infinite number of zeros spaced along the jω axis (which corresponds to the Fourier domain).

Feedback form

The feedback form has the equation:

y(t)=x(t)+αy(tτ)

and the following transfer function:

H(s)=11αesτ

The feedback form consists of an infinite number of poles spaced along the jω axis.

See also

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Template:Authority control