我有一个如下所示的函数
f(t) = 1 : if 2t rounded down to the next lowest integer is even
f(t) = -1 : if 2t rounded down to the next lowest integer is odd
我试图最终对函数进行傅立叶变换,但首先我需要编写一个程序来创建一个 N=1000 个元素的数组,其中包含来自此单周期的 1000 个等距样本函数,它是方波。
如何创建这个数组?
最佳答案
当您询问一个周期内的平方函数的值时,首先您必须创建时间样本的值。从 t=0
开始,您提到的函数的周期为 1,在 t=1
之后函数会重复自身。
要创建一系列 0 到 1 之间等距值的序列,有多种选择,但最直接的选择是 numpy.linspace 。第一个参数是周期的开始时间,第二个参数是周期的结束时间,第三个参数是样本数(等间隔)。通过使用它,您可以创建t_samples
。
之后,您只需将 t_samples
中存储的值输入方波函数(下面代码中的 square_func
)即可。
请参阅此处的示例,了解如何使用它:
import numpy
def square_func(t):
if int(2*t)%2 == 0:
return 1
else:
return -1
t_samples = numpy.linspace(0.0,1.0,1000)
samples = [square_func(i) for i in t_samples]
变量samples
存储一个包含您需要的值的列表(其中一半是“1”,另一半是“-1”,因为我们指的是一个周期)。这段代码产生的函数的循环如下图所示:
关于python - 为方波函数的值创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121147/