Я работаю над перестройкой некоторых искажающих единиц из Reaktor на основе Infinite Linear Oversampling, который является техникой для уменьшения алиасинга. Он включает в себя интегралы уравнений искажения с единичными задержками. Вот пример схемы:
https://www.native -instruments.com / Форум / Дополнительное оборудование / ILO-TANH-png.54931 /
Мне интересно, какой самый простой способ написать функцию, которая задерживает вывод на одну единицу (Z-1).
Я читаю сообщения Джордана Харриса здесь , но я не уверен, что следую его методике.
Вот что мне интересно, может быть, та же идея:
double output = nullptr;
inline double getUnitDelay(float& input) {
return output;
input = output;
}
Итак, в принципе, он принимает входные данные, но не возвращает их. Он копирует его в другую переменную с именем output, которую, я думаю, нужно инициализировать как nullptr, чтобы в ней было что-то (т.е. nullptr) для первого примера запроса. Не уверен, как это можно сложить в функцию.
Поскольку C ++ чувствителен к порядку (я думаю), эта функция возвращает выходные данные предыдущего образца при каждом запуске.
Тогда, например, его можно использовать в уравнениях, подобных этому:
integral - getUnitDelay(integral) ... ;
Это сработает? Есть ли лучший способ сделать это?
Спасибо как всегда