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

First order attack-release lowpass filter. More...

Inheritance diagram for MHAFilter::o1_ar_filter_t:
Inheritance graph

Public Member Functions

 o1_ar_filter_t (unsigned int channels, mha_real_t fs=1.0f, std::vector< mha_real_t > tau_a=std::vector< float >(1, 0.0f), std::vector< mha_real_t > tau_r=std::vector< float >(1, 0.0f))
 Constructor, setting all taus to zero. More...
 
void set_tau_attack (unsigned int ch, mha_real_t tau)
 Set the attack time constant. More...
 
void set_tau_release (unsigned int ch, mha_real_t tau)
 Set the release time constant. More...
 
mha_real_t operator() (unsigned int ch, mha_real_t x)
 Apply filter to value x, using state channel ch. More...
 
void operator() (const mha_wave_t &in, mha_wave_t &out)
 Apply filter to a mha_wave_t data. More...
 
- Public Member Functions inherited from MHASignal::waveform_t
 waveform_t (const unsigned int &frames, const unsigned int &channels)
 constructor of waveform_t More...
 
 waveform_t (const mhaconfig_t &cf)
 Constructor to create a waveform from plugin configuration. More...
 
 waveform_t (const mha_wave_t &src)
 Copy contructor for mha_wave_t source. More...
 
 waveform_t (const MHASignal::waveform_t &src)
 Copy contructor. More...
 
 waveform_t (const std::vector< mha_real_t > &src)
 Copy contructor for std::vector<mha_real_t> source. More...
 
virtual ~waveform_t (void)
 
std::vector< mha_real_tflatten () const
 
 operator std::vector< mha_real_t > () const
 
void operator= (const mha_real_t &v)
 
mha_real_toperator[] (unsigned int k)
 
const mha_real_toperator[] (unsigned int k) const
 
mha_real_tvalue (unsigned int t, unsigned int ch)
 Element accessor. More...
 
mha_real_toperator() (unsigned int t, unsigned int ch)
 Element accessor. More...
 
const mha_real_tvalue (unsigned int t, unsigned int ch) const
 Constant element accessor. More...
 
const mha_real_toperator() (unsigned int t, unsigned int ch) const
 Constant element accessor. More...
 
mha_real_t sum (const unsigned int &a, const unsigned int &b)
 sum of all elements between [a,b) in all channels More...
 
mha_real_t sum (const unsigned int &a, const unsigned int &b, const unsigned int &ch)
 sum of all elements between [a,b) in channel ch More...
 
mha_real_t sum ()
 sum of all elements More...
 
mha_real_t sumsqr ()
 sum of square of all elements More...
 
mha_real_t sum_channel (const unsigned int &)
 return sum of all elements in one channel More...
 
void assign (const unsigned int &k, const unsigned int &ch, const mha_real_t &val)
 set frame "k" in channel "ch" to value "val" More...
 
void assign (const mha_real_t &)
 set all elements to value More...
 
void assign_frame (const unsigned int &k, const mha_real_t &val)
 assign value "val" to frame k in all channels More...
 
void assign_channel (const unsigned int &c, const mha_real_t &val)
 assign value "val" to channel ch in all frames More...
 
void copy (const std::vector< mha_real_t > &v)
 
void copy (const mha_wave_t &)
 copy data from source into current waveform More...
 
void copy (const mha_wave_t *)
 
void copy_channel (const mha_wave_t &, unsigned int, unsigned int)
 Copy one channel of a given waveform signal to a target channel. More...
 
void copy_from_at (unsigned int, unsigned int, const mha_wave_t &, unsigned int)
 Copy part of the source signal into part of this waveform object. More...
 
void export_to (mha_wave_t &)
 copy data into allocated mha_wave_t structure More...
 
void limit (const mha_real_t &min, const mha_real_t &max)
 limit target to range [min,max] More...
 
void power (const waveform_t &)
 transform waveform signal (in Pa) to squared signal (in W/m^2) More...
 
void powspec (const mha_spec_t &)
 get the power spectrum (in W/m^2) from a complex spectrum More...
 
void scale (const unsigned int &a, const unsigned int &b, const unsigned int &ch, const mha_real_t &val)
 scale section [a,b) in channel "ch" by "val" More...
 
void scale (const unsigned int &k, const unsigned int &ch, const mha_real_t &val)
 scale one element More...
 
void scale_channel (const unsigned int &, const mha_real_t &)
 scale one channel of target with a scalar More...
 
void scale_frame (const unsigned int &, const mha_real_t &)
 
unsigned int get_size () const
 

Protected Attributes

MHASignal::waveform_t c1_a
 
MHASignal::waveform_t c2_a
 
MHASignal::waveform_t c1_r
 
MHASignal::waveform_t c2_r
 
mha_real_t fs
 

Additional Inherited Members

- Public Attributes inherited from mha_wave_t
mha_real_tbuf
 signal buffer More...
 
unsigned int num_channels
 number of channels More...
 
unsigned int num_frames
 number of frames in each channel More...
 
mha_channel_info_tchannel_info
 detailed channel description More...
 

Detailed Description

First order attack-release lowpass filter.

This filter is the base of first order lowpass filter, maximum tracker and minimum tracker.

Constructor & Destructor Documentation

◆ o1_ar_filter_t()

MHAFilter::o1_ar_filter_t::o1_ar_filter_t ( unsigned int  channels,
mha_real_t  fs = 1.0f,
std::vector< mha_real_t tau_a = std::vector<float>(1,0.0f),
std::vector< mha_real_t tau_r = std::vector<float>(1,0.0f) 
)

Constructor, setting all taus to zero.

The filter state can be accessed through the member functions of MHASignal::waveform_t.

Parameters
channelsNumber of independent filters
fsSampling rate (optional, default = 1)
tau_aAttack time constants (optional, default = 0)
tau_rRelease time constants (optional, default = 0)

Member Function Documentation

◆ set_tau_attack()

void MHAFilter::o1_ar_filter_t::set_tau_attack ( unsigned int  ch,
mha_real_t  tau 
)

Set the attack time constant.

Parameters
chChannel number
tauTime constant

◆ set_tau_release()

void MHAFilter::o1_ar_filter_t::set_tau_release ( unsigned int  ch,
mha_real_t  tau 
)

Set the release time constant.

Parameters
chChannel number
tauTime constant

◆ operator()() [1/2]

mha_real_t MHAFilter::o1_ar_filter_t::operator() ( unsigned int  ch,
mha_real_t  x 
)
inline

Apply filter to value x, using state channel ch.

Parameters
chCannel number
xInput value
Returns
Output value

◆ operator()() [2/2]

void MHAFilter::o1_ar_filter_t::operator() ( const mha_wave_t in,
mha_wave_t out 
)
inline

Apply filter to a mha_wave_t data.

Parameters
inInput signal
outOutput signal

The number of channels must match the number of filter bands.

Member Data Documentation

◆ c1_a

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_a
protected

◆ c2_a

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_a
protected

◆ c1_r

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_r
protected

◆ c2_r

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_r
protected

◆ fs

mha_real_t MHAFilter::o1_ar_filter_t::fs
protected

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