Template Class for doing an FFT with absoulte values. More...
#include "rdm_time_series_fft.h"


Public Member Functions |
|
RDM_RETCODE | init (RDM_DB db) |
Initialize this object. More... |
|
![]() |
|
void | reset (void) |
Reset this object. More... |
|
RDM_RETCODE | flush_value (uint32_t threshold=1, RDM::DB::TRANSACTIONAL_T transactional=RDM::DB::NOT_TRANSACTIONAL) |
Flush this object. More... |
|
RDM_RETCODE | flush_stats (uint32_t threshold=1, RDM::DB::TRANSACTIONAL_T transactional=RDM::DB::NOT_TRANSACTIONAL) |
Flush this object. More... |
|
template<class SOURCE_VALUE_T > | |
RDM_RETCODE | put_value (SOURCE_VALUE_T *source_value, RDM::DB::TRANSACTIONAL_T transactional=RDM::DB::NOT_TRANSACTIONAL) |
Template method for receiving a data value. More... |
|
template<class SOURCE_STATS_T > | |
RDM_RETCODE | put_stats (SOURCE_STATS_T *source_stats, RDM::DB::TRANSACTIONAL_T transactional=RDM::DB::NOT_TRANSACTIONAL) |
Template method for receiving statistics. More... |
|
Additional Inherited Members |
|
![]() |
|
RDM_RETCODE | init (RDM_DB db) |
Initialize this object. More... |
|
fft_rdm () | |
~fft_rdm () | |
![]() |
|
uint32_t | init_tables_to_write_lock (RDM_TABLE_ID *tables) |
ID of the tables where rows are inserted. More... |
|
uint32_t | init_tables_to_read_lock (RDM_TABLE_ID *tables) |
IDs of the tables where rows are read. More... |
|
void | unput (void) |
Undo a previous put operation. More... |
|
void | unflush (void) |
Undo a previous flush operation. More... |
|
RDM_RETCODE | init (RDM_DB db) |
Initialize this object. More... |
|
![]() |
|
constexpr static int | number_of_tables_to_write_lock (void) |
Number of tables where rows are inserted. More... |
|
constexpr static int | number_of_tables_to_read_lock (void) |
Number of tables where rows are read. More... |
|
![]() |
|
RDM_FFT | fft_engine |
![]() |
|
INDATA_T | in_data [N] |
RANGE_T | aggregate_range |
uint32_t | n |
Detailed Description
template<uint32_t N, class RANGE_T, class INDATA_T, class NEXT>
class RDM::TIME_SERIES::fft_abs< N, RANGE_T, INDATA_T, NEXT >
Template Class for doing an FFT with absoulte values.
Template class for FFT of data values or statistics. What is received will be collected and used for doing FFT computations. The result of those computations will be forwarded to the next class in the chain.
Here the input is the real numbers for the signal to be analyzed and the output is real numbers that contain the absolute values of the FFT computation. The 0th element has the DC value. The 1st element to the (N/2)th element has the values for the positive frequencies with the value for the lowest frequency at 1 and the Nyquist frequency at N/2. The (N/2+1)th element to the Nth element has the values for the negative frequencies.
Upon destruction of this class, there might be incomplete aggregations that have not yet been passed to the next class in the chain. flush() cannot be used to force those incomplete aggregations to be sent to the next class as this class needs to have exactly N values before passing it on to the next class in the chain. The proper approach may be to restore the state of this class the next time this class is instantiated. See restore_aggregate for details.
- Template Parameters
-
N The number of data points for each FFT computation. In the case ranges are received, then N must fit its size. RANGE_T The aggregate FFT class for which objects will be passed to the next class. The size of this range should be N. INDATA_T The type of the data that is passed to this class. NEXT The class in the chain to receive the result of the FFT computations.
- Examples
- time_series_fft.cpp.
Member Function Documentation
init()
|
inline |
Initialize this object.
Call this method before sending it any data values, ranges, or statistics.
- Return values
-
sOKAY Normal, successful return. eINVARG Invalid argument. eDBNOTOPEN Database not open. eCURSORDB Cursor is associated with a different database. ePRECOMMITTED A precommitted transaction must be committed or rolled back before further operations on this database are allowed.
- Parameters
-
db [IN] Use this database for chained classes that need to insert rows
References RDM::TIME_SERIES::fft< N, RANGE_T, INDATA_T, NEXT >::aggregate_range, eINVARG, RDM_LEN, and sOKAY.
The documentation for this class was generated from the following file: