Engee documentation

EngeeDSP.ChannelSynthesizer

A set of filters for synthesis of polyphase FFT.

Library

EngeeDSP

Description

System object EngeeDSP.ChannelSynthesizer Combines several narrowband signals into a broadband signal using a set of filters for synthesis based on the fast Fourier transform (FFT). The filter set uses a prototype low-pass filter and is implemented using a polyphase structure. The filter coefficients can be set directly or through design parameters.

To combine multiple narrowband signals into a broadband signal, follow these steps:

  1. Create an object EngeeDSP.ChannelSynthesizer and set its properties.

  2. Call the object with arguments as if it were a function.

To learn more about how to work with system objects, see Engee System Objects.

Syntax

Creation

  • synthesizer = EngeeDSP.ChannelSynthesizer() — creates a synthesizer system object with default properties.

  • synthesizer = EngeeDSP.ChannelSynthesizer(Name=Value) — creates a synthesizer system object with specified properties in the form of a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

    Example:

    # создание системного объекта с затуханием в полосе задерживания 140
    synthesizer = EngeeDSP.ChannelSynthesizer(StopbandAttenuation = 140)

Using

  • synthOut = channelizer(input) — combines narrow-band input signals contained in columns input, in a broadband signal synthOut.

Arguments

Input arguments

# input — narrow-band signals

+ the matrix | three-dimensional array

Details

Narrow-band signals defined as a matrix or three-dimensional array. Each narrowband signal is stored as a column in the input signal. The number of columns in the input signal corresponds to the number of frequency bands of the filter set. If the input signal is three-dimensional, each matrix corresponds to a separate channel. If — the number of frequency bands, and input It represents a matrix on , then the output signal synthOut It has dimensions on . If input It has dimensions on on Then synthOut It has dimensions on .

This object accepts input data of variable size, that is, after locking the object, you can change the size of each input channel. The number of channels cannot be changed.

Типы данных

Float32, Float64

Support for complex numbers

Yes

Output arguments

# Synth — combined broadband signal

+ the matrix | three-dimensional array

Details

The combined broadband signal returned as a matrix or three-dimensional array. If — the number of frequency bands, and input It is a matrix of size on , then the output signal synthOut It has dimensions on . If input It has dimensions on on Then synthOut It has dimensions on .

Типы данных

Float32, Float64

Support for complex numbers

Yes

Features

# LowpassCoefficients — coefficients of the low-pass filter prototype

Details

The coefficients of the low-pass filter prototype, specified as a string vector. The coefficient vector is obtained by default using the function rcosdesign(0.25, 6, 8, "sqrt"). There must be at least one coefficient for each frequency band. If the length of the low-pass filter is less than the number of frequency bands, the object complements the coefficients with zeros.

If complex coefficients are set, the object will develop a prototype filter centered at a non-zero frequency, also known as a band-pass filter. Modulated versions of the bandpass filter prototype are displayed relative to the filter prototype and cover the frequency range .

Dependencies

To use this property, set the property to Specification value "Coefficients".

# NumTapsPerBand — number of filter coefficients per frequency band
Real number

Details

The number of filter coefficients used by each polyphase branch, given as a positive integer. The number of polyphase branches corresponds to the number of frequency bands. The total number of filter coefficients for the prototype low-pass filter is determined by the product of the number of frequency bands and the value of NumTapsPerBand. At a given attenuation in the delay band, an increase in the number of taps per band narrows the width of the filter transition. As a result, the useful bandwidth for each frequency band increases due to increased computational costs.

Dependencies

To use this property, set the property to Specification value "Number of taps per band and stopband attenuation".

# Specification — Design parameters or filter coefficients
String

Details

Filter design parameters or filter coefficients specified in one of the following ways:

# StopbandAttenuation — attenuation in the delay band
Real number

Details

Attenuation in the delay band of a low-pass filter, specified as a positive real number in dB. This value controls the maximum number of overlapping spectra from one frequency band to another. As the attenuation in the delay band increases, the ripples in the passband decrease.

Dependencies

To use this property, set the property to Specification value "Number of taps per band and stopband attenuation".

# InterpolationFactor — interpolation coefficient

Details

Interpolation coefficient , set in one of the following ways:

  • "Number of frequency bands" — when the number of frequency bands changes, the interpolation coefficient changes automatically.

  • A positive integer greater than or equal to the number of frequency bands .

The number of frequency bands is equal to the number of channels in the input signal. If the interpolation coefficient equal to the number of frequency bands , that relation , and the synthesizer is called a synthesizer with critical channel sampling.

If more , that relation must be an integer.

Methods

Common to all system objects

step!

Run the system object operation algorithm

release!

Allow changing the value of a system object property

reset!

Resetting the internal states of a system object

Additional Info

A set of filters for speech synthesis

Details

The synthesis filter set consists of a number of parallel bandpass filters that combine several narrowband input signals. in one broadband signal . The input narrowband signals are in the main frequency band. Each narrowband signal is interpolated to a higher sampling rate using an upsampler, and then filtered with a low-pass filter. A complex exponential function following the low-pass filter centers the baseband signal around .

channel synthesizer 1 en

Low-pass filter prototype

Details

To effectively implement a set of filters for synthesis, the synthesizer uses a prototype low-pass filter.

The prototype low-pass filter has a pulse response , normalized two-way bandwidth and the cutoff frequency . — the number of frequency bands, that is, the branches of a set of filters for synthesis. This value corresponds to the length of the FFT used by the filter set. it can be large, on the order of 2048 or more. The attenuation in the delay band determines the minimum level of interference (contour distortion) from one frequency band to another. The ripples in the bandwidth must be small so that the input signal is not distorted in the bandwidth.

The low-pass filter prototype simulates the first branch of a set of filters. The others The branches are modeled by filters, which are modulated versions of the filter prototype. The modulation coefficient is determined by the following equation:

The output of each bandpass filter forms a specific part of the broadband signal. The outputs of all branches are combined to form a broadband signal. .

Algorithms

Implementation using a polyphase structure

Details

A set of filters for synthesis can be effectively implemented using a polyphase structure. For more information about the set of filters for synthesis, see A set of filters for speech synthesis.

To obtain a polyphase structure, let’s start with the transfer function of the prototype low-pass filter.:

where — the length of the filter prototype.

This equation can be reformulated as follows:

where — the number of polyphase components equal to the interpolation coefficient.

This equation can be written as follows:

where — polyphase components of the low-pass filter prototype .

The rest of the filters in the filter set , where , are modulated versions of this prototype filter .

The transfer function The th modulated bandpass filter can be written as . Replacing on , we get

where — length - th filter.

In the polyphase form, the equation looks like this:

For everyone channels in the filter set MIMO transfer function It is set as follows:

Here is a multi-speed wonderful identity for interpolation.

channel synthesizer 2 en

For clarity, let’s consider the first branch of the filter set, which contains a low-pass filter.

channel synthesizer 3

channel synthesizer 4

After applying the remarkable interpolation identity, you can replace the delays, the interpolation coefficient, and the adder with a switching device.

channel synthesizer 5

For everyone channels in the filter set MIMO transfer function It is set as follows:

The matrix on the left is the inverse discrete Fourier transform (ODFT) matrix. Using the ODPF matrix, the effective implementation of a set of filters based on a prototype low-pass filter is as follows.

channel synthesizer 6 en

Literature

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

  2. Harris, F.J., Chris Dick, and Michael Rice. «Digital Receivers and Transmitters Using Polyphase Filter Banks for Wireless Communications.» IEEE® Transactions on Microwave Theory and Techniques. 51, no. 4 (2003).