Я пытаюсь понять, как получить скользящее среднее из определенного значения, которое я получаю от своего микрофона. У меня есть функция frequencyChangedWithValue
, вызывающая мой метод измерения. Это означает, что я получаю изменение значения частоты до 10 раз в секунду. Теперь мне интересно, как сделать среднее число из всех этих меняющихся значений. Как это сделать?
Код
- (void)frequencyChangedWithValue:(float)newFrequency{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
self.currentFrequency = newFrequency;
[self performSelectorInBackground:@selector(filterFrequencyToGetBeats) withObject:nil];
[pool drain];
pool = nil;
}
- (void) filterFrequencyToGetBeats {
if (self.currentFrequency > 1000 && pointInTime % 2 == 0)
{
tm_start = mach_absolute_time();
pointInTime = pointInTime + 1;
}
else
if (self.currentFrequency > 1000 && pointInTime % 2 == 1)
{
pointInTime = pointInTime + 1;
tm_end = mach_absolute_time();
tm_elapsed = tm_end - tm_start;
mach_timebase_info(&info);
tm_nanoSeconds = tm_elapsed * info.numer / info.denom;
tm_milliSeconds = tm_nanoSeconds / (1000000);
tm_seconds = (tm_milliSeconds/1000);
fflush(stdout);
printf ( "| allocateAudio: %5lld milliseconds, (%12lld nano seconds)\n", tm_milliSeconds, tm_nanoSeconds );
}
}