Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

dsp.ChannelSynthesizer System object

Polyphase FFT synthesis filter bank

Description

The dsp.ChannelSynthesizer System object™ merges multiple narrowband signals into a broadband signal by using an FFT based synthesis filter bank. The filter bank uses a prototype lowpass filter and is implemented using a polyphase structure. You can specify the filter coefficients directly or through design parameters.

Each narrowband signal is stored as a column in the input signal, x. The number of columns in x corresponds to the number of frequency bands of the filter bank. If x is three-dimensional, each matrix corresponds to a separate channel. If M is the number of frequency bands, and x is an L-by-M matrix, then the output signal, y, has dimensions L×M-by-1. If x has more than one channel, that is, it has dimensions L-by-M-by-N, then y has dimensions L×M-by-N. The input x can be complex and supports single and double data types.

This object also accepts variable-size inputs. That is, once the object is locked, you can change the size of each input channel. The number of channels cannot change. This object supports C and C++ code generation.

To merge multiple narrowband signals into a broadband signal:

  1. Create a dsp.ChannelSynthesizer object and set the properties of the object.

  2. Call step to synthesize the signal.

Note

Alternatively, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

synthesizer = dsp.ChannelSynthesizer creates a synthesizer object, using the default properties.

synthesizer = dsp.ChannelSynthesizer(Name,Value) specifies additional properties using Name,Value pairs. Unspecified properties have default values.

Example:

synthesizer = dsp.ChannelSynthesizer('NumTapsPerBand',20,'StopbandAttenuation',140);

Properties

expand all

Filter design parameters or filter coefficients, specified as one of these options:

  • 'Number of taps per band and stopband attenuation' — Specify the filter design parameters through the NumTapsPerBand and StopbandAttenuation properties.

  • 'Coefficients' — Specify the filter coefficients directly using LowpassCoefficients.

Number of filter coefficients each polyphase branch uses, specified as a positive integer. The number of polyphase branches matches the number of frequency bands. The total number of filter coefficients for the prototype lowpass filter is given by product of the number of frequency bands and NumTapsPerBand. For a given stopband attenuation, increasing the number of taps per band narrows the transition width of the filter. As a result, there is more usable bandwidth for each frequency band at the expense of increased computation.

This property applies when you set Specification to 'Number of taps per band and stopband attenuation'.

Stopband attenuation of the lowpass filter, specified as a positive real scalar in dB. This value controls the maximum amount of aliasing from one frequency band to the next. Larger is the stopband attenuation, smaller is the passband ripple.

This property applies when you set Specification to 'Number of taps per band and stopband attenuation'.

Coefficients of the prototype lowpass filter, specified as a row vector. There must be at least one coefficient per frequency band. If the length of the lowpass filter is less than the number of frequency bands, the object zero-pads the coefficients.

This property applies when you set Specification to 'Coefficients'.

This property is tunable. You can change its value even after the object is locked.

Methods

coeffsCoefficients of prototype lowpass filter
polyphasePolyphase matrix
resetReset internal states of System object
stepMerge narrowband signals into a broadband signal
tfTransfer function
Common to All System Objects
clone

Create System object with same property values

getNumInputs

Expected number of inputs to a System object

getNumOutputs

Expected number of outputs of a System object

isLocked

Check locked states of a System object (logical)

release

Allow System object property value changes

Examples

expand all

The quadrature mirror filter bank (QMF) contains an analysis filter bank section and a synthesis filter bank section. dsp.Channelizer implements the analysis filter bank. dsp.ChannelSynthesizer implements the synthesis filter bank using the efficient polyphase implementation based on a prototype lowpass filter.

Initialization

Initialize the dsp.Channelizer and dsp.ChannelSynthesizer System objects. Each object is set up with 8 frequency bands, 8 polyphase branches in each filter, 12 coefficients per polyphase branch, and a stopband attenuation of 140 dB. Use a sine wave with multiple frequencies as the input signal. View the input spectrum and the output spectrum using a spectrum analyzer.

offsets = [-40,-30,-20,10,15,25,35,-15];
sinewave = dsp.SineWave('ComplexOutput',true,'Frequency',...
    offsets+(-375:125:500),'SamplesPerFrame',800);

channelizer = dsp.Channelizer('StopbandAttenuation',140);
synthesizer = dsp.ChannelSynthesizer('StopbandAttenuation',140);
spectrumAnalyzer =  dsp.SpectrumAnalyzer('ShowLegend',true,'NumInputPorts',...
    2,'ChannelNames',{'Input','Output'},'Title','Input and Output of QMF');

Streaming

Use the channelizer to split the broadband input signal into multiple narrow bands. Then pass the multiple narrowband signals into the synthesizer, which merges these signals to form the broadband signal. Compare the spectra of the input and output signals. The input and output spectra match very closely.

for i = 1:5000
    x = sum(sinewave(),2);
    y = channelizer(x);
    v = synthesizer(y);
    spectrumAnalyzer(x,v)
end

Definitions

expand all

Algorithms

expand all

References

[1] Harris, Fredric J, Multirate Signal Processing for Communication Systems, Prentice Hall PTR, 2004.

[2] Harris, F.J., Chris Dick, Michael Rice. "Digital Receivers and Transmitters Using Polyphase Filter Banks for Wireless Communications." IEEE Transactions on microwave theory and techniques. Vol. 51, Number 4, April 2003.

Extended Capabilities

Introduced in R2016b

Was this topic helpful?