A set of generally Matlab/Octave-compatible signal processing functions. Includes filter generation utilities, filtering functions, resampling routines, and visualization of filter models. It also includes interpolation functions and some Matlab compatibility functions.
The main routines are:
Filtering: filter, fftfilt, filtfilt, medfilt1, sgolay, sgolayfilt
Resampling: interp, resample, decimate
IIR filter design: bilinear, butter, buttord, cheb1ord, cheb2ord, cheby1, cheby2, ellip, ellipord, sftrans
FIR filter design: fir1, fir2, remez, kaiserord, spencer
Interpolation: interp1, pchip
Compatibility routines and utilities: ifft, sinc, postpad, chirp, poly, polyval
Windowing: bartlett, blackman, boxcar, flattopwin, gausswin, hamming, hanning, triang
Analysis and visualization: freqs, freqz, impz, zplane, grpdelay, specgram
Most of the functions accept Matlab-compatible argument lists, but many are generic functions and can accept simpler argument lists.
For a complete list, use
Most of these routines were translated from Octave Forge routines. The main credit goes to the original Octave authors:
Paul Kienzle, John W. Eaton, Kurt Hornik, Andreas Weingessel, Kai Habel, Julius O. Smith III, Bill Lash, André Carezia, Paulo Neis, David Billinghurst, Friedrich Leisch
Translations by Tom Short firstname.lastname@example.org (who maintained the package until 2009).
Current maintainer is Uwe Ligges email@example.com.
Octave Forge https://octave.sourceforge.io/
matlab by P. Roebuck
For Matlab/Octave conversion and compatibility, see http://mathesaurus.sourceforge.net/octave-r.html by Vidar Bronken Gundersen and https://cran.r-project.org/doc/contrib/R-and-octave.txt by Robin Hankin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
## The R implementation of these routines can be called "matlab-style", bf <- butter(5, 0.2) freqz(bf$b, bf$a) ## or "R-style" as: freqz(bf) ## make a Chebyshev type II filter: ch <- cheby2(5, 20, 0.2) freqz(ch, Fs = 100) # frequency plot for a sample rate = 100 Hz zplane(ch) # look at the poles and zeros ## apply the filter to a signal t <- seq(0, 1, by = 0.01) # 1 second sample, Fs = 100 Hz x <- sin(2*pi*t*2.3) + 0.25*rnorm(length(t)) # 2.3 Hz sinusoid+noise z <- filter(ch, x) # apply filter plot(t, x, type = "l") lines(t, z, col = "red") # look at the group delay as a function of frequency grpdelay(ch, Fs = 100)
Attaching package: 'signal' The following objects are masked from 'package:stats': filter, poly - Group delay (gd) calculated at 512 points. - Frequencies (w) given in *Hz*. gd w 3.162407 0.00000000 3.162772 0.09765625 3.163869 0.19531250 3.165699 0.29296875 ....... ....... Warning message: In grpdelay.default(filt$b, filt$a, ...) : grpdelay: setting group delay to 0 at singularity
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.