@c Copyright (C) 1996-2019 John W. Eaton
@c
@c This file is part of Octave.
@c
@c Octave is free software: you can redistribute it and/or modify it
@c under the terms of the GNU General Public License as published by
@c the Free Software Foundation, either version 3 of the License, or
@c (at your option) any later version.
@c
@c Octave is distributed in the hope that it will be useful, but
@c WITHOUT ANY WARRANTY; without even the implied warranty of
@c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@c GNU General Public License for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with Octave; see the file COPYING.  If not, see
@c <https://www.gnu.org/licenses/>.

@node Signal Processing
@chapter Signal Processing

This chapter describes the signal processing and fast Fourier
transform functions available in Octave.  Fast Fourier transforms are
computed with the @sc{fftw} or @sc{fftpack} libraries depending on how
Octave is built.

@DOCSTRING(fft)

@DOCSTRING(ifft)

@DOCSTRING(fft2)

@DOCSTRING(ifft2)

@DOCSTRING(fftn)

@DOCSTRING(ifftn)

Octave uses the @sc{fftw} libraries to perform FFT computations.  When Octave
starts up and initializes the @sc{fftw} libraries, they read a system wide
file (on a Unix system, it is typically @file{/etc/fftw/wisdom}) that
contains information useful to speed up FFT computations.  This
information is called the @emph{wisdom}.  The system-wide file allows
wisdom to be shared between all applications using the @sc{fftw} libraries.

Use the @code{fftw} function to generate and save wisdom.  Using the
utilities provided together with the @sc{fftw} libraries
(@command{fftw-wisdom} on Unix systems), you can even add wisdom
generated by Octave to the system-wide wisdom file.

@DOCSTRING(fftw)

@DOCSTRING(fftconv)

@DOCSTRING(fftfilt)

@DOCSTRING(filter)

@DOCSTRING(filter2)

@DOCSTRING(freqz)

@DOCSTRING(freqz_plot)

@DOCSTRING(sinc)

@DOCSTRING(unwrap)

@c FIXME: someone needs to organize these ...

@DOCSTRING(arch_fit)

@DOCSTRING(arch_rnd)

@DOCSTRING(arch_test)

@DOCSTRING(arma_rnd)

@DOCSTRING(autoreg_matrix)

@DOCSTRING(bartlett)

@DOCSTRING(blackman)

@DOCSTRING(detrend)

@DOCSTRING(diffpara)

@DOCSTRING(durbinlevinson)

@DOCSTRING(fftshift)

@DOCSTRING(ifftshift)

@DOCSTRING(fractdiff)

@DOCSTRING(hamming)

@DOCSTRING(hanning)

@DOCSTRING(hurst)

@DOCSTRING(pchip)

@DOCSTRING(periodogram)

@DOCSTRING(sinetone)

@DOCSTRING(sinewave)

@DOCSTRING(spectral_adf)

@DOCSTRING(spectral_xdf)

@DOCSTRING(spencer)

@DOCSTRING(stft)

@DOCSTRING(synthesis)

@DOCSTRING(yulewalker)
