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');