钢琴发出的声波的数学方程

信息处理 声音 海浪
2022-02-07 06:11:46

有没有一个数学函数可以输出钢琴在不同频率下发出的声音?

因此,如果声波的最简单方程(在给定频率和给定采样率下)是

sin(2πxfsamplerate)

其中 f 是频率,钢琴发出的声音是否有类似的方程?

编辑:我不是在这里寻找任何太复杂的东西,只是一个近似这个估计的波浪。我一直在玩desmos,看看能不能得到类似的东西:

在此处输入图像描述

就是Guest's wave 的声音……不像钢琴。

2个回答

钢琴音色实际上相当复杂。最初的打击充满了快速减弱的非谐波音调。之后,谐波因音符、钢琴和钢琴而异。我建议您查看一些实际的示例文件,捕获大量一致的波形,进行 DFT,然后从那里读取系数。

至于给出的另一个答案,有些人可能会觉得这很有趣:

sin3(πx)+sin(π(x+23))

=(eiπxeiπx2i)3+sin(πx+23π)

=ei3πx3eiπx+3eiπxei3πx8i+sin(πx)cos(23π)+cos(πx)sin(23π)

=14sin(3πx)+34sin(πx)+sin(πx)(12)+cos(πx)(32)

=14sin(3πx)+14sin(πx)+32cos(πx)

希望这可以帮助,

赛德

到目前为止我发现的最好的波形函数在这个视频中。

根据我的经验,这是公式:

Y = sin(2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time)

添加泛音:

Y += sin(2 * 2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time) / 2
Y += sin(3 * 2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time) / 4
Y += sin(4 * 2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time) / 8
Y += sin(5 * 2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time) / 16
Y += sin(6 * 2 * pi * frequency * time) * exp(-0.0004 * 2 * pi * frequency * time) / 32

您还需要这个来使声音更加饱和:

Y += Y * Y * Y

在视频中,您将看到最后一行。即使没有它,音质也不会改变:

Y *= 1 + 16 * time * exp(-6 * time)