我现在想写校音器的程序。
具体地,就是对 吉他 古筝 这些管弦乐器进行校音:拨动一根空弦,用单片机来计算出这根弦振动的频率(基频),再显示出来是什么音(比如大字一组的c)
这个产品国内做的好像都不是很好,而我则是完全不知道该怎么算。如果你知道请告诉我,我去试试看能不能把这个产品做好
我的邮箱是 yctou163@163.com , 谢谢!
(我数学不好,不会用数学去分析)。
要计算乐器的频率,必须对其信号波形采样、分析并处理,才能计算
方案一、需要一个传感器,比如共振传感器等
方案二、通过拾音器将声音信号转换为 模拟电子信号,放大、滤波后再对其处理,才能计算周期(频率)。
硬件电路其实不难,已经实现了,只是软件上不知道怎么弄
不知道如何算
将频率于标准音节的频率进行比较,再显示出来。音节以及偏差
用傅利叶变换(FFT)把离散的值计算出其中的基频
然后和标准比较看相差多少
有标准的算法库可以参考,去网上找一下吧
另外,单片机算这个估计性能严重不足,这个在微机上都要算半天的,你的单片机估计算不过来
印象中类似的计算都是用DSP的
针对你的应用,你也许有更好的解决方法,比如设计滤波器针对每个音阶进行处理
这样你的单片机只需要检查滤波器是不是有输出,带宽内信号强度和总信号强度比较就知道音阶准不准了
ckc 说的很好
应该是这么做,只是我功力还太浅了,呵呵
我想知道这个东西怎么做
有谁知道请详细的告诉我,不胜感激
我的QQ是 84557613, 手机是134 2095 5289
今天早上查资料,在google上第一条查到了本贴,比较兴奋
FFT可以,也可以在MCU上实现。只是必需得对输入信号滤波,控制在1K范围,采样2K。
好的滤波芯片也有,样机已经做出来了。只是这样一来比市面
上的校音器成本高不少。虽然这样做是比较准的。