Main Content

Channelizer

Polyphase FFT analysis filter bank

  • Channelizer block

Libraries:
DSP System Toolbox / Filtering / Multirate Filters

Description

The Channelizer block separates a broadband input signal into multiple narrow subbands using an FFT-based analysis 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. When you specify the design parameters, the filter is designed using the designMultirateFIR function.

This block accepts variable-size inputs, so you can change the size of each input channel during simulation. However, the number of channels cannot change.

Examples

Ports

Input

expand all

Specify the input broadband signal that the channelizer splits into multiple narrow bands.

  • When you input a variable-size signal (frame length changes during simulation), the frame length of the signal can be arbitrary, that is, the input frame length does not have to be a multiple of the decimation factor.

  • When you input a fixed-size signal (frame length does not change during simulation), the frame length can be arbitrary only when you select the Allow arbitrary frame length for fixed-size input signals parameter.

This port is unnamed until you set Polyphase filter specification to Coefficients and select the Specify coefficients from input port parameter.

Data Types: single | double
Complex Number Support: Yes

Coefficients of the prototype lowpass filter. 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 block zero-pads the coefficients.

If you specify complex coefficients, the block designs a prototype filter that is centered at a nonzero frequency, also known as a bandpass filter. The modulated versions of the prototype bandpass filter appear with respect to the prototype filter and are wrapped around the frequency range [−Fs Fs].

Dependencies

This port appears when you set Polyphase filter specification to Coefficients and select the Specify coefficients from input port parameter.

Data Types: single | double
Complex Number Support: Yes

Output

expand all

Multiple narrow subbands of the input broadband signal, returned as a vector, matrix, or 3-D array. The number of output ports and the dimension of each port depends on the dimensions of the input signal and whether you select the Bands as separate output ports (Max. of 16 bands) parameter. (since R2024a)

When you select the Bands as separate output ports (Max. of 16 bands) parameter, the block outputs each narrowband signal at a separate port. The number of output ports is in the range [1 min(Number of frequency bands, 16)]. When you clear the Bands as separate output ports (Max. of 16 bands) parameter, the block outputs each narrowband signal as a separate column in the output array and outputs the array at a single output port. (since R2024a)

This table provides more information on the dimensions of the output signal when you input a fixed-size input signal (frame size does not change during simulation).

Input SignalConditionsOutput Signal

L-by-1 column vector, where L is a multiple of M

Clear the Bands as separate output ports (Max. of 16 bands) parameter

(L/M)-by-M

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size (L/M)-by-1 at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is (L/M)-by-(M−15).

L-by-1 column vector, where L is not a multiple of M

Select the Allow arbitrary frame length for fixed-size input signals parameter. If you do not select Allow arbitrary frame length for fixed-size input signals, the block errors.

Clear the Bands as separate output ports (Max. of 16 bands) parameter

ceil(L/M)-by-M

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size ceil(L/M)-by-1 at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is ceil(L/M)-by-(M−15).

L-by-N matrix, where L is a multiple of M

Clear the Bands as separate output ports (Max. of 16 bands) parameter

(L/M)-by-M-by-N

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size (L/M)-by-N at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is (L/M)-by-(M−15)-by-N.

L-by-N matrix, where L is not a multiple of M

Select the Allow arbitrary frame length for fixed-size input signals parameter. If you do not select Allow arbitrary frame length for fixed-size input signals, the block errors.

Clear the Bands as separate output ports (Max. of 16 bands) parameter

ceil(L/M)-by-M-by-N

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size ceil(L/M)-by-N at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is ceil(L/M)-by-(M−15)-by-N.

This table provides more information on the dimensions of the output signal when you input a variable-size input signal (where signal frame size changes during simulation).

Input SignalConditionsOutput Signal

L-by-1 column vector, where L is a multiple of M

Clear the Bands as separate output ports (Max. of 16 bands) parameter

(L/M)-by-M

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size (L/M)-by-1 at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is (L/M)-by-(M−15).

L-by-1 column vector, where L is not a multiple of M

The block ignores the Allow arbitrary frame length for fixed-size input signals parameter.

Clear the Bands as separate output ports (Max. of 16 bands) parameter

ceil(L/M)-by-M

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size ceil(L/M)-by-1 at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is ceil(L/M)-by-(M−15).

L-by-N matrix, where L is a multiple of M

Clear the Bands as separate output ports (Max. of 16 bands) parameter

(L/M)-by-M-by-N

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size (L/M)-by-N at each of the M ports.

If M > 16, the size of the narrowband signal at the last output port is (L/M)-by-(M−15)-by-N.

L-by-N matrix, where L is not a multiple of M

The block ignores the Allow arbitrary frame length for fixed-size input signals parameter.

Clear the Bands as separate output ports (Max. of 16 bands) parameter

ceil(L/M)-by-M-by-N

Select the Bands as separate output ports (Max. of 16 bands) parameter

The block outputs M narrowband signals of size ceil(L/M)-by-N at each of the M output ports.

If M > 16, the size of the narrowband signal at the last output port is ceil(L/M)-by-(M−15)-by-N.

Data Types: single | double
Complex Number Support: Yes

Parameters

expand all

If a parameter is listed as tunable, then you can change its value during simulation.

Specify the number of frequency bands M into which the block separates the input broadband signal. This parameter indicates the FFT length and the decimation factor used by the algorithm.

Specify the decimation factor D to one of these:

  • Number of frequency bands –– When you change the value of the Number of frequency bands parameter, the decimation factor changes automatically. (since R2024a)

  • Positive integer less than or equal to the number of frequency bands M.

If the decimation factor D equals the number of frequency bands M, then the M/D ratio equals 1, and the channelizer is known as the maximally decimated channelizer.

If the M/D ratio is greater than 1, the output sample rate is different from the channel spacing, and the channelizer is known as the non-maximally decimated channelizer. If the ratio is an integer, the channelizer is known as the integer-oversampled channelizer. If the ratio is not an integer, say 4/3, the channelizer is known as the rationally oversampled channelizer. For more details, see Algorithm.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

  • Number of taps per band and stopband attenuation — Specify the filter design parameters through the Number of filter taps per frequency band and Stopband attenuation (dB) parameters. When you specify the design parameters, the filter is designed using the designMultirateFIR function.

  • Coefficients — Specify the filter coefficients directly using the Prototype lowpass filter coefficients parameter or input them through the coeffs port.

Number of filter coefficients that each polyphase branch uses. 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 Number of frequency bands × Number of filter taps per frequency band. 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.

Dependencies

To enable this parameter, set Polyphase filter specification to Number of taps per band and stopband attenuation.

Stopband attenuation of the lowpass filter, in dB. This value controls the maximum amount of aliasing from one frequency band to the next. As the stopband attenuation increases, the passband ripple decreases.

Dependencies

To enable this parameter, set Polyphase filter specification to Number of taps per band and stopband attenuation.

When you select this parameter, the lowpass filter coefficients are input through the coeffs port. When you clear this parameter, the coefficients are specified on the block dialog through the Prototype lowpass filter coefficients parameter.

Dependencies

To enable this parameter, set Polyphase filter specification to Coefficients.

Coefficients of the prototype lowpass filter. The default value is the coefficients vector that rcosdesign(0.25,6,8,'sqrt') returns. 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 block zero-pads the coefficients.

If you specify complex coefficients, the block designs a prototype filter that is centered at a nonzero frequency, also known as a bandpass filter. The modulated versions of the prototype bandpass filter appear with respect to the prototype filter and are wrapped around the frequency range [−Fs Fs].

Tunable: Yes

Dependencies

To enable this parameter, set Polyphase filter specification to Coefficients and clear the Specify coefficients from input port parameter.

Complex Number Support: Yes

Specify whether fixed-size input signals (whose size does not change during simulation) can have an arbitrary frame length, where the frame length does not have to be a multiple of the decimation factor. The block uses this parameter setting only for fixed-size input signals and ignores this parameter if the input has a variable-size.

When the input signal is a variable-size signal, the signal can have arbitrary frame length, that is, the frame length does not have to be a multiple of the decimation factor.

For fixed-size input signals, if you:

  • Select the Allow arbitrary frame length for fixed-size input signals parameter, the frame length of the signal does not have to be a multiple of the decimation factor. If the input is not a multiple of the decimation factor, then the output is generally a variable-size signal. Therefore, to support arbitrary input size, the block must also support variable-size operations, which you can enable by selecting the Allow arbitrary frame length for fixed-size input signals parameter.

  • Clear the Allow arbitrary frame length for fixed-size input signals parameter, the input frame length must be a multiple of the decimation factor.

Since R2024a

When you select this parameter, the block provides a separate output port for each frequency band. The number of output ports equals min(Number of frequency bands, 16). The block labels each output port as Bandx, where x can be a value in the range [1 min(Number of frequency bands, 16)].

For more information on the signal size on each output port, see the Output(s) port description.

Specify the type of simulation to run. You can set this parameter to:

  • Interpreted execution –– Simulate model using the MATLAB® interpreter. This option shortens startup time.

  • Code generation –– Simulate model using generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent simulations as long as the model does not change. This option requires additional startup time but provides faster subsequent simulations.

Block Characteristics

Data Types

double | single

Multidimensional Signals

No

Variable-Size Signals

Yes

More About

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, 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).

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2017a

expand all