python - 为方波函数的值创建数组

标签 python arrays fft

我有一个如下所示的函数

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”,因为我们指的是一个周期)。这段代码产生的函数的循环如下图所示:

                                        enter image description here

关于python - 为方波函数的值创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121147/

相关文章:

matlab - 为什么使用 DFT 的相关性会给出不直观的结果?

python - 如果两个 SQLAlchemy 查询相同,如何比较它们?

python - 在 numpy.select 条件中使用

javascript - 按元素对数据数组进行分组和求和

C++ : how can I fourier transform an array into an other array of different size using fftw3

matlab - 在 MATLAB 中弄清楚实际频率值与 FFT 绘图索引之间关系的困惑

python - DataFrame 到嵌套 JSON

python - 使用 RDFib 创建数据转储并将数据添加到图表中而无需迭代

java - 通过计算数组结果来做到这一点是明智的方法吗?

ios - 如何将查询中的数据保存在字符串数组中,Firebase iOS?