DSP - эффект развертки фильтра - PullRequest
2 голосов
/ 16 июня 2010

Я реализую эффект 'развертки фильтра' (я не знаю, называется ли он так). В основном я создаю фильтр нижних частот и заставляю его «двигаться» в определенном диапазоне частот.

Для расчета частоты среза фильтра в данный момент я использую предоставленную пользователем линейную функцию, которая выдает значения от 0 до 1.

Моя первая попытка состояла в том, чтобы напрямую отобразить значения, возвращаемые линейной функцией, в диапазон частот, как в cf = freqRange * lf (x). Несмотря на то, что он работал нормально, он выглядел так, как будто развертка проходила намного быстрее при движении на низких частотах, а затем замедлялась при переходе в зону высоких частот. Я не уверен, почему это так, но я предполагаю, что это как-то связано с человеческим слухом, воспринимающим изменения частоты нелинейным образом.

Моей следующей попыткой было перемещение частоты среза фильтра логарифмическим образом. Теперь он работает намного лучше, но я все еще чувствую, что фильтр не движется с постоянной воспринимаемой скоростью в диапазоне частот.

Как мне разделить частотное пространство для получения постоянной воспринимаемой скорости развертки?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 18 июня 2010

Эффект развертки частоты, на который вы ссылаетесь, скорее всего, является фильтром вау-вау, названным по имени вездесущей педали вау-вау .

Мы слышим частоту в единицах октав, а прохождение октав с логарифмической шкалой является способом ее линеаризации. Не звучит пренебрежительно, но похоже, что то, что вы делаете, физически и математически правильно. (Вы должны проводить столько же времени между 200 и 400 Гц, сколько и между 2000 и 4000 Гц и т. Д.) Вам просто не нравится, как это звучит. И это вполне нормально с обеих сторон - звук очень субъективен.

Чтобы все немного перемешать, можно попробовать шкалу Барка , которая основана на психоакустике и структуре уха. Насколько я понимаю, это предназначено для того, чтобы проводить одинаковое количество времени во всех внутренних полосовых фильтрах вашего уха.

Вы всегда можете попробовать квадратичную или кубическую функцию от 0 до 1. Звуковые потенциометры часто используют несколько кусочно-квадратичных или кубических сечений, чтобы получить их отображение.

1 голос
/ 17 июня 2010

Winging, но попробуйте это:

http://en.wikipedia.org/wiki/Physics_of_music#Scales "В следующей таблице показаны соотношения между частотами всех нот только по мажорной шкале и фиксированной частотой первой нотышкала. "

Есть диаграмма, показывающая дробные значения от 1 до 2, и если вы настроите время, чтобы соответствовать, вы можете получить то, что вы хотите.Хотя общая прогрессия все еще является логарифмической, шаг между каждым должен делиться на равные ступенчатые 8-е (немного нервно).

Иными словами, каждые полсекунды корректируйте одну ноту.Каждая октава (я думаю) будет в два раза перекрывать частотный диапазон предыдущей октавы.

РЕДАКТИРОВАТЬ: Кроме того, вы найдете здесь частоты: http://en.wikipedia.org/wiki/Middle_C#Designation_by_octave (разве программист не в вашем желаниичто C0 был точно 16 Гц?)

...