kopia lustrzana https://github.com/kosme/arduinoFFT
Skip the spike on bin 0 instead of deleting it
rodzic
04fbc35bda
commit
7059599c59
|
@ -142,10 +142,6 @@ void ArduinoFFT<T>::compute(T *vReal, T *vImag, uint_fast16_t samples,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The computation result at position 0 should be as close to 0 as possible.
|
|
||||||
// The DC offset on the signal produces a spike on position 0 that should be
|
|
||||||
// eliminated to avoid issues.
|
|
||||||
vReal[0] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> void ArduinoFFT<T>::dcRemoval(void) const {
|
template <typename T> void ArduinoFFT<T>::dcRemoval(void) const {
|
||||||
|
@ -427,7 +423,9 @@ template <typename T>
|
||||||
void ArduinoFFT<T>::findMaxY(T *vData, uint_fast16_t length, T *maxY,
|
void ArduinoFFT<T>::findMaxY(T *vData, uint_fast16_t length, T *maxY,
|
||||||
uint_fast16_t *index) const {
|
uint_fast16_t *index) const {
|
||||||
*maxY = 0;
|
*maxY = 0;
|
||||||
*index = 0;
|
// A signal with a DC offset produces a spike on bin 0 that should be ignored.
|
||||||
|
// Start the search on bin 1.
|
||||||
|
*index = 1;
|
||||||
// If sampling_frequency = 2 * max_frequency in signal,
|
// If sampling_frequency = 2 * max_frequency in signal,
|
||||||
// value would be stored at position samples/2
|
// value would be stored at position samples/2
|
||||||
for (uint_fast16_t i = 1; i < length; i++) {
|
for (uint_fast16_t i = 1; i < length; i++) {
|
||||||
|
|
Ładowanie…
Reference in New Issue