Алгоритм цифрового искажения

10

Я прочитал книгу DAFX Удо Цельцера об эффекте искажения на страницах 124-125, и там сказано, что подходящее моделирование искажения дается функцией:

f(x)=x|x|(1ex2/|x|)

Может кто-нибудь объяснить эту формулу и какой сигнал мы получаем?

Из того, что я понимаю, «x» - это дискретизированный сигнал, так что это последовательность чисел. Что делает | х | жадный? Относится ли это к абсолютному значению x для каждого значения выборки?

Так что, если я хочу реализовать эту симуляцию эффекта искажения,

  1. Мне нужно знать длину х (это определяется количеством образцов)
  2. В цикле мне нужно рассчитать эту формулу для каждого значения образца
  3. после окончания цикла я получаю искаженный сигнал (в цифровом виде)

После этого мне нужно преобразовать его в аналоговый сигнал, чтобы я мог его услышать.

Elior
источник
2
Обратите внимание, что в формуле, приведенной в книге, есть ошибка (в показателе степени должен быть отрицательный знак). Смотрите мой ответ ниже.
Мэтт Л.

Ответы:

5

| Х | обозначает абсолютное значение - х / | х | бит формулы предназначен для того, чтобы убедиться, что знак ввода сохраняется в выводе. Что касается реализации, да, перечисленные вами шаги верны.

pichenettes
источник
1
Что вы подразумеваете под "настоящим искажением"? Абсолютно любая операция, которую вы выполняете с исходным сигналом, все равно будет искажением! Что ты пытаешься сделать?
pichenettes
1
Искажение - очень расплывчатый термин, который описывает любое (обычно нежелательное) преобразование, которое изменяет сигнал. Гитарное искажение достигается многими различными процессами - отсечением, выпрямлением, перегрузкой - в зависимости от типа педали / усилителя, в котором это происходит - не существует единственной «истинной» формулы ... Формула, которая у вас есть, выглядит так, как будто она даст сигмоидоподобная функция, имитирующая перегрузку; но я думаю, что где-то может быть ошибка.
Pichenettes
1
Вы должны сделать это во временной области.
pichenettes
1
Потому что так работают эффекты гитарного искажения. Первоначально они были сделаны с нелинейными элементами, такими как трубки, диоды и более поздние транзисторы, чье поведение описывается во временной области нелинейной функцией. И вы пытаетесь подражать этому в цифровом виде ...
pichenettes
1
Сдвиг тона, генератор причудливых гармоний (скажем, EHX micro pog) или причудливый спектральный морфинг (не могу вспомнить название продукта) требуют обработки в частотной области. Некоторым имитаторам усилителей / динамиков требуются длинные свертки, которые эффективно выполняются путем умножения в частотной области. Но в любом случае НИКОГДА не «принимать все БПФ сигнала» - это реализуется путем сложения с наложением небольшого БПФ (1024 сэмпла или около того).
pichenettes
10

Благодаря сюжету в ответе Олли Нимитало я убедился, что приведенная в книге формула имеет знак ошибки. Нелинейность, используемая для размытия или искажения, всегда представляет собой сглаженную функцию ограничения, которая сжимает входной сигнал. Таким образом, небольшие входные амплитуды испытывают небольшие изменения, тогда как высокие входные амплитуды (более или менее) мягко ограничены. И фигура, показанная в ответе Олли, делает с точностью до наоборот.

Поэтому я убежден, что правильная формула должна быть

(1)f(x)=x|x|(1ex2/|x|)=sgn(x)(1e|x|)

xf(x)sgn(x)|x|=xf(x)sgn(x)

f(x)

введите описание изображения здесь

(1)x/|x|x2/|x|x

если (х> 0)
   y = 1 - exp (-x);
еще
   y = -1 + exp (x);
конец
Мэтт Л.
источник
О, да, книга неправильно цитирует web.archive.org/web/20070826204128/http://www.notam02.no/… и выше приведена правильная формула.
Олли Нимитало
Хорошо, спасибо. Вы думаете, что это был источник книги?
Мэтт Л.
Да, в книге упоминается эта студенческая работа. Был второй тезис норвежского студента, который имел неправильную формулу и цитировал первый тезис студента. Я не удосужился проверить даты, чтобы увидеть, скопировала ли книга второй тезис без проверки исходного источника или если второй тезис скопировал книгу.
Олли Нимитало,
1
x2/|x|
2

Вы можете записать тело функции прямо в Wolfram Alpha, и она построит его:

введите описание изображения здесь

Для меня это похоже на волну , и их можно использовать, как вы описываете.

Олли Нимитало
источник
1
Теперь, когда я вижу ваш сюжет, я совершенно уверен, что формула в книге неверна. Смотри мой ответ. Что вы думаете?
Мэтт Л.
2
@ MattL. Да, это имеет больше смысла. Функция книги также снижается, что может привести к нежелательной инверсии фазы.
Олли Нимитало