Python 正弦波产生-获得Y轴

Python 正弦波产生-获得Y轴,python,trigonometry,Python,Trigonometry,我试图创建一个无限循环,输出正弦波的Y轴,并希望使用变量指定波的振幅、频率和分辨率。其中,frequency是一秒钟内完整正弦波的数量,与交流电频率类似 我正在尝试这样做: #!/usr/bin/python from time import sleep from math import sin amplitude=100 frequency=0.01 resolution=0.01 while True: y = <Sine wave math> print s

我试图创建一个无限循环,输出正弦波的Y轴,并希望使用变量指定波的振幅、频率和分辨率。其中,frequency是一秒钟内完整正弦波的数量,与交流电频率类似

我正在尝试这样做:

#!/usr/bin/python
from time import sleep
from math import sin

amplitude=100
frequency=0.01
resolution=0.01

while True:
    y = <Sine wave math>
    print str(y)
    sleep(resolution)
#/usr/bin/python
从时间上导入睡眠
从数学输入罪
振幅=100
频率=0.01
分辨率=0.01
尽管如此:
y=
打印str(y)
睡眠(分辨率)

我需要数学方面的帮助和正确的解决部分。

这可能不是解决数学问题的最佳地方,但并不难,所以给你

sin(x)是一个产生波的函数。它的周期,或者说你得到一个完整波的距离,是2*pi。要更改周期以匹配频率,您必须将sin(x)中的x乘以等于2*pi*f的常数,或者使用sin(2*pi*f*x)

要改变波的振幅,将其乘以振幅。如果你有振幅A,你需要A*sin(x)

我不知道你说的频率是多少


总的来说,你想要的是一个*sin(2*pi*x)。

对于数学问题来说,这可能不是最好的地方,但并不难,所以给你

sin(x)是一个产生波的函数。它的周期,或者说你得到一个完整波的距离,是2*pi。要更改周期以匹配频率,您必须将sin(x)中的x乘以等于2*pi*f的常数,或者使用sin(2*pi*f*x)

要改变波的振幅,将其乘以振幅。如果你有振幅A,你需要A*sin(x)

我不知道你说的频率是多少


总的来说,你想要的是一个*sin(2*pi*x)。

经过大量的研究和调整,我得出以下结论:

#!/usr/bin/python
from time import time,sleep
from math import sin,pi

frequency = 1
amplitude = 100
resolution = 0.01

def sineCalc(time,frequency,amplitude):
    factor = pi * frequency
    sin_seg = sin(time * factor)
    value = amplitude * sin_seg
    return value

while True:
    #Get y value based on current time.
    value = sineCalc(time(),frequency,amplitude)
    print str(value)
    sleep(resolution)

经过大量研究和调整,我得出以下结论:

#!/usr/bin/python
from time import time,sleep
from math import sin,pi

frequency = 1
amplitude = 100
resolution = 0.01

def sineCalc(time,frequency,amplitude):
    factor = pi * frequency
    sin_seg = sin(time * factor)
    value = amplitude * sin_seg
    return value

while True:
    #Get y value based on current time.
    value = sineCalc(time(),frequency,amplitude)
    print str(value)
    sleep(resolution)

从数学导入sin?添加了该导入。我的问题是我根本不知道如何使用它。你能为给定的x写下y的公式,并且需要帮助将其翻译成代码吗?或者你不知道怎么写公式?换句话说,这是一个编程问题还是一个数学问题?@SamCraig谢谢你,但对我来说这是一门外语,我就是不懂。我认为这段代码接近我想要的,但是减去了声音输出:从数学导入sin?添加了导入。我的问题是我根本不知道如何使用它。你能为给定的x写下y的公式,并且需要帮助将其翻译成代码吗?或者你不知道怎么写公式?换句话说,这是一个编程问题还是一个数学问题?@SamCraig谢谢你,但对我来说这是一门外语,我就是不懂。我认为这个代码接近我想要的,但是减去声音输出:你可以把它缩短为
返回振幅*sin(时间*pi*频率)
。对于完整的描述,您可以添加:
返回振幅*sin(时间*pi*频率+相位)+偏移量
。例如,cos(x)是相移的sin(x)。您可以将其缩短为
返回振幅*sin(时间*pi*频率)
。对于完整的描述,您可以添加:
返回振幅*sin(时间*pi*频率+相位)+偏移量
。例如,cos(x)是相移sin(x)。