# 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@bevo.che.wisc.edu.

Function File: detrend (x, p)
If x is a vector, detrend (x, p) removes the best fit of a polynomial of order p from the data x.

If x is a matrix, detrend (x, p) does the same for each column in x.

The second argument is optional. If it is not specified, a value of 1 is assumed. This corresponds to removing a linear trend.

Function: fft (a [, n])
Compute the FFT of a using subroutines from FFTPACK. If a is a matrix, fft computes the FFT for each column of a.

If called with two arguments, n is expected to be an integer specifying the number of elements of a to use. If a is a matrix, n specifies the number of rows of a to use. If n is larger than the size of a, a is resized and padded with zeros.

Loadable Function: ifft (a [, n])
Compute the inverse FFT of a using subroutines from FFTPACK. If a is a matrix, fft computes the inverse FFT for each column of a.

If called with two arguments, n is expected to be an integer specifying the number of elements of a to use. If a is a matrix, n specifies the number of rows of a to use. If n is larger than the size of a, a is resized and padded with zeros.

Loadable Function: fft2 (a [, n [, m]])
Compute the two dimensional FFT of a.

The optional arguments n and m may be used specify the number of rows and columns of a to use. If either of these is larger than the size of a, a is resized and padded with zeros.

Loadable Function: ifft2 (a [, n [, m]])
Compute the two dimensional inverse FFT of a.

The optional arguments n and m may be used specify the number of rows and columns of a to use. If either of these is larger than the size of a, a is resized and padded with zeros.

Built-in Function: 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.

Function File: 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.

Loadable Function: y = 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:

Loadable Function: [y, sf] = filter (b, a, x, si)
This is the same as the filter function described above, except that si is taken as the initial state of the system and the final state is returned as 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.

Function File: 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

Function File: sinc (x)
Returns