oldexamplecode
Dependencies: mbed
LookupTables.cpp
- Committer:
- rik
- Date:
- 2017-03-24
- Revision:
- 0:6863633bf8a4
File content as of revision 0:6863633bf8a4:
#include "LookupTables.h" ////////////////// COSINE SINE LOOKUP TABLES // Returns the cosine value using the lut of a given value float lut_cos(float value){ // Cosine is symmetric so convert to absolute if (value < 0) value = -value; // and subtract the "offset" //float actualvalue = (float)(value % (2*M_PI)); while (value >= 2 * (float)M_PI){ value -= 2 * (float)M_PI; } // Calculate the value to a discrete value (1024*0.00613592 = 2 pi) int discreteValue = (int)(value / 0.00613592); return cosLookupTable_f[discreteValue]; } // Returns the sine value using the lut for a given value float lut_sin(float value){ // Convert to cosine value -= 0.5*(float)M_PI; // Cosine is symmetric so convert to absolute if (value < 0) value = -value; // subtract the "offset" of the original 0-2pi //float actualvalue = (float)(value % (float)(2 * M_PI)); while (value >= (2 * (float)M_PI)){ value -= (2 * (float)M_PI); } // Calculate the value to a discrete value (1024*0.00613592 = 2 pi) int discreteValue = (int)(value / 0.00613592); return cosLookupTable_f[discreteValue]; } // Returns the cosine value using the lut of a given value // WARNING, FAST VERSION ONLY WORKS WITH VALUES 0 - 2 PI float lut_cos_f(float value){ // Calculate the value to a discrete value (1024*0.00613592 = 2 pi) int discreteValue = (int)(value / 0.00613592); return cosLookupTable_f[discreteValue]; } ////////////////// END COSINE SINE LOOKUP TABLES ////////////////// HANNING LOOKUP TABLE // Applies the hanning LUT to the supplied array of data void applyHanningTable(float* data, int datasize){ if (datasize == 1024){ // Only works for 10 bit data arrays for (int i = 0; i < 1024; i++){ data[i] *= hanningTable_f[i]; } } } ////////////////// END HANNING LOOKUP TABLE