🥥Python实现谐波比,李沙育曲线和正交阻尼摆绘制
Python | 谐波比 | 李沙育曲线 | 正交阻尼摆 | Matplotlib | Numpy
简介
谐波
谐波系列(也称为泛音系列)是频率,音乐音调或纯音调的序列,其中每个频率是基频的整数倍。
俯仰乐器通常基于声学谐振器,例如弦或空气柱,其同时以多种模式振荡。 在每种振动模式的频率下,波沿着琴弦或气柱在两个方向上传播,彼此增强和抵消,从而形成驻波。 与周围空气的相互作用会产生声波,这些声波会从仪器中传播出去。 由于共振的典型间隔,这些频率大多被限制为最低频率的整数倍或谐波,并且此类倍数形成谐波序列。
李沙育曲线
李沙育曲线是参数方程组 x(t) = A · sin(a · t + φ) 和 y(t) = B · sin(b · t) 的图,描述复杂的谐波运动。如:
圆是简单的李沙育曲线
动画显示曲线的适应性随着比率a / b从0增加到1
Python实现
该项目将开发一个横向谐音器的动画,您可以在其中指定要绘制的谐波比。 涉及阶段:
绘制李沙育图形
绘制两个正交阻尼摆
添加用户界面控制,以谐波比率表示为有理数
李沙育图形
Lissajous的曲线由一对参数方程式指定 :x(t) = A · sin(a · t + φ) 和 y(t) = B · sin(b · t) 。
t是时间
A和B是这里取为一体的振幅
a和b是频率,a / b给出了它们的谐波比
φ是两个正弦波之间的相位偏移
由于所有间隔都可以用带整数分子和分母的有理数表示,因此这里使用的只是气质,而不是均等气质(所有半音均为√122)。 这些间隔是
同调,比例1:1
八度,比例2:1
理想的五分之一音调,比例3:2
理想的四分之一音调,比例4:3
主要的第三,比例5:4
次要的第三,比例6:5
大调,比例9:8
小调,比例10:9
半调,比例16:15
在Python中输入以下测试程序,并将其另存为“ liss.py”。
第一个高亮显示使程序在2·π个周期内迭代,而第二个高亮显示的for循环当然可以用linspace函数代替。 对于完美的第四间隔(4:3),输出应类似于如下(在IPython中的%maplotlib之后)。
阻尼正交摆
在Python中输入以下测试程序,将其另存为“ damp.py”
前两个突出显示乘以阻尼系数,而第三个突出显示在200·π个周期内进行迭代。 该图显示了完美的第五个谐音(在IPython中的%maplotlib之后)
谐波比率
Python用fractions模块表示有理数。 在Python中输入以下测试程序,将其另存为“ ratio.py”
其中Fraction是构造函数,分子和分母是有理数的访问器函数。
GUI
输入以下代码并保存为‘main4.py’
正交多项式
定义两对不同的正交摆。
李沙育是一个理想的系统,没有摩擦,其中的摆以谐波比率移动,并且彼此之间相移
谐波仪现实的系统,具有摩擦阻尼,其中摆以谐波比率移动,并且彼此之间相移
输入谐波比率(分数),相移(度),摩擦(布尔)输出无。
输入以下代码并保存为‘main4.py’:
开发了一个简单的GUI来填写摆锤的条目。
输入以下代码并保存为‘main4.py’:
尽管这是一个相对简单的GUI,但它实现了主要功能。
Last updated