![]() |
The Open Master Hearing Aid (openMHA)
openMHA
Open community platform for hearing aid algorithm research
|
Runtime configuration class for plugin wave2spec. More...

Public Member Functions | |
| wave2spec_t (unsigned int nfft, unsigned int nwnd_, unsigned int nwndshift_, unsigned int nch, mha_real_t wndpos, const MHAWindow::base_t &window, MHA_AC::algo_comm_t &ac, std::string algo) | |
| Constructor computes window and zeropadding, allocates storage and FFT plan. More... | |
| void | publish_ac_variables () |
| Insert two AC variables into AC space: More... | |
| mha_spec_t * | process (mha_wave_t *wave_in) |
| Perform signal shift, windowing, zero-padding and FFT. More... | |
| ~wave2spec_t () | |
| Destructor removes AC variables from AC space and deallocates memory. More... | |
| unsigned | get_zeropadding (bool after) const |
| Getter method to read zeropadding computed for the STFT configuration parameters. More... | |
Public Member Functions inherited from MHA_AC::spectrum_t | |
| spectrum_t (algo_comm_t &ac, const std::string &name, unsigned int bins, unsigned int channels, bool insert_now) | |
| Initialize memory and metadata of the AC variable. More... | |
| ~spectrum_t () | |
| Destroy the AC variable: deallocate its memory. More... | |
| void | insert () |
| Insert or re-insert AC variable into AC space. More... | |
| void | remove () |
| Remove the AC variable by reference from the AC variable space. More... | |
Public Member Functions inherited from MHASignal::spectrum_t | |
| spectrum_t (const unsigned int &frames, const unsigned int &channels) | |
| constructor of spectrum class More... | |
| spectrum_t (const mha_spec_t &) | |
| Copy constructor. More... | |
| spectrum_t (const MHASignal::spectrum_t &) | |
| Copy constructor. More... | |
| spectrum_t (const std::vector< mha_complex_t > &) | |
| mha_complex_t & | operator() (unsigned int f, unsigned int ch) |
| Access to element. More... | |
| mha_complex_t & | operator[] (unsigned int k) |
| Access to a single element, direct index into data buffer. More... | |
| mha_complex_t & | value (unsigned int f, unsigned int ch) |
| Access to element. More... | |
| void | copy (const mha_spec_t &) |
| copy all elements from a spectrum More... | |
| void | copy_channel (const mha_spec_t &s, unsigned sch, unsigned dch) |
| Copy one channel of a given spectrum signal to a target channel. More... | |
| void | export_to (mha_spec_t &) |
| copy elements to spectrum structure More... | |
| void | scale (const unsigned int &, const unsigned int &, const unsigned int &, const mha_real_t &) |
| scale section [a,b) in channel "ch" by "val" More... | |
| void | scale_channel (const unsigned int &, const mha_real_t &) |
| scale all elements in one channel More... | |
Private Member Functions | |
| void | calc_pre_wnd (MHASignal::waveform_t &dest, const MHASignal::waveform_t &src) |
| Applies analysis window weights to current input signal and writes windowed signal to correct place in FFT buffer. More... | |
Private Attributes | |
| unsigned int | nwnd |
| window length More... | |
| unsigned int | nwndshift |
| window shift or hop size More... | |
| mha_fft_t | ft |
| FFT instance used for transformation. More... | |
| unsigned int | npad1 |
| length of zero padding before window More... | |
| unsigned int | npad2 |
| length of zero padding after window More... | |
| MHAWindow::base_t | window |
| Analysis window. More... | |
| MHASignal::waveform_t | calc_in |
| waveform buffer with FFT length samples per channel More... | |
| MHASignal::waveform_t | in_buf |
| waveform buffer with window length samples per channel More... | |
| MHASignal::spectrum_t | spec_in |
| spectrum buffer containing only the positive frequency bins More... | |
| std::string | ac_wndshape_name |
| name of window shape AC variable More... | |
Additional Inherited Members | |
Public Attributes inherited from mha_spec_t | |
| mha_complex_t * | buf |
| 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_t * | channel_info |
| detailed channel description More... | |
Protected Attributes inherited from MHA_AC::spectrum_t | |
| algo_comm_t & | ac |
| AC variable space. More... | |
| const std::string | name |
| Name of this AC variable in the AC variable space. More... | |
| const bool | remove_during_destructor |
| flag whether to remove from AC variable space in destructor. More... | |
Runtime configuration class for plugin wave2spec.
Manages window shift, windowing, zero-padding, and FFT. Inserts current window shape and current STFT spectrum into AC space.
| wave2spec_t::wave2spec_t | ( | unsigned int | nfft, |
| unsigned int | nwnd_, | ||
| unsigned int | nwndshift_, | ||
| unsigned int | nch, | ||
| mha_real_t | wndpos, | ||
| const MHAWindow::base_t & | window, | ||
| MHA_AC::algo_comm_t & | ac, | ||
| std::string | algo | ||
| ) |
Constructor computes window and zeropadding, allocates storage and FFT plan.
| nfft | FFT length |
| nwnd_ | window length in samples |
| nwndshift_ | window shift (hop size) in samples |
| nch | number of audio channels |
| wndpos | for cases nfft > nwnd_, where to place the window inside the FFT buffer: 0 = at start, 1 = at end, 0.5 = centered. Position is rounded to full samples and determines zero-padding |
| window | Analysis window shape |
| ac | algorithm communication storage accessor |
| algo | configured name of this plugin, used to name the AC variables published by wave2spec |
| wave2spec_t::~wave2spec_t | ( | ) |
Destructor removes AC variables from AC space and deallocates memory.
| void wave2spec_t::publish_ac_variables | ( | ) |
Insert two AC variables into AC space:
| mha_spec_t * wave2spec_t::process | ( | mha_wave_t * | wave_in | ) |
Perform signal shift, windowing, zero-padding and FFT.
| wave_in | latest block of audio signal (hop size samples per channel) |
|
inline |
Getter method to read zeropadding computed for the STFT configuration parameters.
Result is only valid after prepare() has been called.
| after | When false, return length of zeropadding before the analysis window. When true, return length of zeropadding in samples after the analysis window. |
|
private |
Applies analysis window weights to current input signal and writes windowed signal to correct place in FFT buffer.
Ensures zero-padding regions contain only zeros. To be invoked before applying FFT.
| [out] | dest | waveform buffer with FFT length audio samples, completely overwritten by this method |
| [in] | src | waveform buffer with window length audio samples, these samples are written to dest after window shape has been applied to the individual samples. |
|
private |
window length
|
private |
window shift or hop size
|
private |
FFT instance used for transformation.
|
private |
length of zero padding before window
|
private |
length of zero padding after window
|
private |
Analysis window.
|
private |
waveform buffer with FFT length samples per channel
|
private |
waveform buffer with window length samples per channel
|
private |
spectrum buffer containing only the positive frequency bins
|
private |
name of window shape AC variable