wt = wbftremove(d,kk,wt); wt = wfbtremove(d,kk,wt,'force');
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). |
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.
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');