This is where navigation should be.

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.

Description

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