WFBTREMOVE Remove node(s) from the filterbank tree
Usage: wt = wbftremove(d,kk,wt);
wt = wfbtremove(d,kk,wt,'force');
Input parameters:
d : Level in the tree (0 - root).
kk : Index of the node at level d (starting at 0) or array
of indexes.
wt : Wavelet filterbank tree structure (as returned from
WFBTINIT).
Output parameters:
wt : Modified filterbank structure.
WFBTREMOVE(d,kk,wt) removes existing node at level d and index kk*
from the filterbank tree structure wt. The function fails if the
node has any children (it is not a leaf node).
WFBTREMOVE(d,k,wt,'force') does the same, but any childern of the
node are removed too.
Examples:
---------
The following example shows magnitude frequency responses of filterbank
tree before and after prunning.:
% Create a full filterbank tree usinf 'db10' basic filterbank.
wt1 = wfbtinit({'db10',4,'full'});
% Remove a subtree starting by root's high-pass filter. Force flag
% is used because we are removing a non-leaf node.
wt2 = wfbtremove(1,1,wt1,'force');
% Create identical filterbanks
[g1,a1] = wfbt2filterbank(wt1,'freq');
[g2,a2] = wfbt2filterbank(wt2,'freq');
% Plot the frequency responses
subplot(2,1,1);
filterbankfreqz(g1,a1,1024,'plot','posfreq','linabs');
subplot(2,1,2);
filterbankfreqz(g2,a2,1024,'plot','posfreq','linabs');
Package: ltfat