Safe Haskell | None |
---|
- volumeMaximum :: (C y, Read sig y) => sig y -> y
- volumeEuclidean :: (C y, Read sig y) => sig y -> y
- volumeEuclideanSqr :: (C y, Read sig y) => sig y -> y
- volumeSum :: (C y, C y, Read sig y) => sig y -> y
- volumeVectorMaximum :: (C y yv, Ord y, Read sig yv) => sig yv -> y
- volumeVectorEuclidean :: (C y, C y yv, Read sig yv) => sig yv -> y
- volumeVectorEuclideanSqr :: (C y, Sqr y yv, Read sig yv) => sig yv -> y
- volumeVectorSum :: (C y yv, C y, Read sig yv) => sig yv -> y
- bounds :: (Ord y, Read sig y) => sig y -> (y, y)
- directCurrentOffset :: (C y, Read sig y) => sig y -> y
- scalarProduct :: (C y, Read sig y) => sig y -> sig y -> y
- centroid :: (C y, Read sig y) => sig y -> y
- average :: (C y, Read sig y) => sig y -> y
- rectify :: (C y, Transform sig y) => sig y -> sig y
- zeros :: (Ord y, C y, Transform sig y Bool) => sig y -> sig Bool
- flipFlopHysteresis :: (Ord y, Transform sig y Bool) => (y, y) -> Bool -> sig y -> sig Bool
- chirpTransform :: (Write sig y, C y) => LazySize -> y -> sig y -> sig y
Notions of volume
volumeMaximum :: (C y, Read sig y) => sig y -> ySource
Volume based on Manhattan norm.
volumeEuclidean :: (C y, Read sig y) => sig y -> ySource
Volume based on Energy norm.
volumeEuclideanSqr :: (C y, Read sig y) => sig y -> ySource
volumeVectorMaximum :: (C y yv, Ord y, Read sig yv) => sig yv -> ySource
Volume based on Manhattan norm.
volumeVectorEuclidean :: (C y, C y yv, Read sig yv) => sig yv -> ySource
Volume based on Energy norm.
volumeVectorEuclideanSqr :: (C y, Sqr y yv, Read sig yv) => sig yv -> ySource
volumeVectorSum :: (C y yv, C y, Read sig yv) => sig yv -> ySource
Volume based on Sum norm.
bounds :: (Ord y, Read sig y) => sig y -> (y, y)Source
Compute minimum and maximum value of the stream the efficient way. Input list must be non-empty and finite.
Miscellaneous
directCurrentOffset :: (C y, Read sig y) => sig y -> ySource
Requires finite length. This is identical to the arithmetic mean.
scalarProduct :: (C y, Read sig y) => sig y -> sig y -> ySource
centroid :: (C y, Read sig y) => sig y -> ySource
directCurrentOffset
must be non-zero.
zeros :: (Ord y, C y, Transform sig y Bool) => sig y -> sig BoolSource
Detects zeros (sign changes) in a signal. This can be used as a simple measure of the portion of high frequencies or noise in the signal. It ca be used as voiced/unvoiced detector in a vocoder.
zeros x !! n
is True
if and only if
(x !! n >= 0) /= (x !! (n+1) >= 0)
.
The result will be one value shorter than the input.
flipFlopHysteresis :: (Ord y, Transform sig y Bool) => (y, y) -> Bool -> sig y -> sig BoolSource
Detect thresholds with a hysteresis.
chirpTransform :: (Write sig y, C y) => LazySize -> y -> sig y -> sig ySource
Almost naive implementation of the chirp transform, a generalization of the Fourier transform.
More sophisticated algorithms like Rader, Cooley-Tukey, Winograd, Prime-Factor may follow.