Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在开发一个软件来输入一个单调的 .wav 剪辑(钢琴)并显示在该剪辑中播放的钢琴音符。我正在使用 FFT 来计算频率,但它们给了我一些值,比如22360 Hz我想要绕过的地方260 to 600 Hz。
22360 Hz
260 to 600 Hz
有人可以帮我吗?
钢琴会发出许多强大的高次谐波或泛音,因此 FFT应该在许多高频区间中显示幅度。也许您应该使用音高检测或估计算法而不仅仅是 FFT?
Hotpaw2 对泛音内容提出了重要的一点。
但是,您需要的另一件事是窗口函数,以防止采样间隔的频域伪影污染您的结果。在 FFT 之前应用于数据的窗口函数基本上可以平滑地淡入和淡出信号以避免这种情况。
我认为你的问题是你没有足够的样本,所以频率分辨率很差。您需要做的就是拥有更多样本或仅填充零。见这里和这里。这可能会有所帮助。