# fftfilt: Filters with an FIR filter using the FFT In signal: Signal Processing

## Description

Filters with an FIR filter using the FFT.

## Usage

 ```1 2 3 4 5 6``` ```fftfilt(b, x, n = NULL) FftFilter(b, n) ## S3 method for class 'FftFilter' filter(filt, x, ...) ```

## Arguments

 `b` the moving-average (MA) coefficients of an FIR filter. `x` the input signal to be filtered. `n` if given, the length of the FFT window for the overlap-add method. `filt` filter to apply to the signal. `...` additional arguments (ignored).

## Details

If `n` is not specified explicitly, we do not use the overlap-add method at all because loops are really slow. Otherwise, we only ensure that the number of points in the FFT is the smallest power of two larger than `n` and `length(b)`.

## Value

For `fftfilt`, the filtered signal, the same length as the input signal `x`.

For `FftFilter`, a filter of class `FftFilter` that can be used with `filter`.

## Author(s)

Original Octave version by Kurt Hornik and John W. Eaton. Conversion to R by Tom Short.

## References

Octave Forge https://octave.sourceforge.io/

`Ma`, `filter`, `fft`, `filtfilt`
 ```1 2 3 4 5``` ```t <- seq(0, 1, len = 100) # 1 second sample x <- sin(2*pi*t*2.3) + 0.25*rnorm(length(t)) # 2.3 Hz sinusoid+noise z <- fftfilt(rep(1, 10)/10, x) # apply 10-point averaging filter plot(t, x, type = "l") lines(t, z, col = "red") ```