The Open Master Hearing Aid (openMHA)  openMHA
Open community platform for hearing aid algorithm research
gtfb_simd_cfg_t Class Reference

Public Member Functions

unsigned get_bands () const
 Each band is split into this number of bands. More...
 
unsigned get_channels () const
 The number of separate audio channels. More...
 
unsigned get_frames () const
 The number of frames in one chunk. More...
 
 gtfb_simd_cfg_t (gtfb_simd_cfg_t &&)=delete
 
gtfb_simd_cfg_toperator= (gtfb_simd_cfg_t &&)=delete
 
 gtfb_simd_cfg_t (const gtfb_simd_cfg_t &)=delete
 
gtfb_simd_cfg_toperator= (const gtfb_simd_cfg_t &)=delete
 
 gtfb_simd_cfg_t (unsigned ch, unsigned frames, unsigned ord, const std::vector< mha_complex_t > &_coeff, const std::vector< mha_complex_t > &_norm_phase)
 
 ~gtfb_simd_cfg_t ()
 
mha_wave_tprocess (mha_wave_t *s_in)
 

Private Attributes

unsigned order
 The order of the gammatone filters. More...
 
unsigned bands
 Number of frequency bands per channel. More...
 
unsigned channels
 Number of input audio channels. More...
 
unsigned bandsXchannels
 Product of bands and channels. More...
 
std::vector< mha_complex_tnorm_phase
 Combination of normalization and phase correction factor. More...
 
float * rinputs
 input signal (1 sample) multiplied with norm_phase More...
 
float * iinputs
 
float * rcoefficients
 The complex coefficients of the gammatone filter bands. More...
 
float * icoefficients
 
float * rstates
 
float * istates
 
float * sout_buf
 output signal buffer, used by s_out. More...
 
float * large_array
 Large float array. More...
 
mha_wave_t s_out
 

Detailed Description

Configuration for Gammatone Filterbank SIMD Analyzer.

Constructor & Destructor Documentation

◆ gtfb_simd_cfg_t() [1/3]

gtfb_simd_cfg_t::gtfb_simd_cfg_t ( gtfb_simd_cfg_t &&  )
delete

◆ gtfb_simd_cfg_t() [2/3]

gtfb_simd_cfg_t::gtfb_simd_cfg_t ( const gtfb_simd_cfg_t )
delete

◆ gtfb_simd_cfg_t() [3/3]

gtfb_simd_cfg_t::gtfb_simd_cfg_t ( unsigned  ch,
unsigned  frames,
unsigned  ord,
const std::vector< mha_complex_t > &  _coeff,
const std::vector< mha_complex_t > &  _norm_phase 
)
inline

Create a configuration for Gammatone Filterbank Analyzer.

Parameters
chNumber of Audio channels.
framesNumber of Audio frames per chunk.
ordThe order of the gammatone filters.
_coeffComplex gammatone filter coefficients.
_norm_phaseNormalization and phase correction factors.

◆ ~gtfb_simd_cfg_t()

gtfb_simd_cfg_t::~gtfb_simd_cfg_t ( )
inline

Member Function Documentation

◆ get_bands()

unsigned gtfb_simd_cfg_t::get_bands ( ) const
inline

Each band is split into this number of bands.

◆ get_channels()

unsigned gtfb_simd_cfg_t::get_channels ( ) const
inline

The number of separate audio channels.

◆ get_frames()

unsigned gtfb_simd_cfg_t::get_frames ( ) const
inline

The number of frames in one chunk.

◆ operator=() [1/2]

gtfb_simd_cfg_t& gtfb_simd_cfg_t::operator= ( gtfb_simd_cfg_t &&  )
delete

◆ operator=() [2/2]

gtfb_simd_cfg_t& gtfb_simd_cfg_t::operator= ( const gtfb_simd_cfg_t )
delete

◆ process()

mha_wave_t* gtfb_simd_cfg_t::process ( mha_wave_t s_in)
inline

Member Data Documentation

◆ order

unsigned gtfb_simd_cfg_t::order
private

The order of the gammatone filters.

◆ bands

unsigned gtfb_simd_cfg_t::bands
private

Number of frequency bands per channel.

◆ channels

unsigned gtfb_simd_cfg_t::channels
private

Number of input audio channels.

◆ bandsXchannels

unsigned gtfb_simd_cfg_t::bandsXchannels
private

Product of bands and channels.

◆ norm_phase

std::vector<mha_complex_t> gtfb_simd_cfg_t::norm_phase
private

Combination of normalization and phase correction factor.

◆ rinputs

float* gtfb_simd_cfg_t::rinputs
private

input signal (1 sample) multiplied with norm_phase

◆ iinputs

float* gtfb_simd_cfg_t::iinputs
private

◆ rcoefficients

float* gtfb_simd_cfg_t::rcoefficients
private

The complex coefficients of the gammatone filter bands.

◆ icoefficients

float* gtfb_simd_cfg_t::icoefficients
private

◆ rstates

float* gtfb_simd_cfg_t::rstates
private

Storage for Filter state. Holds channels() * bands() * order complex filter states. Layout: state[stage * bandsXchannels + bands()*channel+band]

◆ istates

float* gtfb_simd_cfg_t::istates
private

◆ sout_buf

float* gtfb_simd_cfg_t::sout_buf
private

output signal buffer, used by s_out.

Contains bandsXchannels * fragsize *2 entries. all real parts come before all complex parts. Order is: channel 0 band 0 real, channel 0 band 1 real, ..., channel 1 band 0 real channel 1 band 1 real, ... channel 0 band 0 imag ... then next sample

◆ large_array

float* gtfb_simd_cfg_t::large_array
private

Large float array.

All previous pointers point into this array. Contains 3 unused entries to be able to adjust for alignment.

◆ s_out

mha_wave_t gtfb_simd_cfg_t::s_out
private

Storage for the (complex) output signal. Each of the real input audio channels is split into frequency bands with complex time signal output. The split complex time signal is again stored in a mha_wave_t buffer. Each complex time signal is stored as adjacent real and imaginary channels. Complex output from one source channel is stored in adjacent complex output channels.


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