如何标准化正在进行的累积总和的样本?

问题描述

为简单起见,假设我们有一个函数 sin(x) 并用它计算了 -1 到 1 之间的 1000 个样本。我们可以绘制这些样本。现在在下一步中,我们要绘制 sin(x) 的积分,即 - cos(x) + C。现在我可以像这样计算现有样本的积分:

y[n] = x[n] + y[n-1]

因为它是一个累积总和,我们需要对其进行归一化以在 y 轴上获得介于 -1 和 1 之间的样本。

y = 2 * ( x - min(x) / max(x) - min(x) ) - 1

为了规范化,我们需要一个最大值和一个最小值。

现在我们要为 sin(x) 计算接下来的 1000 个样本并再次计算积分。因为这是一个累积总和,我们将有一个新的最大值,这意味着我们需要对所有 2000 个样本进行归一化。

现在我的问题基本上是:

如何在不知道最大值和最小值的情况下对这种情况下的样本进行标准化? 如果我有一组具有新最大​​值/最小值的新样本,我如何防止再次标准化所有以前的样本?

解决方法

我找到了解决方案:)

我还想提一下:这是关于像正弦这样的周期函数,所以基本上最大值和最小值应该总是相同的,对吗?

在特殊情况下,情况并非如此:

如果您的样本不包含函数的完整周期(具有函数的全局最大值和最小值)。当您选择非常低的频率时可能会发生这种情况。

你能做什么:

  • 简单地计算像 sin(x) 这样的函数的样本 频率为 1。它将包含函数的全局最大值和最小值 (重要的是 y 在 -1 和 1 之间变化,而不是 0 和 1!)

  • 然后用累积和计算积分。

  • 获取样本的最大值和最小值

  • 您可以放大或缩小:最大/频率最小/频率

  • 现在可用于对以任何其他频率计算的样本进行归一化。

一开始只需要计算一次。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...