高中生走读申请书:音 程 与 数 学 运 算

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 05:38:31
音 程 与 数 学 运 算 (刘利华/文)
作者:刘利华 www.shzls.com   如有转载请注明出处
音 程 与 数 学 运 算
笛友刘先生写的频率音分计算的文章,对做笛箫很有指导意义.相信大家看了都会有收获,在此我代表笛友们向刘先生致敬,并希望大家也能将自己的体会寄我,只要是有关笛箫的,内容形式不限.............周林生
音 程 与 数 学 运 算
刘利华 于厦门
多数的音乐爱好者对于音高与音程可能只有感性的认识,对于它们的绝对频率及频率之间的数学关系可能知之甚少,我今天就来谈谈这个问题,这是纯粹的数学运算,与笛子无关。
一、十二平均律小二度的比例系数
音的高低其实就是频率的高低,比如b1(小字一组的b调)比a1高,就是b1的频率比a1的频率高。那么这些音的频率大小之间在数学上有否规律呢?答案是肯定的。如果按照小二度的关系来排列这些音:
……,a1,bb1(=#a1),b1,c2,#c2,d2,#d2,e2,f2,……
按十二平均律,这些音的频率是等比的,(十二平均律之外的其它律制,虽不等比但也有固定的比值),相信大家对等比的概念比较清楚:
一串有序的数,后一个与前一个的比如果都相同,此这个序列就叫等比序列,这个比就叫公比。
举例:
1,3,9,27,81,243,……
就是一个等比数列,公比为3。
那么十二平均律中小二度的频率公比是多少?
我们知道,某音的高八度与它自身(举例:以唱名来讲如高音1与中音1;以音名如a2与a1,c3与c2)的频率之比为2,而从a1到a2,恰好经过了十二次的频率升高。
假设a1的频率为F,则a2的频率就是2F,设小二度频率公比为k,则有:
F*k^12=2*F
以上*为乘法,^为乘方,k^12即k的12次方,
从而k^12=2
因此k等于2开12次方,也就是k为2的十二分之一次方,k=2^(1/12)。
通过查表或用计算器可知此k=1.05946309435929……实际应用中取1.06或者1.05946都可。
易知,大二度的频率比就是以上k的二次方,或者2开六次方,即1.122462048。
通常我们以a1=440Hz(是否“中央标准音”?)作为参考,按以上公比我们可得到:
bb1=466.1638
b1=493.8833
c2=523.2511
d2=587.3295
e2=659.2551
……
以上各数作了舍入,在一般应用中我们可以取整,如认为b1=494Hz,e2=659Hz,但在频率比较低的时候,最好多加几位小数。
需要说明的是十二均律的“平均”是指指数的平均,指数均分为十二份就是1/12,而不是数学的除法平均,即以上音列的频率关系是等比而不是等差。
(等差数列举例:2,4,6,8,10,12,14,……)
为何取a1=440Hz?我认为是一种约定,另外还有取a1=442Hz的,二者相差不大,一般都可接受。有人发表长篇大论说442相对于440的好处,我觉得不可信,可能是作者心理作用吧。
二、音分的概念与计算
用小二度来讨论音程,是一种太粗略的方法,如果不用数学上的比例关系,还有没有更精确的公认的音程概念呢?有,那就是音分。
“音分”这个概念,相对“小二度”,使用的人更少,对于它的具体含义知道的人也就少了。
音分,也是对频率比例(音程)的一种描述方式,它的精度是“小二度”的百倍。
在小二度的两个音之间插入99个音,使他们的频率成等比关系,那么相邻两音的音程关系就是相差一音分。
小二度是100音分的关系,大二度是200音分的关系,八度是1200音分的关系。
假设这个比例是K2,那么按小二度:
K2^100=2^(1/12)=1.05946309435929
按八度:
K2^1200=2
都可算得K2为2开1200次方,即
K2=2^(1/1200)=1.00057778950655486 (作了舍入)
实际应用中小数位可不取这么多。
这里再次强调,音程的数学表现是比例关系而非加减关系,所以2音分差别不是1音分差别的两倍,而是用以上比例系数再乘一次。
三、两音音高差(按音分)的计算
我们知道了音分的概念,那么可否知道两音之间的差多少音分?如a1=440与a1=442,这二者相差多少音分呢?
用一个最笨的办法,就是用440乘以1.00057779,看要乘多少次可以达到442,以下列出各次运算得到的值(近似到小数点后四位):
440.2542
440.5086
440.7631
441.0178
441.2726
441.5276
441.7827
442.0379
我们看到,七次运算后结果比442低,八次则高,而八次运算后最接近,那么我们可知442Hz比440Hz约高八音分,但不到八音分。
有没有更好的方法算出更准确的音高差别呢?当然有。
上面从440起一次次地乘以1.00057779,算到442.0379,其实相当于一种指数运算,现在我们不乘,而要求出从440经几次这样的运算得到442.0379,这就是指数的反运算——对数运算。
举例说明:求2的3次方,这就是指数运算,结果是2^3=8;反过来,2的多少次方等于8?就要用到对数运算log(2,8)=3。
求音分数的运算方法为:
1、求出两个音的频率之比假定为R;
2、求以2为底的R的对数L(八度音程频率之比为2);
3、此对数乘以1200(因1200音分为八度音程),得到相差的音分数D。
现在我们再次按此法来求442Hz与440Hz的音程关系。
第一步:R=442/440=1.00454545454545(后面是“45”的循环)
第二步:求对数L=log(2,1.00454545455)=0.006542845866772
第三步:D=0.006542845866772*1200=7.851415
这样我们知道了442Hz比440Hz约高7.85音分。
再举例:已知在常温下气温每升高一度,空气中声音速度增加0.61米/秒,求常温下空气温度每升高一度,笛子频率升高几音分?
这里我用两个不同的空气中声音速度来计算,说明不同气温下升高的音分是不同的。
分析:笛子频率与管长成反比,与空气中的声音速度成正比,在这个升高一度的过程中,笛子管长可以近似为不变(其实是增长,会抑制其频率的增高),那么剩下的只有速度的变化,那么前后音高变化的比其实就是两次速度的比。
当空气中声音速度为334.4米/秒时,升高一度后速度变为335.01米/秒,按以上过程求解:
R=335.01/334.4=1.0018242
L=log(2,1.0018242)=0.002629313
D=0.002629313*1200=3.1552
空气中声音速度为340米/秒时:
R=340.61/340=1.00179411765
L=log(2,1.00179411765)=0.002586
D=0.002586*1200=3.1033
我们可以看出,在两种速度下,增加的音分数有细微差别,但这与大家听说的“气温每升高一摄氏度,笛子频率升高约三音分”的论点是一致的。
[思考]:某个气温下,空气中声音速度为334.4米/秒,气温升高10摄氏度,求笛子频率平均每摄氏度升高了多少音分?
提示:先求得总的升高多少音分,再求平均。
四、如何用“计算器”程序实现以上计算?
各位朋友看了我的演算可能会问如何我的运算保留那么多的有效位数,难道不怕后面的数字是不精确的吗?
我可以负责任地告诉大家,那些数字是精确的,因为我使用了计算机中的“计算器”程序,如果手边有常用对数表等,查到的结果不会有这么精确。
我来讲讲“计算器”程序的用法:
首先,从电脑的菜单打开计算器程序:
“开始”\“程序”\“附件”\“计算器”
您看到的“计算器”可能只是标准型,只有加、减、乘、除等常用运算,没有指数、对数运算,没关系,在“查看”菜单中选取“科学型”,就得到我们要的工作平台了。
请注意我们用的是十进制,在运算前先检查是否选择的是“十进制”。
这个计算器的对数运算有两种,一种是以e为底的自然对数,就是按钮中的第二行第四列的“ln”;另一个是以10为底的常用对数,就是第三行第四列的“log”,在“ln”下面。
举例说明对数的操作,我们知道100是10的2次方,我们如何在计算机上求得呢?我们先用鼠标点出100,然后再用鼠标点一下“log”按钮,2马上出来了。
细心的读者马上会问我一个问题:这计算器上的两个对数分别以10和e为底,而我们要求的是以2为底的对数呀?
在数学上有以下公式:
log(A,B)=log(C,B)/log(C,A)
即要求以A为底B的对数,我们引入第三个数C,分别对B及A取对数,相除即得结果。我们不要去证明,但可小做验证,观察以下等试是否成立?
log(3,81)=log(9,81)/log(9,3) …………4=2/0.5
log(4,16)=log(2,16)/log(2,4) …………2=4/2
显然是成立的。
那么我们就可以把以2为底的对数运算转到自然对数或常用对数的计算,如我们要求以2我底1.059463的对数,可以先求得以10为底1.059463的对数,再除以以10为底2的对数即可。
举例:在“计算器”上演示求442Hz与440Hz音高差的过程。
1、按照上面第三部分的方法,先求出频率比:
用鼠标点出442,点“/”按钮,再用鼠标点出440,然后点一下“=”按钮(注意“=”不要点两次或更多次,否则为连除440),比例就出来了,显示为1.0045454545454545454545455
2、现在要求它以2为底的对数,我们化为求以10为底的对数。
点“log”按钮(不要点多次),屏幕显示结果
0.0019695928629……
点“/”按钮,表示除以;
点“2”,点“log”;
这里对数运算优先于除法运算,因此没有加括号。
这时可以点一下“=”把这个对数log(2,1.00454545454545454545)算出来,也可不点;
3、乘以1200,得到音分
点“*”,这时看到了对数运算的结果
0.00654284586677……,事实上如果上一步中点了那个“=”,那么这个结果在上一步结束时就看到了。
点出数值1200;
点“=”号,得到7.851415040126……
至此一个完整求解过程结束,如果上述过程中“log”按钮都换成“ln”按钮,最后的结果也是一样的,科学的严谨性之一在于它能自圆其说,互相印证。
五、降低多少音分的计算
其实,降低多少音分的运算就可按升高多少音分的运算来求得,如要求440Hz是在442Hz的基础上降低了多少音分,因为如上例所知442Hz是在440Hz的基础上约升高了7.85音分,那么我就可以说440Hz是在442Hz的基础上降低了7.85音分。
如果非得要我不用升的方法来计算,那么我用下面的计算来再次说明科学的理论是“互相印证”的道理:
按以上三步曲,不过这次的第一步的除法倒过来,用440除以442
1、R=440/442 = 0.995475113……
2、L=log(2,0.995475113)=-0.00654284586677……
3、D=-0.00654284586677*1200=-7.851415
其实到第二步您就看出来了,它与上一个例子的数值绝对值是相同的,只是符号为负而已,那么到第三步也必然是两次绝对值一样,只是符号不一,结果约为负7.85,表示音高“降低”了约7.85音分。
最后,再次强调音程的关系是比例关系,而不是加减关系,如果有人说他能区分10Hz的频率差,您应当知道这人不懂什么(如果他说在哪个频率上能听到多少赫兹的差别,那又是另一回事),因为在100Hz时10Hz的差别接近于一个大二度,1000Hz时升高10Hz,约升高了17音分,而5000Hz升高到5010Hz,则升高了3.459音分,恭喜了,厉害,“金耳朵”!10000Hz时,升高1.73音分,可能吗?
思考:如果六孔笛的各音音高符合“三分损益”的原则,以第三孔做基准,其它各音孔的音高与符合“十二平均律”的笛子(哈哈,不可能有笛子完全符合十二平均律,符合的笛子就是“音高误差0音分”的笛子)相对应的音孔的音高各相差多少音分?(要回答此问题,首先要知道什么是“三分损益”,还是自己去查资料吧。)