マイクから受け取った特定の値から移動平均を取得する方法を見つけようとしています。frequencyChangedWithValue
測定メソッドを呼び出す関数があります。これは、1 秒間に 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 );
}
}