Signal Processing

I hope that someday Octave will include more signal processing functions. If you would like to help improve Octave in this area, please contact `bug-octave@che.utexas.edu`.

`fft (a)`
Compute the FFT of a using subroutines from FFTPACK.
`fft2 (a)`
Compute the two dimensional FFT of a.
`fftconv (a, b, N)`
This function returns the convolution of the vectors a and b, a vector with length equal to the ```length (a) + length (b) - 1```. If a and b are the coefficient vectors of two polynomials, the returned value is the coefficient vector of the product polynomial. The computation uses the FFT by calling the function `fftfilt`. If the optional argument N is specified, an N-point FFT is used.
`fftfilt (b, x, N)`
With two arguments, `fftfilt` filters x with the FIR filter b using the FFT. Given the optional third argument, N, `fftfilt` uses the overlap-add method to filter x with b using an N-point FFT.
`filter (b, a, x)`
This function returns the solution to the following linear, time-invariant difference equation: where An equivalent form of this equation is: where In terms of the z-transform, y is the result of passing the discrete- time signal x through a system characterized by the following rational system function: When called as
```[y, sf] = filter (b, a, x, si)
```
`filter` uses the argument si as the initial state of the system and and returns the final state in sf. The state vector is a column vector whose length is equal to the length of the longest coefficient vector minus one. If si is not set, the initial state vector is set to all zeros.
`freqz`
Compute the frequency response of a filter. `[h, w] = freqz (b)` returns the complex frequency response h of the FIR filter with coefficients b. The response is evaluated at 512 angular frequencies between 0 and The output value w is a vector containing the 512 frequencies. `[h, w] = freqz (b, a)` returns the complex frequency response of the rational IIR filter whose numerator has coefficients b and denominator coefficients a. `[h, w] = freqz (b, a, n)` returns the response evaluated at n angular frequencies. For fastest computation n should factor into a small number of small primes. `[h, w] = freqz (b, a, n, "whole")` evaluates the response at n frequencies between 0 and
`ifft (a)`
Compute the inverse FFT of a using subroutines from FFTPACK.
`ifft2`
Compute the two dimensional inverse FFT of a.
`sinc (x)`
Returns