|  | The Open Master Hearing Aid (openMHA)
    openMHA
    Open community platform for hearing aid algorithm research | 
Namespace for audio signal handling and processing classes. More...
| Classes | |
| class | hilbert_fftw_t | 
| class | spectrum_t | 
| a signal processing class for spectral data (based on mha_spec_t)  More... | |
| class | waveform_t | 
| signal processing class for waveform data (based on mha_wave_t)  More... | |
| class | doublebuffer_t | 
| Double-buffering class.  More... | |
| class | ringbuffer_t | 
| A ringbuffer class for time domain audio signal, which makes no assumptions with respect to fragment size.  More... | |
| class | hilbert_t | 
| Hilbert transformation of a waveform segment.  More... | |
| class | minphase_t | 
| Minimal phase function.  More... | |
| class | stat_t | 
| class | delay_wave_t | 
| Delayline containing wave fragments.  More... | |
| class | delay_spec_t | 
| class | async_rmslevel_t | 
| Class for asynchronous level metering.  More... | |
| class | uint_vector_t | 
| Vector of unsigned values, used for size and index description of n-dimensional matrixes.  More... | |
| class | matrix_t | 
| n-dimensional matrix with real or complex floating point values.  More... | |
| class | schroeder_t | 
| Schroeder tone complex class.  More... | |
| class | quantizer_t | 
| Simple simulation of fixpoint quantization.  More... | |
| class | loop_wavefragment_t | 
| Copy a fixed waveform fragment to a series of waveform fragments of other size.  More... | |
| class | delay_t | 
| Class to realize a simple delay of waveform streams.  More... | |
| class | subsample_delay_t | 
| implements subsample delay in spectral domain.  More... | |
| class | fft_t | 
| Functions | |
| void | for_each (mha_wave_t *s, mha_real_t(*fun)(mha_real_t)) | 
| Apply a function to each element of a mha_wave_t.  More... | |
| mha_real_t | lin2db (mha_real_t x, mha_real_t eps) | 
| Conversion from linear scale to dB (no SPL reference)  More... | |
| mha_real_t | lin2db (mha_real_t x) | 
| Conversion from linear scale to dB (no SPL reference)  More... | |
| mha_real_t | db2lin (mha_real_t x) | 
| Conversion from dB scale to linear (no SPL reference)  More... | |
| mha_real_t | sq2db (mha_real_t x, mha_real_t eps=0.0f) | 
| conversion from squared values to dB (no SPL reference)  More... | |
| mha_real_t | db2sq (mha_real_t x) | 
| conversion from dB to squared values (no SPL reference)  More... | |
| mha_real_t | pa2dbspl (mha_real_t x, mha_real_t eps) | 
| Conversion from linear Pascal scale to dB SPL.  More... | |
| mha_real_t | pa2dbspl (mha_real_t x) | 
| Conversion from linear Pascal scale to dB SPL.  More... | |
| mha_real_t | dbspl2pa (mha_real_t x) | 
| Conversion from dB SPL to linear Pascal scale.  More... | |
| mha_real_t | pa22dbspl (mha_real_t x, mha_real_t eps=0.0f) | 
| Conversion from squared Pascal scale to dB SPL.  More... | |
| mha_real_t | dbspl2pa2 (mha_real_t x) | 
| conversion from dB SPL to squared Pascal scale  More... | |
| mha_real_t | smp2sec (mha_real_t n, mha_real_t srate) | 
| conversion from samples to seconds  More... | |
| mha_real_t | sec2smp (mha_real_t sec, mha_real_t srate) | 
| conversion from seconds to samples  More... | |
| mha_real_t | bin2freq (mha_real_t bin, unsigned fftlen, mha_real_t srate) | 
| conversion from fft bin index to frequency  More... | |
| mha_real_t | freq2bin (mha_real_t freq, unsigned fftlen, mha_real_t srate) | 
| conversion from frequency to fft bin index  More... | |
| mha_real_t | smp2rad (mha_real_t samples, unsigned bin, unsigned fftlen) | 
| conversion from delay in samples to phase shift  More... | |
| mha_real_t | rad2smp (mha_real_t phase_shift, unsigned bin, unsigned fftlen) | 
| conversion from phase shift to delay in samples  More... | |
| template<class elem_type > | |
| std::vector< elem_type > | dupvec (std::vector< elem_type > vec, unsigned n) | 
| Duplicate last vector element to match desired size.  More... | |
| template<class elem_type > | |
| std::vector< elem_type > | dupvec_chk (std::vector< elem_type > vec, unsigned n) | 
| Duplicate last vector element to match desired size, check for dimension.  More... | |
| void | copy_channel (mha_spec_t &self, const mha_spec_t &src, unsigned sch, unsigned dch) | 
| Copy one channel of a source signal.  More... | |
| void | copy_channel (mha_wave_t &self, const mha_wave_t &src, unsigned src_channel, unsigned dest_channel) | 
| Copy one channel of a source signal.  More... | |
| mha_real_t | rmslevel (const mha_spec_t &s, unsigned int channel, unsigned int fftlen) | 
| Return RMS level of a spectrum channel.  More... | |
| mha_real_t | colored_intensity (const mha_spec_t &s, unsigned int channel, unsigned int fftlen, mha_real_t *sqfreq_response=nullptr) | 
| Colored spectrum intensity.  More... | |
| mha_real_t | maxabs (const mha_spec_t &s, unsigned int channel) | 
| Find maximal absolute value.  More... | |
| mha_real_t | rmslevel (const mha_wave_t &s, unsigned int channel) | 
| Return RMS level of a waveform channel.  More... | |
| mha_real_t | maxabs (const mha_wave_t &s, unsigned int channel) | 
| Find maximal absolute value.  More... | |
| mha_real_t | maxabs (const mha_wave_t &s) | 
| Find maximal absolute value.  More... | |
| mha_real_t | max (const mha_wave_t &s) | 
| Find maximal value.  More... | |
| mha_real_t | min (const mha_wave_t &s) | 
| Find minimal value.  More... | |
| mha_real_t | sumsqr_channel (const mha_wave_t &s, unsigned int channel) | 
| Calculate sum of squared values in one channel.  More... | |
| mha_real_t | sumsqr_frame (const mha_wave_t &s, unsigned int frame) | 
| Calculate sum over all channels of squared values.  More... | |
| void | scale (mha_spec_t *dest, const mha_wave_t *src) | 
| void | limit (mha_wave_t &s, const mha_real_t &min, const mha_real_t &max) | 
| Limit the singal in the waveform buffer to the range [min, max].  More... | |
| template<class elem_type > | |
| elem_type | kth_smallest (elem_type array[], unsigned n, unsigned k) | 
| Fast search for the kth smallest element of an array.  More... | |
| template<class elem_type > | |
| elem_type | median (elem_type array[], unsigned n) | 
| Fast median search.  More... | |
| template<class elem_type > | |
| elem_type | mean (const std::vector< elem_type > &data, elem_type start_val) | 
| Calculate average of elements in a vector.  More... | |
| template<class elem_type > | |
| std::vector< elem_type > | quantile (std::vector< elem_type > data, const std::vector< elem_type > &p) | 
| Calculate quantile of elements in a vector.  More... | |
| void | saveas_mat4 (const mha_spec_t &data, const std::string &varname, FILE *fh) | 
| Save a openMHA spectrum as a variable in a Matlab4 file.  More... | |
| void | saveas_mat4 (const mha_wave_t &data, const std::string &varname, FILE *fh) | 
| Save a openMHA waveform as a variable in a Matlab4 file.  More... | |
| void | saveas_mat4 (const std::vector< mha_real_t > &data, const std::string &varname, FILE *fh) | 
| Save a float vector as a variable in a Matlab4 file.  More... | |
| void | copy_permuted (mha_wave_t *dest, const mha_wave_t *src) | 
| Copy contents of a waveform to a permuted waveform.  More... | |
| Variables | |
| unsigned long int | signal_counter = 0 | 
| Signal counter to produce signal ID strings.  More... | |
Namespace for audio signal handling and processing classes.
| 
 | inline | 
Apply a function to each element of a mha_wave_t.
| s | Pointer to a mha_wave_t structure | 
| fun | Function to be applied (one argument) | 
| 
 | inline | 
Conversion from linear scale to dB (no SPL reference)
| x | Linear input | 
| eps | minimum linear value (if x < eps --> convert eps instead), eps < 0 not allowed | 
| MHA_Error | if eps < 0 | 
| 
 | inline | 
Conversion from linear scale to dB (no SPL reference)
| x | Linear input. | 
| 
 | inline | 
Conversion from dB scale to linear (no SPL reference)
| x | dB input. | 
| 
 | inline | 
conversion from squared values to dB (no SPL reference)
| x | squared value input | 
| eps | minimum squared value (if x < eps --> convert eps instead), eps < 0 not allowed | 
| MHA_Error | if eps < 0 | 
| 
 | inline | 
conversion from dB to squared values (no SPL reference)
| x | dB input | 
| 
 | inline | 
Conversion from linear Pascal scale to dB SPL.
| x | Linear input | 
| eps | minimum pascal value (if x < eps --> convert eps instead), | 
| MHA_Error | if eps < 0 | 
| 
 | inline | 
Conversion from linear Pascal scale to dB SPL.
| x | Linear input | 
| 
 | inline | 
Conversion from dB SPL to linear Pascal scale.
| x | Linear input. | 
| 
 | inline | 
Conversion from squared Pascal scale to dB SPL.
| x | squared pascal input | 
| eps | minimum squared-pascal value (if x < eps --> convert eps instead), eps < 0 not allowed | 
| MHA_Error | if eps < 0 | 
| 
 | inline | 
conversion from dB SPL to squared Pascal scale
| x | dB SPL input | 
| 
 | inline | 
conversion from samples to seconds
| n | number of samples | 
| srate | sampling rate / Hz | 
| 
 | inline | 
conversion from seconds to samples
| sec | time in seconds | 
| srate | sampling rate / Hz | 
| void MHASignal::scale | ( | mha_spec_t * | dest, | 
| const mha_wave_t * | src | ||
| ) | 
| void MHASignal::limit | ( | mha_wave_t & | s, | 
| const mha_real_t & | min, | ||
| const mha_real_t & | max | ||
| ) | 
Limit the singal in the waveform buffer to the range [min, max].
| s | The signal to limit. The signal in this wave buffer is modified. | 
| min | lower limit | 
| max | upper limit | 
| elem_type MHASignal::kth_smallest | ( | elem_type | array[], | 
| unsigned | n, | ||
| unsigned | k | ||
| ) | 
Fast search for the kth smallest element of an array.
The order of elements is altered, but not completely sorted. Using the algorithm from N. Wirth, published in "Algorithms + data structures = programs", Prentice-Hall, 1976
| array | Element array | 
| n | number of elements in array | 
| k | The k'th smalles element is returned: k = 0 returns the minimum, k = (n-1)/2 returns the median, k=(n-1) returns the maximum | 
| 
 | inline | 
Fast median search.
The order of elements is altered, but not completely sorted.
| array | Element array | 
| n | number of elements in array | 
| 
 | inline | 
Calculate average of elements in a vector.
| data | Input vector | 
| start_val | Value for initialization of the return value before sum. | 
| 
 | inline | 
Calculate quantile of elements in a vector.
| data | Input vector | 
| p | Vector of probability values. | 
| void MHASignal::saveas_mat4 | ( | const mha_spec_t & | data, | 
| const std::string & | varname, | ||
| FILE * | fh | ||
| ) | 
Save a openMHA spectrum as a variable in a Matlab4 file.
| data | openMHA spectrum to be saved. | 
| varname | Matlab variable name (Matlab4 limitations on maximal length are not checked). | 
| fh | File handle to Matlab4 file. | 
| void MHASignal::saveas_mat4 | ( | const mha_wave_t & | data, | 
| const std::string & | varname, | ||
| FILE * | fh | ||
| ) | 
Save a openMHA waveform as a variable in a Matlab4 file.
| data | openMHA waveform to be saved. | 
| varname | Matlab variable name (Matlab4 limitations on maximal length are not checked). | 
| fh | File handle to Matlab4 file. | 
| void MHASignal::saveas_mat4 | ( | const std::vector< mha_real_t > & | data, | 
| const std::string & | varname, | ||
| FILE * | fh | ||
| ) | 
Save a float vector as a variable in a Matlab4 file.
| data | Float vector to be saved. | 
| varname | Matlab variable name (Matlab4 limitations on maximal length are not checked). | 
| fh | File handle to Matlab4 file. | 
| void MHASignal::copy_permuted | ( | mha_wave_t * | dest, | 
| const mha_wave_t * | src | ||
| ) | 
Copy contents of a waveform to a permuted waveform.
| dest | Destination waveform | 
| src | Source waveform | 
The total size of src and dest must be the same, num_frames and num_channels must be exchanged in dest.
| 
 | extern | 
Signal counter to produce signal ID strings.