Contents

dsp.DyadicSynthesisFilterBank System object

Package: dsp

Reconstruct signals from subbands

Description

The DyadicSynthesisFilterBank object reconstructs signals from subbands with smaller bandwidths and lower sample rates. The filter bank uses a series of highpass and lowpass FIR filters to repeatedly reconstruct the signal.

To reconstruct signals from subbands with smaller bandwidths and lower sample rates:

  1. Define and set up your synthesis filter bank. See Construction.

  2. Call step to reconstruct the signal according to the properties of dsp.DyadicSynthesisFilterBank. The behavior of step is specific to each object in the toolbox.

Construction

H = dsp.DyadicSynthesisFilterBank returns a synthesis filter bank, H, that reconstructs a signal from its subbands with smaller bandwidths and smaller sample rates.

H = dsp.DyadicSynthesisFilterBank('Propertyname',PropertyValue,...) returns a synthesis filter bank, H, with each specified property set to the specified value.

Properties

Filter

Type of filter used in filter bank

Specify the type of filter used to determine the highpass and lowpass FIR filters in the filter bank as one of Custom, Haar, Daubechies, Symlets, Coiflets, Biorthogonal, Reverse Biorthogonal, or Discrete Meyer. If you set this property to Custom, the CustomLowpassFilter and CustomHighpassFilter properties specify the filter coefficients. Otherwise, the object uses the Wavelet Toolbox™ wfilters function to construct the filters. Depending on the filter, the WaveletOrder or FilterOrder property might apply. For a list of the supported wavelets, see the following table.

FilterSample Setting for Related Filter Specification PropertiesCorresponding Wavelet Toolbox Function Syntax
HaarNonewfilters('haar')
DaubechiesH.WaveletOrder = 4wfilters('db4')
SymletsH.WaveletOrder = 3wfilters('sym3')
CoifletsH.WaveletOrder = 1wfilters('coif1')
BiorthogonalH.FilterOrder = '[3/1]'wfilters('bior3.1')
Reverse BiorthogonalH.FilterOrder = '[3/1]'wfilters('rbior3.1')
Discrete MeyerNonewfilters('dmey')

In order to automatically design wavelet-based filters, install the Wavelet Toolbox product. Otherwise, use the CustomLowpassFilter and CustomHighpassFilter properties to specify lowpass and highpass FIR filters.

CustomLowpassFilter

Lowpass FIR filter coefficients

Specify a vector of lowpass FIR filter coefficients, in descending powers of z. Use a half-band filter that passes the frequency band stopped by the filter specified in the CustomHighpassFilter property. This property applies only when you set the Filter property to Custom. To perfectly reconstruct a signal decomposed by the DyadicAnalysisFilterBank, design the filters in the synthesis filter bank to perfectly reconstruct the outputs of the analysis filter bank. Otherwise, the reconstruction is imperfect. The default values of this property specify a perfect reconstruction filter for the default settings of the analysis filter bank (based on a third-order Daubechies wavelet).

CustomHighpassFilter

Highpass FIR filter coefficients

Specify a vector of highpass FIR filter coefficients, in descending powers of z. Use a half-band filter that passes the frequency band stopped by the filter specified in the CustomLowpassFilter property. This property applies only when you set the Filter property to Custom. To perfectly reconstruct a signal decomposed by the DyadicAnalysisFilterBank, design the filters in the synthesis filter bank to perfectly reconstruct the outputs of the analysis filter bank. Otherwise, the reconstruction is imperfect. The default values of this property specify a perfect reconstruction filter for the default settings of the analysis filter bank (based on a third-order Daubechies wavelet).

WaveletOrder

Wavelet order

Specify the order of the wavelet selected in the Filter property. This property applies only when you set the Filter property to Daubechies, Symlets or Coiflets. The default is 2.

FilterOrder

Wavelet order for synthesis filter stage

Specify the order of the wavelet for the synthesis filter stage as:

  • First order: '[1/1]', '[1/3]', or '[1/5]'.

  • Second order: '[2/2]', '[2/4]', '[2/6]', or '[2/8]'.

  • Third order: '[3/1]', '[3/3]', '[3/5]', '[3/7]', or '[3/9]'.

  • Fourth order: '[4/4]'.

  • Fifth order: '[5/5]'.

  • Sixth order: '[6/8]'.

This property applies only when you set the Filter property to Biorthogonal or Reverse Biorthogonal. The default is '[1/1]'.

NumLevels

Number of filter bank levels

Specify the number of filter bank levels as a scalar integer. An N-level asymmetric structure has N + 1 input subbands, and an N-level symmetric structure has 2N input subbands. The default is 2.

rg

TreeStructure

Structure of filter bank

Specify the structure of the filter bank as Asymmetric or Symmetric. In the asymmetric structure, the low-frequency subband input to each level is the output of the previous level, while the high-frequency subband input to each level is an input to the filter bank. In the symmetric structure, both the low- and high-frequency subband inputs to each level are outputs from the previous level. The default is Asymmetric.

Methods

cloneCreate synthesis filter bank object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs of the step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
stepReconstruct signal from high- and low-frequency subbands

Examples

Remove noise from a signal using filter banks:

 t = 0:.0001:.0511;
 x= square(2*pi*30*t);
 xn = x' + 0.08*randn(length(x),1);
 hdydanl = dsp.DyadicAnalysisFilterBank;
 
% The filter coefficients correspond to a 'haar' wavelet.
 hdydanl.CustomLowpassFilter = [1/sqrt(2) 1/sqrt(2)];
 hdydanl.CustomHighpassFilter = [-1/sqrt(2) 1/sqrt(2)];
 hdydsyn = dsp.DyadicSynthesisFilterBank;
 hdydsyn.CustomLowpassFilter = [1/sqrt(2) 1/sqrt(2)];
 hdydsyn.CustomHighpassFilter = [1/sqrt(2) -1/sqrt(2)];

 C = step(hdydanl, xn);

 % Subband outputs
 C1 = C(1:256); C2 = C(257:384); C3 = C(385:512);

 % Set high-frequency coefficients to zero to remove noise.
 x_den = step(hdydsyn, ...
   [zeros(length(C1),1); ...
    zeros(length(C2),1); ...
    C3]);

 subplot(2,1,1), plot(xn); title('Original Noisy Signal');
 subplot(2,1,2), plot(x_den); title('Denoised Signal');
 

Algorithms

This object implements the algorithm, inputs, and outputs described on the Dyadic Synthesis Filter Bank block reference page. The object properties correspond to the block parameters, except:

The object only receives data as a vector or matrix of concatenated subbands, as specified using the step method.

Was this topic helpful?