Signal Processing Cheat Sheet - scalanlp/breeze GitHub Wiki
needs import breeze.signal._
Note: many of these functions have extensive optional parameters in breeze.
See the ScalaDoc for a description of each parameter.
Basic Operations
Operation |
Breeze |
Numpy |
Matlab |
Convolve |
convolve[Input, KernelType, Output] |
conv(u,v) |
conv(u,v) |
Correlate |
correlate[Input, KernelType, Output] |
xcorr(u,v) |
xcorr(u,v) |
these Breeze functions will use fft convolution by default for floating point DenseMatrixes and DenseVectors. For Int and Long DV/DMs, you can specify fft convolution by specifying the optional argument optMethod = OptMethod.FFT
Transforms
Operation |
Breeze |
Numpy |
Matlab |
1D Fourier transform |
fourierTr( data: Array[Complex ) |
fft( a ) |
fft( a ) |
1D Inverse Fourier transform |
iFourierTr(data: Array[Complex]) |
ifft( a ) |
ifft( a ) |
2D Fourier Transform |
fourierTr2C(data: Array[Array[Complex]]) |
fft2( a ) |
fft2( a ) |
2D Inverse Fourier Transform |
iFourierTr( data: Array[Array[Complex]] ) |
ifft2( a ) |
ifft2( a ) |
Convenience Functions for DFT
Operation |
Breeze |
Numpy |
Matlab |
Fourier frequencies |
fourierFreq( n, dt = (timestep) ) or fourierFreq( n, fs = (sample freq) ) |
fftfreq(n, dt) |
--- |
Fourier shift |
fourierShift( data: Array[Double] ) |
fftshift( a ) |
fftshift( a ) |
(inverse) |
iFourierShift( data: Array[Double] ) |
ifftshift( a ) |
ifftshift( a ) |
Filtering
Operation |
Breeze |
Numpy |
Matlab |
Filter |
filter( data: Input, kernel: Kernel, overhang: OptOverhang = OptOverhang.PreserveLength, padding: OptPadding = OptPadding.Zero ) |
--- |
--- |
Bandpass Filter |
filterBP( data: Array[Double], omegaLow: Double, omegaHigh: Double, sampleRate: Double, taps = 512 ) |
--- |
--- |
Bandstop Filter |
filterBS( data: Array[Double], omegaLow: Double, omegaHigh: Double, sampleRate: Double, taps = 512 ) |
--- |
--- |
Lowpass Filter |
filterLP( data: Array[Double], omega: Double, sampleRate: Double, taps = 512 ) |
--- |
--- |
Highpass Filter |
filterHP( data: Array[Double], omega: Double, sampleRate: Double, taps = 512 ) |
--- |
--- |
Median Filter |
filterMedian( data: DenseVector[Input], windowLength: Int, overhang: OptOverhang = OptOverhang.PreserveLength ) |
--- |
--- |