音频应用   音频插件联盟,正版插件,欢迎大家选择!

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 16620|回复: 4

[踏板] 调音器的功能

[复制链接]

6914

积分

2

听众

60

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
6914
发表于 2008-4-23 | |阅读模式
音频应用公众号资讯免费发布推广
调音器的功能



调音器能够对输入的声音信号进行分析,找到输入声音的音调。在乐器调音中非常有用。



基本设计思路



调音器的原理并不复杂,对输入信号进行FFT变换,找到频谱中能量最大的频率,然后把频率转换成音调即可。



例如,若输入信号的取样频率为44100Hz,FFT的长度为1024,FFT变换之后能量最大的位置为100的话,那么输入信号的频率就是44100/1024*100=4307Hz。



频率转音调



一般把频率440Hz定为标准音A4。频率增加一倍,音阶增加一。因此880Hz为A5,而220Hz为A3。从A4到A5要经历如下12个音:



A4,A4#,B4,C5,C5#,D5,D5#,E5,F5,F5#,G5,G5#



这12个音的频率组成一个等比数列,因此可以求出每两个音之间的频率比是2^(1/12)= 1.0594630。所以A4#的频率为:440*1.0594630=466.164Hz。



为了提高调音器的精度,在每两个相邻的音之间再插入8个中间音,以A4,A4#为例,用如下形式表示:



A4,A4 +1,A4 +2,A4 +3,A4 +4,A4# -4,A4# -3,A4# -2,A4# -1, A4#



这样每个小刻度提高的频率倍数为:1.05946300^(1/9)= 1.006439。我们可以利用这个最小刻度比来计算出音调和频率的对应表。



若调音器程序能找出输入信号的频率,再通过这张表就可以查得相应的音调了。由于在每两个音调中插入了8个中间值,所以调音器可以很准确地显示出输入声音与标准音调之间的细微差别,以便于用户对乐器进行手工调整。



精度



假设调音器最低能识别A1,也就是55Hz,那么A1 +1的频率为1.006439*55=55.354Hz。由等比数列的性质,很容易知道A1 +1和A1之间的频率差0.354Hz是最小的频率差,因此所需的频率精度就是0.354Hz/2=0.18Hz。也就是说为了分辨我们设定的音调的最小单位,频率计算程序的精度必须达到0.18Hz。



FFT的最小分辨频率可以由下面的公式求得



最小分辨频率=取样频率/FFT长度



这就是说输入信号的取样频率为44100Hz时,若要最小分辨频率为0.18Hz的话,那么所需的FFT长度是44100/0.18=245000。而收集这245000个数据需要245000/44100=5.6秒。显然FFT的运算长度和数据收集时间都是不实际的。



下面介绍两个方法来解决这个问题。



降低取样频率



为了缩短FFT的运算长度,而保持最小分辨频率的精度,只能降低取样频率。假设我们固定FFT长度为4096,为了使精度达到0.18Hz,取样频率应为4096*0.18=737Hz。即对于44100Hz的输入数据,每60个数据取一个数据的话,就可以用4096的FFT长度来实现0.18Hz的精度。但香农定理告诉我们,取样频率必须大于输入信号最高频率的两倍,才能够从取样后的信号还原为原信号。如果取样频率是737Hz,那么输入的声音信号的最高频率就不能超过369Hz。而显然调音器的输入有可能超过这个频率。



解决这个问题的办法就是根据输入信号的频率,动态地决定取样频率。0.18Hz 的精度是按照最低音A1计算的。而当输入频率提高n倍时,所需的最小分辨频率也将增大n倍。例如,如果要区分A4和A4 +1的话,最小分辨频率就是0.18Hz*440/55=1.44Hz,那么设定取样频率为5898Hz即可,也就是每8个数据取一个(44100/8=5512Hz)。



为了能够动态地确定取样频率,可以先用原取样频率(44100Hz)对输入信号进行粗略地分析。这时的最小分辨频率为44100/4096=10.77Hz。粗略地找到了输入信号的频率之后,根据这个频率调低取样频率,再进行精确计算。



补零



通过动态地降低取样频率可以缩短FFT的运算长度,但不能解决数据收集时间过长的问题。虽然我们要进行4096点FFT运算,但这并不表明一定要收集4096个数据。如果只收集512个数据,其余的数据全部填0的话,那么数据收集时间就缩短为原来的1/8。而这并不会降低所得的频率的精度。(当收集的数据过少的时候,会出现误差。只要收集的数据中有足够多的信号周期,则不会出现频率误差)
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

6914

积分

2

听众

60

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
6914
 楼主| 发表于 2008-4-24 |
处理倍音

大多数乐器所发出的声音都包含有倍音,而且有时倍音的能量可能超过基础音,尤其是频率较低的时候。

处理倍音比较麻烦,大概步骤是

先找出所有的局部最大能量的频率,即局部峰值对应的频率,这些频率很可能是倍音频率。

找出其中成倍的频率,剔除一些不相干的噪音频率。

从一系列倍频推算出基础频率。

另外在确定取样频率的时候,需要考虑倍频的存在,所以取样频率不能仅靠最大能量的频率计算,而需要考虑最大的倍音的频率。这样才不会出现取样频率过低而导致频域重叠
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

104

积分

2

听众

-3

音贝

音频应用

Rank: 1

积分
104
发表于 2008-4-25 |
太好了,大才子.:victory:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

6609

积分

2

听众

-576

音贝

音频应用注册会员

Rank: 4Rank: 4

积分
6609
发表于 2008-4-27 |
很棒啊,支持一下:victory:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

1295

积分

2

听众

-76

音贝

音频应用新手发布

Rank: 3

积分
1295
发表于 2008-5-1 |
哈哈,好热闹,支持!!:victory: :victory:
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频招标|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表