我在这里看到很多关于频率分析的帖子,似乎对我有很大帮助,但我试图记录我的声音并打印出频率,似乎这些值与记录的内容无关,试图提高我的音调和下来看看频率值会发生什么,但是您可以在发布的 logcat 中看到打印的频率有自己的意愿,可能是背景噪音的原因:)
这是我如何获得频率的代码:
fftArray = FFT.fft(fftTempArray);
MAX = 0;
int index= 0;
for (int i = 0; i < fftArray.length/2; i++) {
if (fftArray[i].magnitudes() > MAX) {
MAX = fftArray[i].magnitudes();
index = i;
}
double freq = index * sampleFreq / fftArray.length;
System.out.println(freq);
}
这是日志猫:
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:40.678: I/System.out(23397): 150.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 0.0
11-12 16:01:41.409: I/System.out(23397): 64.0
11-12 16:01:41.409: I/System.out(23397): 75.0
11-12 16:01:41.409: I/System.out(23397): 75.0
11-12 16:01:41.409: I/System.out(23397): 75.0
11-12 16:01:41.419: I/System.out(23397): 107.0
11-12 16:01:41.419: I/System.out(23397): 118.0
11-12 16:01:41.419: I/System.out(23397): 118.0
11-12 16:01:41.419: I/System.out(23397): 118.0
11-12 16:01:41.419: I/System.out(23397): 118.0
11-12 16:01:41.419: I/System.out(23397): 161.0
11-12 16:01:41.419: I/System.out(23397): 161.0
11-12 16:01:41.419: I/System.out(23397): 161.0
11-12 16:01:41.419: I/System.out(23397): 161.0
无论我做什么,它都保持在这个值范围内。
有人可以帮忙吗?当我向麦克风发出高音或不同类型的噪音时,频率怎么不会改变?