FastLED 3.9.15
Loading...
Searching...
No Matches

◆ calculateDCOffset()

i32 fl::audio::SignalConditioner::calculateDCOffset ( span< const i16 > pcm,
const vector< bool > & validMask )
private

Calculate DC offset from valid samples only.

Parameters
pcmInput PCM samples
validMaskValidity mask from spike filtering
Returns
Estimated DC offset

Definition at line 112 of file signal_conditioner.cpp.hpp.

112 {
113 const size count = pcm.size();
114 i64 sum = 0;
115 size validCount = 0;
116
117 // Calculate average of valid samples only
118 for (size i = 0; i < count; ++i) {
119 if (validMask[i]) {
120 sum += pcm[i];
121 validCount++;
122 }
123 }
124
125 if (validCount == 0) {
126 // No valid samples - return zero offset
127 return 0;
128 }
129
130 // Calculate instantaneous DC offset for this buffer
131 const i32 instantDC = static_cast<i32>(sum / static_cast<i64>(validCount));
132 return instantDC;
133}
fl::i64 i64
Definition s16x16x4.h:222

References fl::span< T, Extent >::size().

Referenced by processSample().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: