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

How to normalize samples of an ongoing cumulative sum?

为简单起见,假设我们有一个函数 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 个样本进行归一化。

现在我的问题基本上是:

在不知道最大值和最小值的情况下,如何在这种情况下对样本进行归一化? 如果我有一组带有新 maximum/minimum?

的新样本,我该如何防止再次规范化所有以前的样本

我找到了解决办法:)

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

在特殊情况下,这不是真的:

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

你能做什么:

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

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

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

  • 你可以放大或缩小它:maximum/frequency, minimum/frequency

  • 现在可用于标准化以任何其他频率计算的样本。

一开始只需要计算一次