BandpassFilter
BandpassFilter[data,{ω1,ω2}]
applies a bandpass filter with cutoff frequencies ω1 and ω2 to an array of data.
BandpassFilter[data,{{ω,q}}]
uses center frequency ω and quality factor q.
BandpassFilter[data,spec,n]
uses a filter kernel of length n.
BandpassFilter[data,spec,n,wfun]
applies a smoothing window wfun to the filter kernel.
Details and Options
- Bandpass filtering is commonly used in audio equalizers and audio receivers to attenuate low and high frequencies in a signal while leaving the mid-range frequencies unchanged.
- BandpassFilter convolves a digital signal with a finite impulse response (FIR) kernel created using the window method.
- Longer kernels result in a better frequency discrimination.
- The data can be any of the following:
-
list arbitrary-rank numerical array tseries temporal data such as TimeSeries and TemporalData image arbitrary Image or Image3D object audio an Audio or Sound object - The range of frequencies that are attenuated is dependent on the values of the cutoff frequencies ω1 and ω2, with ω2>ω1.
- When applied to images and multidimensional arrays, filtering is applied successively to each dimension starting at level 1. BandpassFilter[data,{{ω11,ω21},…}] uses the frequencies {ω1i,ω2i} for the i dimension.
- BandpassFilter[data,{ω1,ω2}] uses a filter kernel length and smoothing window suitable for the cutoff frequencies {ω1,ω2} and the input data.
- Typical smoothing windows wfun include:
-
BlackmanWindow smoothing with a Blackman window DirichletWindow no smoothing HammingWindow smoothing with a Hamming window {v1,v2,…} use a window with values vi f create a window by sampling f between and - The following options can be given:
-
Padding "Fixed" the padding value to use SampleRate Automatic sample rate assumed for the input - By default, SampleRate->1 is assumed for images as well as data. For audio signals and time series, the sample rate is either extracted or computed from the input data.
- With SampleRatesr, the cutoff frequency ωc should be between 0 and sr.
Examples
open allclose allBasic Examples (3)
Scope (13)
Data (7)
Filter a TimeSeries:
Bandpass filtering of a Sound object of a tri-tone signal:
Eliminate the outer tones using a bandpass filter with a Blackman window of length 101:
Bandpass filtering of a halftone image:
Parameters (6)
With an audio signal of sample rate s, a numeric frequency will be interpreted as a rad/s quantity:
Filter a white noise signal using a bandpass filter with cutoff frequencies of 8000 Hz and 12000 Hz:
Use center frequency of 9798 Hz and a quality factor q of 2:
Make the passband narrower by increasing the quality factor:
Increase frequency discrimination by using a longer kernel:
Vary the amount of attenuation by using different window functions:
Vary the amount of attenuation by using the adjustable Kaiser window:
Specify the window function as a numeric list:
Bandpass filtering using different center frequencies:
Use the same center frequency and different quality factors:
Options (3)
Applications (1)
On a modern 88-key piano, key 55 (note C5) has a fundamental frequency of approximately 523 Hz. Use BandpassFilter to effectively remove all the harmonics of this key while retaining the fundamental in the following audio clip:
Use a narrow filter (Q=3) of length 63 centered on the fundamental frequency (523 Hz):
Properties & Relations (6)
Using cutoff frequencies of 0 and π returns the original sequence:
Create a bandpass filter using LeastSquaresFilterKernel and a Hamming window:
Compare with the result of BandpassFilter:
Impulse response of a bandpass filter of length 21:
Magnitude spectrum of the filter:
Impulse response of a bandpass filter of length 21 without a smoothing window:
Magnitude spectrum of the filter:
The frequency discrimination of the bandpass filter improves as the length of the filter is increased:
The length of the impulse response increases as the filter's quality factor is increased:
Text
Wolfram Research (2012), BandpassFilter, Wolfram Language function, https://reference.wolfram.com/language/ref/BandpassFilter.html (updated 2017).
CMS
Wolfram Language. 2012. "BandpassFilter." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/BandpassFilter.html.
APA
Wolfram Language. (2012). BandpassFilter. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BandpassFilter.html