为什么我的电脑没有检测到正确的声音频率?
Why my PC isn't detecting the right sound frequency?
我正在使用 c++ 在 Linux 上开发一个实时声谱分析器应用程序,我正在使用 FFT 来计算幅度。该应用程序从连接到 PC 的简单廉价麦克风获取声音。
我尝试通过简单地在扬声器上播放生成的声音来使用在线声音生成器测试该应用程序,我注意到它总是显示所播放声音频率的一半。例如。如果我生成 440Hz 的声音,它会将其检测为 ~220Hz。
起初我以为我只是做了一些错误的计算,但后来我尝试用其他可以测量频率的应用程序(例如 gtkguitune)进行测试。我注意到了同样的事情!即使是这些应用程序也始终只会显示扬声器上实际产生的声音的一半赫兹。
有人能解释为什么会这样吗?
听起来像是解释为单声道的立体声样本。
我正在使用 c++ 在 Linux 上开发一个实时声谱分析器应用程序,我正在使用 FFT 来计算幅度。该应用程序从连接到 PC 的简单廉价麦克风获取声音。
我尝试通过简单地在扬声器上播放生成的声音来使用在线声音生成器测试该应用程序,我注意到它总是显示所播放声音频率的一半。例如。如果我生成 440Hz 的声音,它会将其检测为 ~220Hz。
起初我以为我只是做了一些错误的计算,但后来我尝试用其他可以测量频率的应用程序(例如 gtkguitune)进行测试。我注意到了同样的事情!即使是这些应用程序也始终只会显示扬声器上实际产生的声音的一半赫兹。
有人能解释为什么会这样吗?
听起来像是解释为单声道的立体声样本。