《小提琴弦线设计分析》报告--MATlab实践

熟话说要站在巨人的肩膀上看世界,该篇建立的数学物理方程的定解问题是张同学提出的,感谢大佬的付出
该篇文章分阶段编写现在是未完成状态
2023-05-20
做完了,我负责的第一题和第三题
2023-04-24
好,总算把常识部分都给借鉴完了,困了,晚安( ̄o ̄) . z Z
2023-04-23
- 按照报告要求,确定任务要求,以及设计原理
一、任务要求
- 设计合理,结论正确
- 内容规范,过程清晰
- 格式规范
(⊙﹏⊙),等我查一下这个任务要求再补写这一部分!!!
二、设计原理
2.1 定解问题的提出
小提琴弦线设计分析问题可以转化为实际数理问题,即典型弦振动问题。由于主要研究小提琴弦线的E弦,因此问题可以描述为:一根分布均匀柔软的弦弦,两端分别在$x=0$以及$x=L$处固定,设初始时刻弦的形状为一抛物线,抛物线的顶点为$(L/2,h)$,讨论其弦振动的具体问题。<注:初值设定方式不收限制,但是不能全为零,否则无运动,在此以此初值是便于进一步的公式推导,L为弦长>
因此我们可得出定解问题如下:
2.2 求解定解问题
利用分离变量法对两端固定的一维弦振动问题进行求解。
基于两端固定长弦振动问题的结论:$u{(x,t)} = \sum{n=1}^{\infty}{(C_ncos(\frac{n \pi a}{L}t)+D_nsin(\frac{n \pi a}{L}t))sin(\frac{n\pi}{L}x)},n=1,2,3,\cdots$。
由正弦级数的正交性有:$Cn = \frac{2}{L}\int{0}^{L}{\frac{4h}{L^2}(L-x)xsin(\frac{n\pi}{L}x)}dx$,$Dn = \frac{2}{n\pi a}\int{0}^{L}{0}dx = 0$。
求导 | $Lx-x^2$ | $L-2x$ | $-2$ | $0$ |
---|---|---|---|---|
积分 | $sin(\frac{n\pi}{L}x)$ | $-\frac{L}{n\pi}cos(\frac{n\pi}{L}x)$ | $-(\frac{L}{n\pi})^2 sin(\frac{n\pi}{L}x)$ | $(\frac{L}{n\pi})^3 cos(\frac{n\pi}{L}x)$ |
$C_n = \frac{8h}{L^3}{-(Lx-x^2)\frac{L}{n\pi}cos(\frac{n\pi}{L}x)+(L-2x)[\frac{L^2}{n^2 {\pi} ^2}sin(\frac{n\pi}{L}x)] - 2\frac{L^3}{n^3 {\pi}^3}cos(\frac{n\pi}{L}x)}|^L_0 = \frac{8h}{L^3}[0+0-2\frac{L^3}{n^3 {\pi}^3}cos(n\pi) - (0+0-2\frac{L^3}{n^3 {\pi}^3})]$
综上所述:$C_n = \frac{16h[1-(-1)^n]}{n^3 {\pi}^3},n=0,1,2,3,\cdots$,$D_n = 0$
至此,定解问题的求解完毕,得出了弦振动的函数表达式:$u{(x,t)} = \frac{32h}{\pi^3}\sum{n=1}^{\infty}{\frac{1}{(2n+1)^3}cos(\frac{(2n+1)\pi at}{L})sin(\frac{(2n+1) \pi x}{L})},n=0,1,2,3,\cdots$
定解问题手推答案过程
1 | % 定义常数 |
2.3 琴弦发音原理推导
经过多个文献的学习得出,小提琴声音是通过把琴弦的振动经过琴码传递到共鸣体,使得共鸣腔体产生共振,带动箱内外空气振动而产生的,而弦的振动则来源于琴弓与琴弦的相互作用。小提琴发声产生的振动大致分为弦的振动、琴码的振动和共鸣箱的振动三种,在此我们仅研究琴弦的振动,正是因此我们所仿真出来的发音效果会带来一定的偏差。琴弦振动分为横振动、纵振动、扭转振动和倍频振动,根据课题要求与实际运算难度,在此我们只研究横振动。
横振动,将弦挑离其平衡位置再放掉,弦就开始做一个扁纱锭型的振动,它的振幅限制在两条明确的曲线之内。弦的横振动频率,可以用泰勒公式来表达$f=\frac{1}{2L}\sqrt{\frac{F}{\rho} }$,其中$\sqrt{\frac{F}{\rho} } = 0$,式中$f$为弦的振动频率,$\rho、F、L$依次为弦的线密度、拉力和长度。且看出横向振动频率与弦长成反比,与张力的平方根成正比,与弦线的密度的平方根成反比。通俗的来讲,拉弦或拨弦可发出声音。琴身内部的空气藉此产生振动而发声,称为共鸣。四条琴弦自小提琴的底部延伸,跨过琴马,至指板尾端以弦轸固定。调音方法是扭动弦轸以调整琴弦的松紧。琴音的高低决定于琴弦的大小、粗细及张力。愈短、愈细、愈紧的琴弦,所产生的音愈高。
2.4 相关参数的确定
有效琴弦长度L:《小提琴制作艺术》【英】克里斯.约翰逊,罗伊.考特诺尔著一书中讲到安装琴颈时琴颈站位与琴身站位比例为2比3,即F孔两个小缺口下口325毫米处。在此我们定弦长L=325mm=0.325m<注:此处我们选用的是4/4M尺寸的小提琴,即成人常用小提琴>
琴弦拉力F:由下表可得H311型号E-Mi弦拉力为18.6磅。
型号 | 1/16M | 1/8M | 1/4M | 1/2M | 3/4M | 4/4L | 4/4M | 4/4H | |
---|---|---|---|---|---|---|---|---|---|
有效弦长 | 毫米 | 216 | 241 | 265 | 290 | 310 | 328 | 328 | 328 |
英寸 | 8 1/2 | 9 1/2 | 10 1/2 | 11 1/2 | 12 1/4 | 13 | 13 | 13 |
H311 | E-Mi钢弦 | 10.4 | 13 | 13.3 | 16 | 16.5 | 16.8 | 18.6 | 20.4 |
---|---|---|---|---|---|---|---|---|---|
H311W | E-Mi钢弦缠铝 | 16.3 | 18.1 | 19.9 | |||||
H313 | A-La多股钢弦缠铝 | 8 | 9.3 | 10.2 | 11.4 | 12.2 | 11.7 | 12.7 | 13.6 |
H312T | A-La多股钢弦缠钛 | 12.2 | 13.5 | ||||||
H313 | D-Re多股钢弦缠钛 | 7.5 | 8.3 | 9.7 | 10.3 | 11.3 | 9.2 | 11.5 | 12.2 |
H314 | G-Sol 多股钢弦缠钨银 | 9.2 | 10.2 | 11.4 | |||||
H314分数琴 | G-Sol 多股钢弦缠钨镍 | 7 | 7.8 | 8.9 | 10 | 10.3 | |||
H315 | G-Do 多股钢弦缠钨银 | 11.1 | 12.4 |
因此H311型号E-Mi弦拉力为$18.6磅=8.436kg=82.6728N$。
琴弦线密度:已知E-Mi钢弦的密度为$7.8g/cm^3=7800kg/m^3$,E弦直径为0.276mm则半径为$0.138mm=0.000138m$,由公式线密度=密度x琴弦的横截面积得,E弦的线密度是$4.67\times 10^{-4}kg/m$
至此,我们得到参数:$L=0.325m,F=82.6728N,ρ_线=4.67\times 10^{-4kg}/m$
2.5 小提琴E弦的空弦频谱的音频
要输出小提请E弦的空弦频谱的音频,需要进行一下步骤:
- 定义时间和时间步长,以便生成频谱
- 生成空白的频谱数据矩阵,大小为采样率乘以时长
- 生成E弦的频谱数据,将其添加到音频数据矩阵中
- 可以使用
soundsc()
函数将频谱数据播放,并将其保存为wav
文件
1 | clc;clear; |
下面讨论时间步长的选取依据
2.6 时间步长的选取依据
我们要讨论时间步长的选取依据,主要是通过观察瀑布图查看频谱随时间的变化情况,以此确定时间步长。通常我们用以下步骤分析时间步长的选取依据。
根据采样率和E弦空弦音频的频率分布确定一个初始时间步长。
计算出音频信号的频谱,并将频谱转换为
dB
(分贝)单位。- 绘制出频谱随时间的变化曲线(即瀑布图),其中时间步长为横轴,频率为纵轴。颜色表示该时间步长下该信号频率的强度。
- 通过观察频谱随时间的变化曲线,根据曲线的变化趋势和频率分布,逐步调整时间步长。重复步骤二和步骤三,直到确定一个好的时间步长。
1 | clc;clear; |
以上,我们在观察时发现极难选取正确的时间步长。但是合适的步长应该满足采样率要求,即时间步长不应该过大也不应该过大或过小,否则会因为过采样或欠采样导致频谱信息失真(上述的代码输出很明显过采样了,都挤在了一起)。
- 根据
奈奎斯特采样定理
,步长应该小于信号最高频率的2倍的倒数,即$dt < \frac {1}{2fc}$。那么在小提琴的情况下,最高频率约为1318Hz。因此可选取步长为$dt = \frac {1}{2659.2551138hz} = 0.0007584317$秒 。 - 时间步长应该满足分析需求,即时间步长应该足够小,使频谱图显示出所需的详细信息。
综上所述,选取步长为0.0007584317是相对合适的选择。
下面使用Matlab模拟奈奎斯特定理,对2.6节的输出音频进行分析:
1 | clc; clear; |
可以看到这和理论值相差不多,还不错。
2.7 讨论弦拉力影响琴弦的音频频谱
在基于约束边界讨论弦拉力是如何影响琴弦的音频频谱时,我们可以将该问题拆解成两个基本问题:
- 讨论约束边界对小提琴弦拉力的影响。
- 讨论弦拉力是如何影响琴弦的音频频谱的。
琴弦的弦拉力可以用如下公式计算:$F = (π d^2 T) / 4L$。其中,F表示琴弦的弦拉力,d表示琴弦的直径,T表示琴弦的张力,L表示琴弦的长度。
根据胡克定律,琴弦的张力可以表示为:$T = (π^2kd^2 f^2) / L^2$。其中,k表示琴弦材料的杨氏模量,f表示琴弦的基波频率。将T代入F的公式中,可以得到:$F = (π^3 k d^4 f^2) / 4L^3$
然而,在实际情况下,约束边界会对琴弦的弦拉力大小产生影响。约束边界会限制琴弦的长度和振动形态,导致琴弦的弦拉力大小与未受约束时不同。考虑琴弦被放置在弦轴和尾块上时的约束边界情况。弦轴和尾块会对琴弦施加约束,导致琴弦的受力分布和振动形态发生变化,从而影响琴弦的弦拉力大小。根据受力平衡条件和振动方程,可以得到满足约束边界条件的琴弦弦拉力公式。然而,由于约束边界情况复杂,公式过于繁琐,难以进行简单推导。基于此,我们优先讨论弦拉力是如何影响琴弦的音频频谱的问题。
2.7.1 弦拉力影响琴弦的音频频谱
弦拉力会影响琴弦的音频频谱,主要表现为以下两方面:
- 频率变化:弦拉力越大,琴弦的自然频率就越高,产生的音频频率也就越高。这意味着琴弦音高会变高。相反,如果弦拉力减小,音高就会变低。
- 谐波加强:弦拉力对琴弦不同振动模式的谐波产生不同的影响。当弦拉力增加时,高阶谐波会加强,低阶谐波会减弱。这意味着琴弦的音质会更加明亮,富有谐波特性。相反,如果弦拉力减小,低阶谐波会加强,高阶谐波会减弱,产生的音质将更加柔和。
下面使用Matlab进行仿真
- 数值模拟准备
首先,我们需要对问题进行数值模拟。我们可以使用波动方程来模拟小提琴弦的振动。具体来说,我们可以根据以下波动方程来模拟弦的振动:$\frac{\partial^2 u}{\partial t^2}=c^2 \frac{\partial^2 u}{\partial x^2}$其中,$u(x,t)$是弦在位置$x$和时刻$t$的位移,$c$是波速。为了简化问题,我们假设弦密度为$\rho$,横截面积为$A$,则波速为$c=\sqrt{T/\rho A}$,其中$T$为弦张力。根据小提琴的实际参数,根据第2.2节相关参数的确定,我们假设小提琴e弦的密度为$4.67\times 10^{-4}$ g/cm,直径约为$0.276$ mm,故横截面积为$A=\pi (0.276/2)^2=0.0491$ mm$^2$,$L=0.325$m。在实验中,我们可以尝试不同的弦拉力$T$,以研究不同弦拉力下的音频频谱变化。
为了进行数值模拟,我们需要对弦进行离散化。我们可以将弦的长度$L$等分为$N$段,每段长度为$h=L/N$。我们将弦在每个节点上的位移$ui=u(x_i,t)$表示为一个向量$\boldsymbol{u}=(u_1,u_2,\cdots,u_N)$。类似地,我们将时间$t$离散化,时间步长为$\Delta t$,时间总长为$T$,则我们可以将弦在每个时间步长$t_n=n\Delta t$的位移表示为一个矩阵$\boldsymbol{U}=(\boldsymbol{u}^n){N\times M}$,其中$\boldsymbol{u}^n$表示弦在时间步长$tn$时各个节点的位移。我们可以使用有限差分法来求解弦的振动,具体来说,我们可以使用中心差分法来求解时间和空间上的导数:$\frac{\partial^2 u}{\partial t^2} \approx \frac{u_i^{n+1}-2u_i^n+u_i^{n-1}}{(\Delta t)^2}$,$\frac{\partial^2 u}{\partial x^2} \approx \frac{u{i+1}^{n}-2ui^n+u{i-1}^{n}}{h^2}$
将上式代入波动方程中,得到:$ui^{n+1}=2u_i^n-u_i^{n-1}+\frac{c^2 \Delta t^2}{h^2}(u{i+1}^n-2ui^n+u{i-1}^n)$其中,$i=1,\cdots,N$,$n=1,\cdots,M$,$M=T/\Delta t$。然后,我们可以根据弦的初始形状、两端的边界条件以及所选择的弦拉力来确定初始条件和边界条件。具体来说,我们可以假设弦的初始形状为一条抛物线,即:$u_i^0=h-\frac{4h}{L^2}(i-\frac{L}{2})^2$其中,$i=1,\cdots,N$。我们可以将弦两端的边界条件设为固定边界条件,即:$u_1^n=u_N^n=0$。最后,我们可以根据所选择的弦拉力$T$计算波速$c$,从而求解出弦在不同时间步长的位移$\boldsymbol{U}$。由于我们希望研究弦振动的频谱变化,因此我们需要对弦的位移进行傅里叶变换,以得到弦振动的频谱分布。具体来说,我们可以将弦的位移$u_i$看作是一个复数$u_i=x_i+jy_i$,其中$x_i$表示实部,$y_i$表示虚部。然后,我们可以对实部和虚部分别进行傅里叶变换,得到弦振动在频域中的频谱分布。最后,我们可以将频谱分布绘制成音频频谱图,以研究不同弦拉力下的音频频谱变化。
- MATLAB程序实现
以下为使用MATLAB实现上述数值模拟和分析的程序:
1 | clc;clear; |
得到不同拉力下小提琴e弦音频频谱的频谱图如下:
以上输出的频谱图,经分析得出如下结论:随着弦拉力的增加,频谱的高频部分变得更加明显,而低频部分则变得更加模糊。这是因为弦的振动模态随着拉力的变化而改变,导致不同频率的分量在频谱图中的贡献发生变化,且弦拉力越大,小提琴琴弦的音频频谱最高点呈向上增加的趋势,也就说明,弦拉力越大,琴弦的自然频率就越高,产生的音频频率也就越高。这意味着琴弦音高会变高。相反,如果弦拉力减小,音高就会变低。弦拉力对琴弦不同振动模式的谐波产生不同的影响。当弦拉力增加时,高阶谐波会加强,低阶谐波会减弱。这意味着琴弦的音质会更加明亮,富有谐波特性。相反,如果弦拉力减小,低阶谐波会加强,高阶谐波会减弱,产生的音质将更加柔和。
下面我们根据不同弦拉力生成相对应的小提琴e弦音频文件
1 | clc;clear; |
以上生成音频文件,可以明显听出不同弦拉力下,音频的声音差异,具体表现为:弦拉力越大,琴弦的自然频率就越高,产生的音频频率也就越高,琴弦音高会变高。当弦拉力增加时,琴弦的音质会更加明亮,富有谐波特性。相反,如果弦拉力减小,低阶谐波会加强,高阶谐波会减弱,产生的音质将更加柔和。
2.7.2 约束边界对小提琴弦拉力的影响
以上我们讨论了弦拉力对小提琴音频频谱的影响,我们现在基于约束边界讨论边界条件对弦拉力的影响。
我们可以通过解弦的振动方程来分析不同约束边界对弦拉力的影响。弦的振动方程为:$\frac{\partial^2 u}{\partial t^2} = v^2\frac{\partial^2 u}{\partial x^2}$,其中,$u(x,t)$表示弦的位移,$v$表示波速。
根据初值条件,我们可以得到弦的初始形状为:
弦的两端分别在$x=0$和$x=L$处固定,因此我们可以得到边界条件为:$u(0,t) = 0,\ u(L,t) = 0$或者$\frac{\partial u}{\partial x}(0,t) = 0,\ \frac{\partial u}{\partial x}(L,t) = 0$
根据边界条件,我们可以得到弦的特征方程为:$sin(kL) = 0$,其中,$k$为波数,满足$k=\frac{n\pi}{L}$,$n$为整数。
不同的约束边界对应了不同的特征方程,从而影响了弦的振动模式和拉力。下面我们分别分析不同约束边界对弦拉力的影响。
- 自由边界
自由边界表示弦两端不受限制,即边界条件为$u(0,t) = u(L,t) = 0$。此时,特征方程为:$sin(kL) = 0$,解得$k=\frac{n\pi}{L}$,对应的振动模式为:$u_n(x,t) = A_nsin(\frac{n\pi}{L}x)cos(\frac{n\pi}{L}vt)$
弦拉力可以表示为:$T = \mu\frac{\partial u}{\partial x}(0,t) = \mu\frac{\partial u}{\partial x}(L,t)$,其中,$\mu$为弦的线密度。根据弦的振动方程和振动模式,我们可以得到:$T_n = \frac{4\mu h}{n\pi}$
显然,自由边界下弦的拉力与振动模式的波数$n$成反比,即波数越大,拉力越小。这是因为在自由边界下,波的传播是任意方向的,不同波数的波可以互相干涉抵消。
- 固定边界
固定边界表示弦两端完全固定,即边界条件为$u(0,t) = u(L,t) = 0$和$\frac{\partial u}{\partial x}(0,t) = \frac{\partial u}{\partial x}(L,t) = 0$。此时,特征方程为:$cos(kL) = 0$
解得$k=\frac{(2n+1)\pi}{2L}$,对应的振动模式为:$u_n(x,t) = A_nsin(\frac{(2n+1)\pi}{2L}x)cos(\frac{(2n+1)\pi}{2L}vt)$,弦拉力可以表示为:$T = \mu\frac{\partial u}{\partial x}(0,t) = \mu\frac{\partial u}{\partial x}(L,t)$
根据弦的振动方程和振动模式,我们可以得到:$T_n = \frac{2\mu h}{L}$
显然,固定边界下弦的拉力与振动模式的波数$n$无关,即所有波数的波都有相同的拉力。这是因为固定边界将弦的振动限制在某些特定的模式下,不同波数的波不能互相干涉抵消。
- 半自由边界
半自由边界表示弦的一端固定,另一端自由,即边界条件为$u(0,t) = 0$和$\frac{\partial u}{\partial x}(L,t) = 0$。此时,特征方程为:$\tan(kL) = 0$
解得$k=\frac{n\pi}{L}$,对应的振动模式为:$u_n(x,t) = A_nsin(\frac{n\pi}{L}x)cos(\frac{n\pi}{L}vt)$
弦拉力可以表示为:$T = \mu\frac{\partial u}{\partial x}(0,t) = \mu\frac{\partial u}{\partial x}(L,t)$根据弦的振动方程和振动模式,我们可以得到:$T_n = \begin{cases}\frac{2\mu h}{L} & \text{}n\text{ 为奇数} \ \frac{4\mu h}{n\pi} & \text n\text{ 为偶数}\end{cases}$
显然,半自由边界下弦的拉力与振动模式的波数$n$的奇偶性有关。当$n$为偶数时,拉力与固定边界相同;当$n$为奇数时,拉力与自由边界相同。这是因为半自由边界将弦的振动限制在某些特定的模式下,但仍然允许不同波数的波在自由边界处干涉。当$n$为偶数时,干涉后的波是奇函数,不能在半自由边界处产生位移,从而弦的拉力与固定边界相同;当$n$为奇数时,干涉后的波是偶函数,可以在半自由边界处产生位移,从而弦的拉力与自由边界相同。
综上所述,不同约束边界对弦拉力的影响是显著的。对于分布均匀柔软的弦,弦的拉力与振动模式的波数、约束边界的类型都有关系。在实际应用中,我们需要根据具体情况选择合适的约束边界以及相应的振动模式,以满足设计要求。
下面是四种不同边界条件对线拉力的影响
1 | % 定义 |
三、附录
3.1 抛物线的求解
已知抛物线的定点和焦点,可以使用抛物线的标准方程或顶点法求出抛物线的方程。
- 标准方程
抛物线的标准方程为:
其中,a是抛物线的开口方向和大小,b是抛物线的对称轴位置,c是抛物线的顶点的纵坐标。
根据题意,已知定点和焦点,可以求出抛物线的开口方向和大小,以及顶点的横坐标。进而可以求出b和c。
以定点为抛物线的顶点,设焦点在y轴正半轴上,设焦距为2p,定点的坐标为(h,k)。
根据抛物线的定义,抛物线上任意一点到焦点的距离等于该点到定点的距离,即:
平方化化简可得:
其中p为焦距。根据定义,抛物线的开口方向和大小由参数a决定,a=1/4p。
因此抛物线的方程为:
其中,h,k,p为已知的定点和焦点的参数。
- 顶点法
以定点为抛物线的顶点,将焦点所在的直线定义为抛物线的对称轴。设焦距为2p,焦点的坐标为(h,k+p),则可得到焦点所在的直线方程为x=h。
根据抛物线的定义,顶点到对称轴的距离等于焦距的一半,因此抛物线的方程为:
其中,h,k,p为已知的定点和焦点的参数。
3.2 奈奎斯特采样定理
采样过程所应遵循的规律,又称取样定理、抽样定理。采样定理说明采样频率与信号频谱之间的关系,是连续信号离散化的基本依据。
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的2.56~4倍;采样定理又称奈奎斯特定理。
如果对信号的其它约束是已知的,则当不满足采样率标准时,完美重建仍然是可能的。 在某些情况下(当不满足采样率标准时),利用附加的约束允许近似重建。 这些重建的保真度可以使用Bochner定理来验证和量化。具体见百度百科奈奎斯特抽样定理