File Exchange

image thumbnail

Sinc filter

version (715 KB) by Christopher Hummersone
Apply a near-ideal low- or band-pass filter.


Updated 05 May 2018

GitHub view license on GitHub

NOTE: this function is now available from the IoSR Matlab Toolbox as iosr.dsp.sincFilter.
y = sinc_filter(x,Wn)
y = sinc_filter(x,Wn,N)
y = sinc_filter(x,Wn,N,dim)
y = sinc_filter(x,Wn,[],dim)
y = sinc_filter(x,Wn) applies a near-ideal low-pass or band-pass brickwall filter to the array x, operating along the first non-singleton dimension (e.g. down the columns of a matrix). The cutoff frequency/frequencies are specified in Wn. If Wn is a scalar, then Wn specifies the low-pass cutoff frequency. If Wn is a two-element vector, then Wn specifies the band-pass interval. Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate.

The filtering is performed by FFT-based convolution of x with the sinc kernel.

y = sinc_filter(x,Wn,N) allows the filter length to be specified. The default value is N=1025. The filter length is doubled in the band-pass case. In either case, if N is even the final filter length will be N+1.

y = sinc_filter(x,Wn,N,dim) applies the specified filter along the dimension dim.

y = sinc_filter(x,Wn,[],dim) applies the specified filter along the dimension dim using the default filter length.

Cite As

Christopher Hummersone (2020). Sinc filter (, GitHub. Retrieved .

Comments and Ratings (3)

David Leng

Thank you. David leng

Thank for your file, it have save me lot of time.

Fan D.Chen

This program is perfect, I have to say, thank you


Migrated to GitHub.

File now accepts an arbitrarily-sized array input x, and a corresponding input argument for specifying the dimension to operate along.

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags