【转载】python在指定的时间段生成周期性波动的数据

【转载】https://www.cnblogs.com/guxingy/p/14143488.html

import numpy as np
import math
import matplotlib.pyplot as plt

#python在指定的时间段生成周期性波动的数据:
#周期性
long=400 # 400个步长,x轴的总长度
base=3.2 # 均值
ybase = np.zeros((1,long))[0] + base # 所有数据

period_multiply = 0.1 # 越大,幅值越大,调整波峰
period_frequency = 20 # 越大,周期越大

seg = [(10, 80), (140, 190)]

for (i,j) in seg: # 一组一组数据的遍历,现在这里是遍历两组数据:(10, 80) 和 (140, 190)
    print(seg)
    n = j-i # n=40,40 50
    x = np.arange(n)
    season1 = 1 * np.array([math.sin(i/period_frequency*math.pi) for i in x])
    season2 = 0.5 * np.array([math.sin(i*0.5/period_frequency*math.pi) for i in x])
    noise = np.random.normal(0, 0.2, len(x))
    y = season1 + season2 + noise # 可以叠加多尺度周期和噪声
    # y = season1+season2
    
    for idx in range(i, j): # 遍历具体的点
        print(idx, period_multiply)
        ybase[idx] = ybase[idx] + y[idx-i] * period_multiply
plt.figure(figsize=(15, 3.5))
plt.plot(ybase)
plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=2.0)
plt.show()




在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值