File Exchange

image thumbnail

ifilter: Interactive Fourier filter function, version 4.1

version (17.4 KB) by Tom O'Haver
Keyboard-operated interactive Fourier filter function for time-series signals.


Updated 22 Dec 2014

View License

ifilter(x,y) or ifilter(y) or ifilter([x y]) or ry=ifilter(x,y,center,width,shape,plotmode,filtermode)
Keyboard-operated interactive Fourier filter function for time-series signal (x,y), with keyboard controls that allow you to adjust the filter parameters continuously while observing the effect on your signal dynamically. Optinal input arguments set the intital values of center frequency, filter width, shape, plotmode (1=linear; 2=semilog frequency; 3=semilog amplitude; 4=log-log) and filtermode (Band-pass,Lowpass, Highpass, Bandpass, Band-reject, Comb pass, and Comb reject). Returns the filtered signal. Press K to list keyboard commands.
T. C. O'Haver (, Version 4 adds comb pass and comb reject filter modes.
Example 1:
Example 2 uses optional input arguments to set intital values:

KEYBOARD CONTROLS when figure window is topmost:
Adjust center frequency.......Coarse: < and >
Fine: left and right cursor arrows
Adjust filter width...........Coarse: / and "
Fine: up and down cursor arrows
Filter shape..................A,Z (A more rectangular, Z more Gaussian)
Filter mode...................B=bandpass; N or R=notch (band reject); H=High-pass; L=Low-pass; C-Comb pass; V=Comb reject.
Select plot mode..............1=linear; 2=semilog frequency
3=semilog amplitude; 4=log-log
Print keyboard commands.......K Pints this list
Print filter parameters.......Q Prints input arguments: center,width,shape,plotmode,filtermode
Print current settings........T Prints list of current settings
Switch SPECTRUM X-axis scale..X switch between frequency and period x scale on POWER SPECTRA
Switch OUTPUT Y-axis scale....Y switch between fixed or variable y scale on output plot
Play output as sound..........P or Enter
Save output as .mat file......S

Comments and Ratings (3)


Shea (view profile)

Great code!

However, I am having trouble submitting values for the freq and width etc. I guess that the width is just an arbitrary parameter rather than the FWHM for example. Also, if I want to have a notch filter at 10Hz, for example, what should I enter for the frequency? (10 does not seem to work)


ehsan (view profile)


ehsan (view profile)


Fixed a bug in the 'center' and 'width' input arguments (thanks to Forrest for the heads-up). Also added another example.

Version 4 adds comb pass and comb reject filter modes.

Version 3 adds X key to switch between frequency and period x scale on power spectrum plot.

Version 2, October, 2011. Additions
include increased input argument flexibility; 'Y' key chages y-axis
$ scale on OUTPUT plot; 'T' key prints current settings.

Reformatted description

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor