-
Notifications
You must be signed in to change notification settings - Fork 689
Signal Processing Cheat Sheet
needs import breeze.signal._
Note: many of these functions have extensive optional parameters in breeze.
See the ScalaDoc for a description of each parameter.
| 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
| 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 )
|
| 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 )
|
| 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 )
| ---
| ---
|
Breeze is a numerical processing library for Scala. http://www.scalanlp.org