我正在基于无限线性过采样从 Reaktor 重建一些失真单元,这是一种减少混叠的技术。它涉及具有单位延迟的失真方程的积分。这是示意图的示例: https ://www.native-instruments.com/forum/attachments/ilo-tanh-png.54931/
我想知道编写一个将输出延迟一个单位(Z-1)的函数的最简单方法是什么。
我在这里阅读了 Jordan Harris 的帖子,但我不确定我是否遵循他的技术。
这就是我想知道是否可能是相同的想法:
double output = nullptr;
inline double getUnitDelay(float& input) {
return output;
input = output;
}
所以原则上,它接受一个输入,但它不返回那个输入。它将它复制到另一个名为 output 的变量,我认为需要将其初始化为 nullptr,以便第一个示例请求在其中包含某些内容(即 nullptr)。不确定如何将其折叠到函数中。
由于 C++ 对顺序敏感(我认为),因此该函数每次运行时都会返回先前样本的输出。
然后,例如,它可以用在这样的方程中:
integral - getUnitDelay(integral) ... ;
那行得通吗?有更好的方法吗?
一如既往的感谢