let ctx = new AudioContext(),
analyser = ctx.createAnalyser(),
oscillator = ctx.createOscillator(),
data = new Float32Array(analyser.frequencyBinCount);
oscillator.connect(analyser);
oscillator.start();
setTimeout(()=>{
analyser.getFloatFrequencyData(data);
console.log(oscillator.frequency, data);
}, 1000);
振荡器默认会产生440 it的正弦波(oscillator.frequency详细信息),但分析仪不会将其检测为主波。在我的例子中,大约440 my的值是-200db,但大约220 my的值是-180db,声音更大。
如何用分析仪检测主频?在我的例子中,我首先使用了麦克风,但振荡器不工作。FFT有什么问题?
发布于 2018-05-18 16:55:53
仓号不是频率。您需要检查编号为2 * bin count * frequency / sampling rate的bin,其中bin count = fft size / 2
@Raymond玩具,谢谢
https://stackoverflow.com/questions/50399281
复制相似问题