Designs an FIR linear phase lowpass filter.

LOWPASS( |
order, rate, fc, ripple, attn, fstop, "unity_dc") |

order |
- |
Optional. An integer, the filter length. If not specified, the filter order is automatically estimated. |

rate |
- |
A real, the sample rate of the filter in Hertz. |

fc |
- |
A real, the cutoff frequency in Hertz. |

ripple |
- |
Optional. A real, the passband ripple in dB. Defaults to 3 dB. |

attn |
- |
Optional. A real, the stopband attenuation in dB. Defaults to 40 dB. |

fstop |
- |
Optional. A real, the stopband frequency in Hertz. Defaults to |

"unity_dc" |
- |
Optional. A string, "unity_dc" explicitly sets f(0) to 1.0 |

A series, the lowpass filter coefficients. The filter coefficients are identical to the impulse response of the FIR filter.

W1: lowpass(1000.0,100.0)

W1 creates an FIR lowpass filter with a sample rate of 1000 Hz and a cutoff frequency of 100 Hz. The stopband frequency defaults to 150 Hz. The resulting filter is 34 samples long with a passband ripple of 2.6 dB and a stopband attenuation of 49 dB.

W1: lowpass(1000.0, 100.0, 3.0, 50.0, 130.0)

W2: 20*log10(filtmag(W1, {1}, 1024))

Creates a similar filter except the desired stopband attenuation is set to 50 dB and the stopband frequency is lowered to 130 Hz. The resulting filter contains 45 samples with a passband ripple of 2.75 dB and the stopband attenuation increases to 58 dB. W2 displays the frequency response of the filter.

W1: lowpass(1000.0, 100.0, 3.0, 50.0, 130.0)

W2: gsin(1000, 1/1000, 3) + gsin(1000, 1/1000, 250)

W3: firfilterF(W2, W1)

Creates the same FIR lowpass filter as the previous example. W2 contains a series with two sinusoids and W3 applies the filter to recover the lower frequency sinewave.

The LOWPASS filter specifications are depicted as follows:

LOWPASS uses the Remez Exchange algorithm to compute the FIR filter coefficients. The Remez Exchange algorithm will attempt to meet or exceed the filter specifications with a linear phase FIR filter. Although a filter designed with the Remez Exchange algorithm exhibits passband ripple, the resulting filter generally has fewer coefficients than other FIR design methods.

The filter order refers to the number of resulting filter coefficients.

The optional "unity_dc" flag guarantees the resulting filter has a frequency response of 1.0 (i.e. 0 dB) at f(0).

The lowpass edges must lie between 0.0 and 0.5 * rate (the Nyquist frequency). Overlapping band edges are not permitted.

See KWLPASS to design a linear phase FIR lowpass filter with a flat passband using the Kaiser Window method.

See BESSEL, BUTTERWORTH, CHEBY1, CHEBY2 and ELLIPTIC to design IIR filters using the Bilinear Transform method.

LOWPASS requires the DADiSP/Filters Module.

Oppenheim and Schafer.

Digital Signal Processing

Prentice Hall, 1975

Digital Signal Processing Committee

Programs for Digital Signal Processing

I.E.E.E. Press, 1979