假设我需要生成一个时间序列,其中每次间隔大约为 120 秒,但变化很小(例如 125、130、119、118、121、129 等)
我希望这种变化不是随机的,而是遵循幂律分布,所以会有一些,但数量很大的大变化,其中大部分会很小(+-2-3 秒)。
您知道 Javascript 中是否有可以执行此操作的算法?或者至少将我引导到某种可以生成这种分布的函数,该分布总是围绕某个数字(例如,在我的情况下为 120)?
谢谢!
假设我需要生成一个时间序列,其中每次间隔大约为 120 秒,但变化很小(例如 125、130、119、118、121、129 等)
我希望这种变化不是随机的,而是遵循幂律分布,所以会有一些,但数量很大的大变化,其中大部分会很小(+-2-3 秒)。
您知道 Javascript 中是否有可以执行此操作的算法?或者至少将我引导到某种可以生成这种分布的函数,该分布总是围绕某个数字(例如,在我的情况下为 120)?
谢谢!
您可以通过生成零均值粉红噪声信号来做到这一点然后只是规模偏差它,即你的间隔将是
在哪里控制间隔将在 120 左右摆动多远。
粉红噪声可以通过过滤白噪声或通过直接在频域中创建幅度谱、添加随机相位并执行逆 FFT 来生成。有关过滤示例,请参阅https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html
在实践中,大多数粉红噪声信号仅在下限频率下呈粉红,否则在极低频率下理论上无限的能量变得笨拙。