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