Transforms
ns transform
(:require [fastmath.transform :as t]
(:as codox])) [fastmath.dev.codox
FFT
Wavelets
Reference
fastmath.transform
Transforms.
See transformer and TransformProto for details.
### Wavelet
Based on JWave library.
Be aware that some of the wavelet types doesn’t work properly. :battle-23
, :cdf-53
, :cdf-97
.
### Cos/Sin/Hadamard
Orthogonal or standard fast sine/cosine/hadamard 1d transforms.
### Fourier
DFT, FFT, DHT.
compress
(compress trans xs mag)
(compress xs mag)
Compress transformed signal xs
with given magnitude mag
.
compress-peaks-average
(compress-peaks-average trans xs)
(compress-peaks-average xs)
Compress transformed signal xs
with peaks average as a magnitude
denoise
(denoise xs {:keys [method threshold skip], :or {method :hard, threshold :universal, skip 0}})
(denoise trans xs method)
(denoise xs)
Wavelet shrinkage with some threshold.
Methods can be: * :hard
(default)
* :soft
* :garrote
* :hyperbole
:threshold
can be a number of one of the denoise-threshold methods (default: :visu
)
:skip
can be used to leave :skip
number of coefficients unaffected (default: 0)
Use on transformed sequences or call with transformer object.
denoise-threshold
(denoise-threshold xs threshold)
Calculate optimal denoise threshold.
threshold
is one of the following
:visu
- based on median absolute deviation estimate (default):universal
- based on standard deviation estimate:sure
or:rigrsure
- based on SURE estimator:hybrid
or:heursure
- hybrid SURE estimator
forward-1d
(forward-1d t xs)
Forward transform of sequence or array.
forward-2d
(forward-2d t xss)
Forward transform of sequence or array.
reverse-1d
(reverse-1d t xs)
Forward transform of sequence or array.
reverse-2d
(reverse-2d t xss)
Forward transform of sequence or array.
transformer
Create transform object for given wavelet.
#### Wavelets
:fast
for 1d or 2d Fast Wavelet Transform. Size of data should be power of2
.:packet
for 1d or 2d Wavelet Packet Transform. Size of data should be power of2
.:decomposed-fast
for 1d Fast Wavelet Transform. Data can have any size (Ancient Egyptian Decomposition is used).:decomposed-packet
for 1d Wavelet Packet Transform. Data can have any size (Ancient Egyptian Decomposition is used).
Second argument is wavelet name as key. See wavelets-list for all supported names.
#### Sine/Cosine/Hadamard
:standard
for 1d:sine
,:cosine
,:hadamard
.:orthogonal
for 1d:sine
,:cosine
.
Note that :sine
and :cosine
require first element to be equal 0
. Size of data should be power of 2.
#### Fourier
:standard
:dft
- 1d Discrete Fourier Transform - returns double-array where even elements are real part, odd elements are imaginary part.
wavelets-list
List of all possible wavelets.
source: clay/transform.clj