This is the cl-wavelets Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 05:32:05 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
cl-wavelets
Wavelet transform library
Vasily Postnicov <shamaz.mazum@gmail.com>
2-clause BSD
0.1
alexandria
(system).
serapeum
(system).
package.lisp
(file).
types.lisp
(file).
aref.lisp
(file).
lifting.lisp
(file).
phases.lisp
(file).
dwt.lisp
(file).
freqdomain.lisp
(file).
pwt.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
cl-wavelets/cl-wavelets.asd
cl-wavelets/package.lisp
cl-wavelets/types.lisp
cl-wavelets/aref.lisp
cl-wavelets/lifting.lisp
cl-wavelets/phases.lisp
cl-wavelets/dwt.lisp
cl-wavelets/freqdomain.lisp
cl-wavelets/pwt.lisp
cl-wavelets/types.lisp
package.lisp
(file).
cl-wavelets
(system).
aref-function
(type).
lifting-function
(type).
sa-sb
(type).
sb
(type).
cl-wavelets/aref.lisp
types.lisp
(file).
cl-wavelets
(system).
*aref-func*
(special variable).
aref-extended
(function).
aref-mirror-1
(function).
aref-mirror-2
(function).
aref-periodic
(function).
aref-zero
(function).
get-boundary-style-lifting
(function).
cl-wavelets/lifting.lisp
aref.lisp
(file).
cl-wavelets
(system).
get-wavelets
(function).
*forward-table*
(special variable).
*inverse-table*
(special variable).
*lifting-func*
(special variable).
cdf-2-2
(function).
cdf-3-1
(function).
cdf-4-2
(function).
def-lifting-scheme
(macro).
get-forward-transform
(function).
get-inverse-transform
(function).
haar
(function).
inv-cdf-2-2
(function).
inv-cdf-3-1
(function).
inv-cdf-4-2
(function).
inv-haar
(function).
with-lifting-scheme
(macro).
cl-wavelets/phases.lisp
lifting.lisp
(file).
cl-wavelets
(system).
check-power-of-2
(function).
make-tmp-array
(function).
phase-mix
(function).
phase-split
(function).
cl-wavelets/dwt.lisp
phases.lisp
(file).
cl-wavelets
(system).
dwt
(function).
dwt!
(function).
dwt-inverse
(function).
dwt-inverse!
(function).
clamp-steps
(function).
cl-wavelets/freqdomain.lisp
dwt.lisp
(file).
cl-wavelets
(system).
frequency-domain
(function).
frequency-domain!
(function).
pwt-freq
(function).
cl-wavelets/pwt.lisp
freqdomain.lisp
(file).
cl-wavelets
(system).
*threshold*
(special variable).
basis-key=>bit-vector
(function).
bit-vector=>basis-key
(function).
make-threshold-cost
(function).
pwt
(function).
pwt!
(function).
pwt-inverse
(function).
pwt-inverse!
(function).
*cost-func*
(special variable).
build-tree
(function).
collect-preferred
(function).
concatenate-into
(function).
copy-pwt-node
(function).
get-basis-key
(function).
make-pwt-node
(function).
pwt-node
(structure).
pwt-node-cost
(reader).
(setf pwt-node-cost)
(writer).
pwt-node-data
(reader).
(setf pwt-node-data)
(writer).
pwt-node-high-pass
(reader).
(setf pwt-node-high-pass)
(writer).
pwt-node-low-pass
(reader).
(setf pwt-node-low-pass)
(writer).
pwt-node-p
(function).
pwt-node-preferred
(reader).
(setf pwt-node-preferred)
(writer).
Packages are listed by definition order.
cl-wavelets
wavelets
common-lisp
.
*threshold*
(special variable).
basis-key=>bit-vector
(function).
bit-vector=>basis-key
(function).
dwt
(function).
dwt!
(function).
dwt-inverse
(function).
dwt-inverse!
(function).
frequency-domain
(function).
frequency-domain!
(function).
get-wavelets
(function).
make-threshold-cost
(function).
pwt
(function).
pwt!
(function).
pwt-inverse
(function).
pwt-inverse!
(function).
*aref-func*
(special variable).
*cost-func*
(special variable).
*forward-table*
(special variable).
*inverse-table*
(special variable).
*lifting-func*
(special variable).
aref-extended
(function).
aref-function
(type).
aref-mirror-1
(function).
aref-mirror-2
(function).
aref-periodic
(function).
aref-zero
(function).
build-tree
(function).
cdf-2-2
(function).
cdf-3-1
(function).
cdf-4-2
(function).
check-power-of-2
(function).
clamp-steps
(function).
collect-preferred
(function).
concatenate-into
(function).
copy-pwt-node
(function).
def-lifting-scheme
(macro).
get-basis-key
(function).
get-boundary-style-lifting
(function).
get-forward-transform
(function).
get-inverse-transform
(function).
haar
(function).
inv-cdf-2-2
(function).
inv-cdf-3-1
(function).
inv-cdf-4-2
(function).
inv-haar
(function).
lifting-function
(type).
make-pwt-node
(function).
make-tmp-array
(function).
phase-mix
(function).
phase-split
(function).
pwt-freq
(function).
pwt-node
(structure).
pwt-node-cost
(reader).
(setf pwt-node-cost)
(writer).
pwt-node-data
(reader).
(setf pwt-node-data)
(writer).
pwt-node-high-pass
(reader).
(setf pwt-node-high-pass)
(writer).
pwt-node-low-pass
(reader).
(setf pwt-node-low-pass)
(writer).
pwt-node-p
(function).
pwt-node-preferred
(reader).
(setf pwt-node-preferred)
(writer).
sa-sb
(type).
sb
(type).
with-lifting-scheme
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Default value for an argument to @c(make-threshold-cost).
Transform a basis key returned from @c(pwt) or @c(pwt!) to a bit vector form.
Transform a bit vector to a basis key.
This function is a non-destructive equivalent of @c(dwt!) function
Perform in-place DWT transform on array of integer samples. Meaning
of key arguments:
@begin(enum)
@item(@c(wavelet) Wavelet to use. Consult
@ref[id=wavelets](wavelets) section of this manual to know
possible values of this argument.)
@item(@c(boundary-style) Determines how the signal is extended
beyond array boundaries. Can be @c(:zero) or
@c(:mirror). Usually @c(:mirror) gives better results, but
is a little slower.)
@item(@c(steps) Specify the number of filtering and downsampling
steps taken to perform the transform. This value can be
negative or zero. Zero means the full DWT transform and a
negative value means @i(maximal dwt steps) - @c((abs steps)).)
@end(enum)
This function is a non-destructive equivalent of @c(dwt-inverse!) function
Perform in-place inversion of DWT transform. The @c(wavelet), @c(boundary-style) and @c(steps) arguments must be the same as for the corresponding call to DWT! function
Translate a signal in frequency domain using PWT. This is a non-destructive version of @c(frequency-domain!).
Translate a signal into frequency domain using PWT. @c(wavelet) and
@c(boundary-style) have the same meaning as in @c(dwt!). This function
modifies the @c(array).
@b(NB): CDF-4-2 gives very poor results for the reasons yet unknown. Do not use it. CDF-2-2 seems to be the best.
Get a list of available wavelets
Make a cost function which depends on the number of items whose magnitude is greater than @c(threshold).
This function is a non-destructive version of @c(pwt!).
Perform a best-basis PWT transform of an @c(array). Unlike DWT
which has a fixed basis of scaled and translated mother wavelet
functions and a scaling function, this transform picks the best basis,
minimizing the @c(cost) function over possible results. The meaning of
@c(wavelet) and @c(boundary-style) arguments is the same as for DWT.
See the documentation for @c(dwt!) for information.
Two values are returned: the first is a transformed array and the
second is a basis key object which must be passed to @c(pwt-inverse!)
or @c(pwt-inverse) to invert the transform.
This function modifies its first argument.
This is a non-destructive version of @c(pwt-inverse!).
Inverse the PWT. The @c(array) and @c(basis-key) must match the values returned by @c(pwt!) or @c(pwt). @c(wavelet) and @c(boundary-style) must also match their counterparts used for the forward transform.
Current aref style
Table of wavelets used for forward transform
Table of wavelets used for inverse transform
Current wavelet transform function
Define a function with the name ‘NAME‘ which performs one step of
discrete wavelet transform (DWT, PWT) using lifting scheme. ‘ALIAS‘
is a keyword associated with this function which can be later used
with ‘dwt‘ or ‘dwt-inverse‘ functions. Direction must be either
‘:FORWARD‘ or ‘INVERSE‘.
The body of the lifting scheme consists of several expressions, each
such expression represents a lifting step (called prediction and
update in literature). In each expression you can manipulate with
‘ODD‘, ‘EVEN‘, ‘ODD-1‘, ‘EVEN-1‘, ‘ODD+1‘ and ‘EVEN+1‘ variables,
representing the odd sample, the even sample, the previous and the
next odd/even samples respectively.
TODO: Allow access to n-th odd or even sample.
Set @c(*lifting-func*) and @c(*aref-func*) parameters to desired value.
This function works just like aref, but allows for idx to be any integer number, not just one for which start <= idx < end holds. The way how this function extends array out of its bounds depends on value of *AREF-FUNC*.
’Mirror’ content of an array from its borders mapping even indices
to even indices and odd indices to odd indices, so array[-1] ==
array[1] and array[len] == array[len-2].
This function can be used to create a continous infinite signal from a signal with compact support in time domain for using in lifting scheme or in two-filters algorithm with symmetric filters with odd number of coefficients
’Mirror’ content of an array from its borders, ’doubling’ the
elements at the borders, so array[-1] == array[0] and array[len] ==
array[len-1].
This function can be used to create a continous infinite signal for the wavelet transform using symmetric wavelets with even number of coefficients and two-filters algorithm.
Create an infinite sequence from an array by making the content of an array periodic. Can be used with two-filters algorithm and all wavelets.
Return zero for out-of-bounds array reads. Can be used for every wavelet and every DWT/PWT algorithm
Check if the argument is a power of two.
Make temporary array for PHASE-SPLIT and PHASE-MIX functions
Interleave even and odd samples in the array
Split even and odd samples in the array. If INVERSE is T, higher frequencies subband will be stored before lower frequencies subband.
cost
.
data
.
Jump to: | (
A B C D F G H I M P W |
---|
Jump to: | (
A B C D F G H I M P W |
---|
Jump to: | *
C D H L P S |
---|
Jump to: | *
C D H L P S |
---|
Jump to: | A C D F L P S T |
---|
Jump to: | A C D F L P S T |
---|