panwave
Public Member Functions | Protected Member Functions | List of all members
panwave::WaveletPacketTree Class Reference

#include <WaveletPacketTree.h>

Inheritance diagram for panwave::WaveletPacketTree:
Inheritance graph
[legend]
Collaboration diagram for panwave::WaveletPacketTree:
Collaboration graph
[legend]

Public Member Functions

 WaveletPacketTree (size_t height, const Wavelet *wavelet, DyadicMode dyadic_mode=DyadicMode::Odd, PaddingMode padding_mode=PaddingMode::Zeroes)
 
void Decompose () override
 
void Reconstruct (size_t level) override
 
- Public Member Functions inherited from panwave::WaveletPacketTreeTemplateBase< 2 >
 WaveletPacketTreeTemplateBase (size_t height, const Wavelet *wavelet)
 
void SetRootSignal (const std::vector< double > *signal) override
 
const std::vector< double > * GetRootSignal () override
 
size_t GetWaveletLevelCount () const override
 
- Public Member Functions inherited from panwave::Tree< WaveletPacketTreeBase::WaveletPacketTreeNodeData, k >
 Tree (size_t height)
 
- Public Member Functions inherited from panwave::WaveletPacketTreeBase
 WaveletPacketTreeBase (const WaveletPacketTreeBase &)=delete
 
 WaveletPacketTreeBase (const WaveletPacketTreeBase &&)=delete
 
WaveletPacketTreeBaseoperator= (const WaveletPacketTreeBase &)=delete
 
WaveletPacketTreeBaseoperator= (const WaveletPacketTreeBase &&)=delete
 
virtual size_t GetWaveletLevelCount () const =0
 

Protected Member Functions

void IsolateLevel (size_t level)
 
void DecomposeNode (size_t node)
 
void ReconstructNode (size_t node)
 
- Protected Member Functions inherited from panwave::Tree< WaveletPacketTreeBase::WaveletPacketTreeNodeData, k >
size_t GetLeafCount () const
 
size_t GetFirstLeaf () const
 
size_t GetLastLeaf () const
 
bool IsLeaf (size_t node) const
 
size_t GetChild (size_t parent, size_t child_index) const
 
size_t GetParent (size_t child) const
 
WaveletPacketTreeBase::WaveletPacketTreeNodeDataGetNodeData (size_t index)
 
bool IsMarked (size_t node) const
 
void SetMark (size_t node)
 
void Unmark ()
 
size_t GetHeight () const
 

Additional Inherited Members

- Protected Attributes inherited from panwave::WaveletPacketTreeTemplateBase< 2 >
const Waveletwavelet_
 

Detailed Description

A conventional wavelet packet tree class.
This is a binary tree, each non-leaf node has two children.
During decomposition, each node is decomposed into details and approximation coefficients. The approximation coefficients are stored in the left (0th) child while the details coefficients are stored in the right (1st) child.

Constructor & Destructor Documentation

◆ WaveletPacketTree()

panwave::WaveletPacketTree::WaveletPacketTree ( size_t  height,
const Wavelet wavelet,
DyadicMode  dyadic_mode = DyadicMode::Odd,
PaddingMode  padding_mode = PaddingMode::Zeroes 
)

Construct a WaveletPacketTree instance.
Root signal is initially unset. Set it before calling Decompose.

Parameters
heightHeight of the tree. A tree with only one root node has height of 1.
waveletWavelet object used during decomposition / reconstruction.
dyadic_modeWhich mode we should use when dyadically upsampling / downsampling when performing convolutions. (default: Odd)
padding_modeHow we should pad the signal data during decomposition / reconstruction. (default: Zeroes)
See also
Wavelet
Decompose
Reconstruct

Member Function Documentation

◆ Decompose()

void panwave::WaveletPacketTree::Decompose ( )
overridevirtual

Perform a wavelet packet tree decomposition.
Starting with the root node, decomposes recursively every node in the tree stopping at the leaf nodes.
This is not a sparse decomposition, all nodes will have decomposed signal data after executing.

See also
SetRootSignal

Implements panwave::WaveletPacketTreeBase.

◆ Reconstruct()

void panwave::WaveletPacketTree::Reconstruct ( size_t  level)
overridevirtual

Reconstruct an isolated wavelet level.
Beginning at the leaf nodes, recursively reconstruct up all levels of the tree stopping at the root node.
Upon completion, the root signal will contain the reconstructed signal.

Parameters
levelThe wavelet level we should isolate and reconstruct.
See also
GetRootSignal

Implements panwave::WaveletPacketTreeBase.


The documentation for this class was generated from the following files: