其他分享
首页 > 其他分享> > (数理方程)Matlab模拟琴弦振动发声并显示振动图像

(数理方程)Matlab模拟琴弦振动发声并显示振动图像

作者:互联网

1、 物理模型建立

由课题问题可转化为实际数理问题,即典型弦振动问题,一根均匀弦两端分别在x=0以及x=L处固定,设初始速度为零,初始时刻弦的形状为一抛物线,抛物线的顶点为(L/2,h),讨论其弦振动的具体问题。<注:初值设定方式不收限制,但是不能全为零,否则无运动,在此以此初值是便于进一步的公式推导>
(L为弦长)

2、相关原理推导

2.1弦振动方程推导

由第一节所得出的物理实际问题可列出下列方程:
在这里插入图片描述
分离变量法:
u(x,t)=T(t)X(x)
代入原方程得:
在这里插入图片描述
求解可得:在这里插入图片描述在这里插入图片描述

将初始条件:代入得 在这里插入图片描述
且Cn等于:在这里插入图片描述
因此:在这里插入图片描述
至此,我们公式原理推导完毕,得出了弦振动的函数表达式:在这里插入图片描述

2.2琴弦发音原理推导

经过多个文献的学习得出,小提琴声音是通过把琴弦的振动经过琴码传递到共鸣体,使得共鸣腔体产生共振,带动箱内外空气振动而产生的,而弦的振动则来源于琴弓与琴弦的相互作用。小提琴发声产生的振动大致分为弦的振动、琴码的振动和共鸣箱的振动三种,在此我们仅研究琴弦的振动,正是因此我们所仿真出来的发音效果会带来一定的偏差,请谅解。琴弦振动分为横振动、纵振动、扭转振动和倍频振动,根据课题要求与实际运算难度,在此我们只研究横振动。
横振动,将弦挑离其平衡位置再放掉,弦就开始做一个扁纱锭型的振动,它的振幅限制在两条明确的曲线之内。弦的横振动频率,可以用泰勒公式来表达,即
在这里插入图片描述 其中 a=√(F/ρ)
式中f为弦的振动频率,ρ、F、l,依次为弦的线密度、拉力和长度。且看出横振动频率与弦长成反比,与张力的平方根成正比,与弦线的密度的平方根成反比。

3、 相关参数的确立

有效琴弦长度L:《小提琴制作艺术》【英】克里斯.约翰逊,罗伊.考特诺尔著一书中讲到安装琴颈时琴颈站位与琴身站位比例为2比3,即F孔两个小缺口下口325毫米处。在此我们定弦长L=325mm=0.325m<注:此处我们选用的是4/4M尺寸的小提琴,即成人常用小提琴>
琴弦拉力F:由下表1可得H311型号E-Mi弦拉力为18.6磅。
在这里插入图片描述
表1琴弦参数
因此我们定为18.6磅= 8.436kg= 82.6728N
琴弦线密度:已知E-Mi钢弦的密度为7.8g/cm3=7800kg/m3,E弦直径为0.276mm则半径为0.138mm=0.000138m,由公式线密度=密度x琴弦的横截面积得,E弦的线密度是4.67x10^-4kg/m
至此,我们得到参数:L=0.325m,F=82.6728N,ρ线=4.67x10^-4kg/m

4、 运算检验与修正

首先判断基频,利用公式 将第三节的参数代入得
在这里插入图片描述
647Hz近似等于题干的标准基频660Hz,证明了我们数据的有效性与可靠性,在此我们做一下微小修正将拉力F从82.6728N改为86N可使基频调整至660Hz标准。
至此,修正后的参数为:L=0.325m,F=86N,ρ线=4.67x10^-4kg/m

5、Matlab仿真检验,习题解答

5.1 Matlab仿真琴弦发音

我们将利用matlab将振动函数与相关参数结合仿真出实际声音通过测量设备鉴别频率,过程如下见图5.1:
在这里插入图片描述
图5.1
测量结果如下见图5.2:
在这里插入图片描述
图5.2
因实际测量存在误差经多次测量去平均后得出matlab仿真发音频率确实为660Hz,在此需要关注图5.1代码31行与32行,由于2.2提到小提琴发声并不是单纯的琴弦振动所以仅仅模拟出琴弦函数声音偏差太大,在此我们用32行的典型振动函数并附上我们特定的参数仅用以进行发声判断,后期的图像处理我们仍将采用准确的弦振动方程得出的函数。
至此我们的理论阶段已基本完成可以进行更深度的探讨,下面开始习题的解答。

5.2 习题解答

习题1,当小提琴的发音为高八度A音(2x440Hz)时,弦长是多少?由题干可得多个变量要控制不变,仅仅允许弦长的变化,同时由公式
在这里插入图片描述
得当f从660Hz变化到880Hz时,弦长L要变为原来的3/4,即弦长从0.325m变为0.325mx0.75=0.24375m。我们进行仿真验证结果如下见图5.3:
图5.3
频率测定结果如下见图5.4:
在这里插入图片描述
图5.4
第一问完成。
习题2,音准受哪些因素影响,影响多大?
又前几节的发音函数可知,理论上讲音准受弦长、拉力与线密度影响。<实际上还要考虑我们在matlab中的抽样频率,即时间序列,但现实生活中不用>该问题要用到我们在学到的误差传递公式即可轻松得出,见下图5.5所示:
在这里插入图片描述
图5.5
因此,
∆f/f=∆L/L+1/2∙∆F/F+1/2∙∆ρ/ρ
第二题解决。
习题3,检验自己在发生多大的设计误差是能听得出来。
该题,我们认为无论你改变哪个量最后都影响的基频f因此,通过改变f的大小来多次试验判断音准的变化。经过三位组员500hz-700hz,700hz-900hz,900hz-1000hz且每次变化5Hz我们得出以下数据见表1。
判断音准 频率界值(Hz)
Do 500-575
Ra 575-640
Mi 640-685
Fa 685-750
So 750-850
La 850-950
Xi 950-1000
表一:音频辨别表
习题4,时间序列取值间隔应注意哪些问题,为什么?
首先,时间序列的起点与终点即振动发音的起点与终点,不难理解我们最好要讲起点设为0s以后均可,因为理想情况下无阻力一直在振动,但是终点理论上讲要比起点大1/20K秒即可,因为人耳可听频率为20Hz-20KHz,但是由于matalab软件仿真不完全等同于现实问题,因此,经试验时间长度必须大于等于0.002秒才可以听出不同声音。<我们推测这一数值和电脑硬件性能也有很大关系,因为这影响着matlab其内部的算力>
至于采样频率,它当然越高越好,因为离散点越密集越像连续图像真实性越高,当然那样运算量也越大,经测验5kHz的采样率仅能达到人们讲话的声音质量。11kHz的采样率是播放小段声音的最低标准,是CD音质的四分之一。22kHz采样率的声音可以达到CD音质的一半,目前大多数网站都选用这样的采样率。
44kHz的采样率是标准的CD音质,可以达到很好的听觉效果。由于电脑运算量强大,在此我们完全可以把采样频率设置为100kHz来仿真。

6、拓展与延伸

6.1 调弦、按指与迷之神奇的a
每一根琴弦的空弦都对应各自的振动频率(决定音是否准),所谓的调弦,即在演奏前调整弦的拉力松紧和扭转也就是改变变量拉力F,当然也可以更换材料即改变变量线密度ρ。
按指可以认为是控制声音的发声与停止,(其实并未停止),当按下琴弦时,拉力瞬间增大,设想如果拉力无穷大那么就不存在横振动了,所以在按下琴弦时声音变小,阻力增大,如果及时恢复,声音也可近似恢复,但是按压时间过长就已经停止振动了,有必要说一下,按指在小提琴演奏中是常见的一种指法可以发出美妙的颤音。
迷之神奇的a a=√(F/ρ)
通过单位的量纲可得a的单位为m/s即速度单位,且通过查找文献得出,a为振动的传播速度。
6.2 图像与动画
我们用2.1节所推导的函数放入相关参数进行matlab仿真效果图如下所示:
点击下方图标即可播放,如无法播放根目录附有gif文件。

波形图与强度对比图如下见图6.1图6.2:
在这里插入图片描述
图6.1
在这里插入图片描述
图6.2
最后附上一首matlab制作的一闪一闪亮晶晶以此结束。(点击图标打开播放)

7、代码

在这里插入图片描述在这里插入图片描述在这里插入图片描述

最后,如果有问题请在评论去留言我会及时回复!谢谢

标签:仿真,拉力,振动,Matlab,频率,琴弦,习题
来源: https://blog.csdn.net/weixin_43419816/article/details/106063588