如何标准化正在进行的累积总和的样本?
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
现在可用于标准化以任何其他频率计算的样本。
一开始只需要计算一次
为简单起见,假设我们有一个函数 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
现在可用于标准化以任何其他频率计算的样本。
一开始只需要计算一次