dsplib 1.1.0
C++ DSP library for MATLAB-like coding
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dsplib::ChannelSynthesizer Class Reference

Polyphase FFT synthesis filter bank. More...

#include <subband.h>

Public Member Functions

 ChannelSynthesizer (const ChannelSynthesizer &)=delete
 
 ChannelSynthesizer (span_real filter, int num_bands, int decim_factor)
 Construct ChannelSynthesizer.
 
 ChannelSynthesizer (std::shared_ptr< const arr_real > filter, int num_bands, int decim_factor)
 Construct ChannelSynthesizer.
 
 ChannelSynthesizer (int num_bands, int decim_factor, int num_taps)
 Construct ChannelSynthesizer.
 
arr_real process (span_cmplx x)
 Filter bank processing (synthesis)
 
arr_real operator() (span_cmplx x)
 
int frame_len () const noexcept
 Processing frame size.
 

Detailed Description

Polyphase FFT synthesis filter bank.

Ideally ChannelSynthesizer(Channelizer(x)) == x.

See also
Matlab dsp.ChannelSynthesizer
Warning
This implementation differs from matlab in the decimation parameter. For decim_factor=1, the results should be identical.
Todo:

remove num_taps if filter is calculated

params order (bands, decim, ntaps/coeffs)

Constructor & Destructor Documentation

◆ ChannelSynthesizer() [1/3]

dsplib::ChannelSynthesizer::ChannelSynthesizer ( span_real  filter,
int  num_bands,
int  decim_factor 
)
explicit

Construct ChannelSynthesizer.

Parameters
filterMultirate FIR coeffs [num_bands * ntaps]
num_bandsNumber of frequency bands
decim_factorDecimation factor [1 : M-1]

◆ ChannelSynthesizer() [2/3]

dsplib::ChannelSynthesizer::ChannelSynthesizer ( std::shared_ptr< const arr_real filter,
int  num_bands,
int  decim_factor 
)
explicit

Construct ChannelSynthesizer.

Use this function to save memory if multiple Channelizer/ChannelSynthesizer objects can exist at the same time

Parameters
filterPointer to multirate FIR coeffs
num_bandsNumber of frequency bands
decim_factorDecimation factor [1 : M-1]

◆ ChannelSynthesizer() [3/3]

dsplib::ChannelSynthesizer::ChannelSynthesizer ( int  num_bands,
int  decim_factor,
int  num_taps 
)
explicit

Construct ChannelSynthesizer.

The filter will be calculated using the design_multirate_fir(1, num_bands, ceil(num_taps / 2.0))

Parameters
num_bandsNumber of frequency bands
decim_factorDecimation factor [1 : M-1]
num_tapsNumber of filter coefficients per frequency band (expected to be even)

Member Function Documentation

◆ frame_len()

int dsplib::ChannelSynthesizer::frame_len ( ) const
noexcept

Processing frame size.

Returns
int frame len

◆ process()

arr_real dsplib::ChannelSynthesizer::process ( span_cmplx  x)

Filter bank processing (synthesis)

Parameters
xInput subband signal [num_bands]
Returns
arr_cmplx Restored broadband signal [num_bands / decim_factor]

The documentation for this class was generated from the following file: