EngeeDSP.ChannelSynthesizer
A set of filters for synthesis of polyphase FFT.
| Library |
|
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:
-
Create an object EngeeDSP.ChannelSynthesizer and set its properties.
-
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 pairName=Value, whereName— the name of the property, andValue— 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)
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.
| Типы данных |
|
| 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 .
| Типы данных |
|
| 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:
-
"Number of taps per band and stopband attenuation"— filter design parameters are set using the properties NumTapsPerBand and StopbandAttenuation. -
"Coefficients"— filter coefficients are set directly using the property LowpassCoefficients.
#
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.
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 .
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
Here is a multi-speed wonderful identity for interpolation.
For clarity, let’s consider the first branch of the filter set, which contains a low-pass filter.
Replace
After applying the remarkable interpolation identity, you can replace the delays, the interpolation coefficient, and the adder with a switching device.
For everyone
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.
Literature
-
Harris, Fredric J, Multirate Signal Processing for Communication Systems, Prentice Hall PTR, 2004.
-
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).