C# 调谐器应用:如何找到频率?
您好 我目前正在为班级项目使用Silverlight/c#开发一个调谐器应用程序。我遇到的问题似乎有很多人问过,但没有得到真正的回答。我读了很多论坛,在谷歌上搜索了几个小时,但仍然不能真正掌握代码和数学。到目前为止,我得到的是: 麦克风=>音频输入=>音频样本写入内存流=>字节转换为双倍,然后转换为复数=>FFT(),后者返回复数数组 我读过关于FFT/DFT/自相关等的书。在我看来,FFT是我追求速度的方式。从本质上说,我正在将乐队/管弦乐队/等中使用的半音调谐器转变为在线应用程序,因此一切都需要实时完成。现在,我只想了解整个过程 问题:C# 调谐器应用:如何找到频率?,c#,silverlight-4.0,C#,Silverlight 4.0,您好 我目前正在为班级项目使用Silverlight/c#开发一个调谐器应用程序。我遇到的问题似乎有很多人问过,但没有得到真正的回答。我读了很多论坛,在谷歌上搜索了几个小时,但仍然不能真正掌握代码和数学。到目前为止,我得到的是: 麦克风=>音频输入=>音频样本写入内存流=>字节转换为双倍,然后转换为复数=>FFT(),后者返回复数数组 我读过关于FFT/DFT/自相关等的书。在我看来,FFT是我追求速度的方式。从本质上说,我正在将乐队/管弦乐队/等中使用的半音调谐器转变为在线应用程序,因此一切都
我感谢所有的帮助,这个项目已经证明比我最初研究的要复杂得多/ 干杯,谢谢 乔希什么都没有 2) FFT返回一个值数组。每个阵列成员都包含该频带中的信号强度 3) 首先,找到具有最强值的数组成员。要拨入精确的频率,您可能需要在最强桶周围的数组成员之间进行一些插值
编辑:找到。看起来这对你来说是个难题。“这个项目已经证明比我最初研究的要复杂得多”-一直如此。在你链接的代码中,我以前看过,但忍不住要问他的一些数学问题…当他计算光谱图时,他取复数平方的绝对值,他也用减法代替加法:(Re*Re-Im*Im)…幅度(光谱图)不是唯一的绝对值吗?(sqrt(Re*Re+Im*Im))