gpt4 book ai didi

Java:如何在 Android Studio 中生成随机信号?

转载 作者:行者123 更新时间:2023-11-29 23:51:20 25 4
gpt4 key购买 nike

如何使用 Java 生成随机信号?我想模拟一个传感器来对我正在使用的 Android 应用程序进行一些测试。该信号将被发送到服务器,应用程序将检索并处理它。

一张照片说一千句话: random signal example

单独使用 Android 随机类并不是一个好的方法。但也许使用随机类的算法?

编辑:更多信息

此信号需要是线性的并且与时间相关。想一想城市中车辆的速度如何变化,诸如此类。

最佳答案

好吧,经过深思熟虑,我想出了一个解决方案。我使用 Sigmoid 函数生成随机信号。这是我的最终结果:

最终结果 Final result

解决方案

Sigmoid 函数在 0 到 1 或 -1 到 1 之间变化,具体取决于您要如何使用它。在我看来,它们非常酷。这是它的 Wikipedia这是它的样子:

Sigmoid Function

在这种情况下,为了生成随机信号,我使用了双曲正切函数 tanh (Sigmoid):

tanh(x) = [ e^x - e^-x ] / [ e^x + e^-x ]

首先,我使用一个随机函数从 -2000 到 2000 之间选择一个数字,然后将它除以 1000,得到一个从 -2 到 2 的十进制值。如果你看一下图表,双曲线函数在 -2 之间变化很大和 2,因此它为它提供了一个很好的分布式数据。我采用随机值的双曲线函数,将其乘以比例常数(控制变化率)。然后将其值添加到最后一个已知值。最后一步是取其绝对值,以防您不想要负值。

伪代码:

y0 = 10 // initial value
k = 5 // rate of change

for ( 1 thousand points: do this ) {

random = rand(-2000, 2000) / 1000;
x = tanh(random);
y = k * x + y0;
data[] = y;

y0 = y;
}

就是这样,简单而高效。

编辑:

如果有人感兴趣或者可能正在寻找一些随机信号,我发现了这个 Artificial Sensor Feed来自 PubNub,它也可以是一个随机信号的解决方案。

另一个例子

x0(初始值)= 100 且变化率 = 10 的最终结果的另一个示例。

enter image description here

关于Java:如何在 Android Studio 中生成随机信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50884053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com