音乐与数学·弦外之音
本课程由王杰教授主讲。
一维振动方程
我们知道,太阳光是由不同颜色的光复合而成,不同的光有不同的频率。同样,乐音耶可以分解。一个乐器发出的声音也不是单一音高的,而是包含了不同音高的声音,这些声音构成了乐器独特的音色。即便不同的乐器演奏同一个音高的音,我们也可以根据音色区分它们。
乐器视发声方式的不同可以分为气鸣乐器、弦鸣乐器、电鸣乐器、体鸣乐器和膜鸣乐器。其中,弦鸣乐器是通过弦的振动发声的。给定一条均匀的细弦,它包含三个参数:长度L,受到的张力F以及单位长度质量线密度 \rho 。通过小量法可以分析得到,均匀细弦上的位移函数 u(x,t) 满足一维振动方程: \frac{\partial^2 u}{\partial t^2} = c^2 \frac{\partial^2 u}{\partial x^2} \ , \ c=\sqrt{\frac{T}{\rho}} \\另外,由于弦的两端是固定的,所以方程(1)还需要满足边界条件 u(0,t)=u(L,t)=0, \forall t>0 。通过分离变量法,可以得到上述方程满足上述边界条件的完整解 u(x,t) ,这是一个无穷级数: u(x,t)=\sum_{n=1}^{\infty} u_n(x,t)=\sum_{n=1}^{\infty} \left(a_n \cos \frac{n\pi c}{L}t+ b_n \sin \frac{n\pi c}{L}t \right)sin \frac{n\pi}{L}x \\记 \omega_n=\frac{n\pi c}{L},\theta_n=\arctan \frac{a_n}{b_n} ,那么用辅助角公式可知u_n(x,t)=\sqrt{a_n^2+b_n^2}\sin(\omega_nt+\theta_n)\sin\frac{n\pi}{L}x \\ (对于考试来说,这部分理论推导只需要弄清楚 c,t,\rho 之间的关系就好啦,不过喵喵还是将整个推导过程放在这里来帮助一些好奇猫猫们继续探索喵!)
振动模态与泛音(结论很重要喵)
通过上面的推导可以发现,弦的振动并非单一频率运动,而是无穷多个正弦振动的叠加。我们将 u_n(x,t) 称为弦振动的第 n 个振动模态。对于 n ,取定弦中间的某一个点 x_0(0<x_0<L) ,我们可以得到该点的振动函数 u_n(x_0,t) : u_n(x_0,t)=\sqrt{a_n^2+b_n^2}\sin \left(\frac{n\pi}{L}x_0\right)\sin(\omega_nt+\theta_n) \\可见,弦上的这个点依照正弦规律运动,振幅为 \sqrt{a_n^2+b_n^2}\sin \left(\frac{n\pi}{L}x_0\right) \\ 频率为 f_n=T^{-1}=\frac{\omega_n}{2\pi}=\frac{nc}{2L}=\frac{n}{2L}\sqrt{\frac{T}{\rho}} \\这就是Mersenne定律。弦的振动频率组成的序列 f_1,f_2,\cdots 称为弦的固有频率, f_1 称为基频,相应的声音称为基音。 f_2,f_3,\cdots 对应的声音统称为泛音, f_2 称为第一泛音, f_3 称为第二泛音,以此类推。结合上面的公式,不难发现,泛音的频率是基音频率的整数倍。我们记 f=f_1 为基频,那么固有频率序列f,2f,3f,\cdots, \\称为泛音列。
对于第 n 个振动模态,如果令 sin\left(\frac{n\pi}{L}x\right)=0 ,得到x=\frac{kL}{n},k=0,1,2,\cdots,n \\这些点处的振幅等于0,称为波节。令 \sin\left(\frac{n\pi}{L}x\right)=1 ,得到x=\frac{kL}{2n},k=1,3,5,\cdots,2n-1 \\这些点处的振幅最大,称为波腹。
赫尔姆霍兹发现,一个音列与泛音列的重合度越高,那么这个音听起来就越和谐。例如八度音程为 2f,4f,6f,\cdots,24f \\有一半的音与泛音列重合,因此听起来就非常和谐。而大二度音程如下: \frac{9}{8}f,\frac{9}{4}f,\frac{27}{8}f,\cdots,\frac{27}{2}f \\它没有任何一个音与泛音列重合,因此听起来就不和谐。
古时候我们也将泛音列喻为天地自然之节,根据泛音列确定了古琴的徽位。自然小号,也称为巴洛克小号,也是依照泛音列制作的。号管上面没有开孔,也没有按键活塞,只能发出基频的自然泛音。它的基音是 C_2 ,第一泛音为 C_3 ,第二泛音的频率为 3f ,按照纯五度频率比为 3:2 ,因此第二泛音为 G_5 ,依此类推。
呼麦,又称为喉音唱法。演唱者利用口腔的不同部位进行气息控制,突触某些泛音,产生同时唱出两个声部的效果。
拨弦与傅里叶级数(记住最后的结论就好了喵)
之前的方程中,我们还有 a_n 和 b_n 两组系数需要确定。这就需要我们使用边界条件,即弦的初始形状和初始速度。我们考虑拨弦这个特殊情况。给定 x_0\in(0,L) ,假定将弦上的点 x_0 拉倒距离原来位置 h 的地方,此时弦的形状 \phi(x) 函数是一个折线函数。在之前得到的结论中代入 t=0 得到: u(x,0)=\phi(x)=\sum_{n=1}^{\infty} a_n\sin\frac{n\pi}{L}x \\此时就需要用到傅里叶级数对 \phi(x) 进行展开。
一般来说,满足一定条件的周期函数$f(x)$可以表示成正弦函数 \sin 和余弦函数 \cos 的无穷级数: f(x)=\frac{\alpha_0}{2}+\sum_{n=1}^{\infty} \left(\alpha_n\cos nx+\beta_n\sin nx\right) \\这个级数就被称为傅里叶级数,常数 \alpha_n,\beta_n 称为 f(x) 的傅里叶系数。首先我们需要将函数 \phi(x) 延拓为周期函数。我们可以先将 \phi(x) 延拓成一个奇函数,然后再按照 2L 为周期延拓到整个实数轴。如下图所示:
由于它是一个奇函数,因此 \alpha_n=0 ,我们可以将它的傅里叶级数写成: \phi(x)=\sum_{n=1}^{\infty} \beta_n\sin\frac{n\pi}{L}x \\根据傅里叶级数理论,傅里叶系数可以由下式求得: \beta_n=\frac{1}{L}\int_{-L}^L \phi(x)\sin\frac{n\pi}{L}x\,dx \ , \ n=1,2,3,\cdots \\这样我们就确定了 a_n 的值。又由于在拨弦的手指放开时可以假定弦是静止的,即初速度为 0 ,计算导数可以推出 b_n=0 。这样,我们就可以得到完整的弦振动的方程。
考虑下面这种情况:给定长为 L ,两端固定的弦,在其中点 \frac{L}{2} 处拨动,弦上各处的初速度均为 0 ,可以推导出弦所产生的振动: u(x,t)=\sum_{n=1}^{\infty}(-1)^k\frac{8}{(2k+1)^2\pi^2}\cos\left(\frac{(2k+1)\pi c}{L}t\right)\sin\left(\frac{(2k+1)\pi}{L}x\right) \\注意到,这个时候并非所有振动模态都会出现,只有对应于奇数的频率 f_1,f_3,f_5,\cdots 才出现。这是因为弦的振动关于 \frac{L}{2} 对称,而当 n 为偶数是,相应的波形关于 \frac{L}{2} 中心对称,因此是不可能出现的。
吉他上的品就是与泛音列息息相关的。(其实喵喵好像也没有看到这部分内容考过诶……可能是因为喵喵见识短浅吧,总是背了结论肯定不会错啦!)
空穴来风——管乐器(这部分还是有可能会考到的哦)
木管五重奏通常由长笛、双簧管、单簧管、大管和圆号组成。管乐器的振动主体是管内的空气柱。与弦振动不同,弦的两端是严格固定的,而振动空气柱会超出管的端口,因此需要对其频率进行端口矫正。
声音是纵波,空气柱振动时沿管子的轴向方向会形成疏密相间的波动。不考虑管口矫正的情况下,管子的开口处空气柱可以自由移动,振动幅度最大,形成波腹;封闭端空气柱无法纵向振动,形成波节。假设声音的速度为 v ,频率为 f ,波长为 \lambda ,那么就有f=\frac{v}{\lambda} \\对开管,即两边都不封闭的管乐器而言,记 n 表示波节的个数,不难发现管长和声音波长之间的关系为: \lambda_n=\frac{2L}{n} \ , \ n=1,2,3,\cdots\Rightarrow f_n=\frac{v}{\lambda_n}=\frac{nv}{2L} \ , \ n=1,2,3,\cdots \\ 记 f=f_1=\frac{v}{2L} 为基频,那么开管的泛音列为f,2f,3f,4f,\cdots
对于闭管而言,它相较于开管少了 \frac{1}{4} 波长,因此管长于声音波长之间的关系为\lambda_n=\frac{4L}{2n-1} \ , \ n=1,2,3,\cdots\Rightarrow f_n=\frac{v}{\lambda_n}=\frac{(2n-1)v}{4L} \ , \ n=1,2,3,\cdots \\ 记 f=f_1=\frac{v}{4L} 为基频,那么闭管的泛音列为f,3f,5f,7f,\cdots 即闭管只有偶次泛音。
长笛是一种开管,假设有效管长 L=0.66m ,声速 v=340m/s ,那么长笛的基频为f_1=\frac{v}{2L}=\frac{340}{2\times 0.66}\approx 258Hz \\最低音为 C_4 ,即中央 C 。而单簧管是一种闭管,相同管长下,它的基频为 f_1\approx 129Hz ,最低音为 D_3 (记谱的时候记为 E_3 ,属于一种移调乐器)。不难想象,在长笛的泛音列中,第二个音的频率为 2f ,因此超吹产生的音是高八度的音;而单簧管的泛音列中,第二个音的频率为 3f ,因此超吹产生的音是高一个十二度的音。
思考题(喵喵自己瞎写的答案啦,仅作参考喵~)
- 乐音和噪声的本质区别是什么?
发出乐音的声源的振动是规则的,而发出噪音的声源的振动是不规则的。乐音是由一系列频率整数倍关系的正弦波叠加而成的,而噪音则是由频率分布较为均匀的波叠加而成的。 - 为什么单簧管只能发出偶次泛音,而自然小号可以发出所有的泛音?
想必是因为单簧管是一种闭管而自然小号是一种开管啦~