ERIS CORE

◆ read() [3/4]

float erisAudioAnalyzeFFT1024::read ( unsigned int  binFirst,
unsigned int  binLast,
FFTReadRange *  fftRR = NULL 
)
inline

Definition at line 167 of file eris_analyze_fft1024.h.

167  {
168  float32_t maxf = 0;
169  float32_t powerf = 0;
170  uint32_t peak_index;
171  uint32_t span;
172 
173  span = binLast - binFirst;
174  if(span<1) return 0.0;
175 
176  if (binFirst > binLast) {
177  unsigned int tmp = binLast;
178  binLast = binFirst;
179  binFirst = tmp;
180  }
181  if(fftRR){
182  fftRR->peakBin = 0;
183  fftRR->peakFrequency = 0;
184  fftRR->peakValue = 0;
185  }
186  if (binFirst > 510) return 0.0;
187  if (binLast > 511) binLast = 511;
188  arm_power_f32((float32_t*)&output[binFirst], span, &powerf);
189  arm_max_f32((float32_t*)&output[binFirst], span, &maxf, &peak_index);
190  if(fftRR){
191  arm_sqrt_f32((powerf)/(32768.0/subsample_by),&fftRR->peakValue);
192  fftRR->peakBin = peak_index + binFirst;
193  if(fftRR->phase < phase[fftRR->peakBin]){
194  fftRR->phase = phase[fftRR->peakBin];
195  }else fftRR->phase = phase[fftRR->peakBin];
196  }
197  return maxf;
198  }
float phase

References phase, and subsample_by.