Формула 4-полосного кроссовера

CJ ViGiT

New Member
24 Дек 2008
37
0
0
www.vigitsoundlab.net
:dash2:

Люди, подскажите, кто знает!

Я работаю в программе Reaktor 5 (Native Instruments). Это так сказать программа "собери сам".

Мне нужно собрать кроссовер с фильтрами 1-го или 2-го порядка, для этого мне нужны формулы.

Подскажите кто знает! Или может у кого есть руководство по сборке цифровых фильтров. Уже весь инет изрыл...

:dash2:
 
:dash2:

Люди, подскажите, кто знает!

Я работаю в программе Reaktor 5 (Native Instruments). Это так сказать программа "собери сам".

Мне нужно собрать кроссовер с фильтрами 1-го или 2-го порядка, для этого мне нужны формулы.

Подскажите кто знает! Или может у кого есть руководство по сборке цифровых фильтров. Уже весь инет изрыл...

:dash2:

Возьми штатную библиотеку Реактора. Там в разделе Macros есть готовые фильтры любого порядка, написанные на Core-уровне, так что их можно разобрать до "ассемблера" и оттуда при желании вытащить формулы (хотя не очень понятно, зачем - их же потом обратно в ассемблер превращать).
 
Возьми штатную библиотеку Реактора. Там в разделе Macros есть готовые фильтры любого порядка, написанные на Core-уровне, так что их можно разобрать до "ассемблера" и оттуда при желании вытащить формулы (хотя не очень понятно, зачем - их же потом обратно в ассемблер превращать).

Друг, ну я уже не первый год в реакторе и догадаться сам бы мог. В штатной есть только отдельные составляющие. Но вот понимаешь, если эти фильтры складывать по простому между собой (мне ведь не просто фильтр нужно собрать, а кроссовер) то не правильно всё получается!

Давай на примеру объясню:

Берём сигнал и делим его на 4 полосы, соответственно у нас 3 частоты деления:

Первая полоса - входной сигнал через LP-фильтр на частоте 1,
Вторая полоса - входной сигнал через HP-фильтр на частоте 1, потом через LP-фильтр на частоте 2
Третья полоса - входной сигнал через HP-фильтр на частоте 2, потом через LP-фильтр на частоте 3
Четвёртая полоса - входной сигнал через HP-фильтр на частоте 3

Вот у нас получились 4 частотных полосы! Но вот прикол, когда складываешь обратно все эти сигналы получается уже искажённый сигнал ввиду фазовых проблем на частотах разделения.

Так вот мне нужно решить эту проблему.
 
Последнее редактирование:
Так вот мне нужно решить эту проблему.

Решается элементарно и почти без формул :)

Делаешь 3 LP фильтра:

А - с завалом -6 дБ на частоте раздела 1
B - с завалом -6 дБ на частоте раздела 2
С - с завалом -6 дБ на частоте раздела 3


Пусть X - входной сигнал, A, B, C - выходы соотв. фильтров а Y1, Y2, Y3, Y4 - выходы соотв. полос кроссовера.

Тогда полосы формируются следующим образом:

Y1=A
Y2=B-A
Y3=C-B
Y4=X-C

Складывая все 4, получаем Х, что и требовалось :)
 
Последнее редактирование:
  • Like
Реакции: Vadim_K и Novation
Решается элементарно и без всяких формул :)

Делаешь 3 LP фильтра:

А - на частоту раздела 1
B - на частоту раздела 2
С - на частоту раздела 3


Пусть X - входной сигнал, а Y - выходной.

Тогда полосы формируются следующим образом:

1-я Y=A
2-я Y=B-A
3-я Y=C-B
4-я Y=X-C

Складывая все 4, получаем Х, что и требовалось :)

Бляха-муха! Я целый год страдал над этой темой!!!
Ну я уже побежал пробовать! СПАСИБИЩЕ!

Ядрён батон! Работает! Вплодь до семпла совпадает - X=Y1+Y2+Y3+Y4 !!!!!!!!!!!!!!!!!!!!!!!!!!
Сам мудрил уже не знаю как, ничё не получалось... Как я мог до такого не догадаться - это ж очивидная формула!

Если ещё до куче дадите ссылки на материал, который поможет мне сделать переменным параметр крутизны среза будет вообще!!! Слов не будет...
Короче мне осталось теперь найти формулу фильтра LP с переменной крутизной среза.

Ну я не знаю прям, проси что хочешь!
 
Последнее редактирование:
Если ещё до куче дадите ссылки на материал, который поможет мне сделать переменным параметр крутизны среза будет вообще!!! Слов не будет...

Параметр крутизны среза задается порядком фильтра и сделать его плавно регулируемым, честно говоря, не знаю как. Разве что используя FFT (которого в Реакторе нет :))
Обычно в кроссоверах стоит переключалка на фиксированные значения (типа: 6-12-18-24 дБ/окт). Эта инфа не догма, я не настолько глубоко в теме, может, тут и есть какие хитрости.
 
  • Like
Реакции: CJ ViGiT
Параметр крутизны среза задается порядком фильтра и сделать его плавно регулируемым, честно говоря, не знаю как. Разве что используя FFT (которого в Реакторе нет :))
Обычно в кроссоверах стоит переключалка на фиксированные значения (типа: 6-12-18-24 дБ/окт). Эта инфа не догма, я не настолько глубоко в теме, может, тут и есть какие хитрости.

Дааа... в том то и дело что я видел такие цифровые кроссоверы, которые имеют именно плавную регулировку крутизны среза, но я и без того уже счастлив.

FFT в реакторе я видел, кто-то постарался, но я такого количества модулей ещё не видел. Открываеш core-модуль, а там задница полная... Незнаю у кого сил хватило это всё соединять... В любом случае FFT - не та тема.
 
Последнее редактирование:
P.S. Комментарий:
1.) У фильтров с вычитанием полос (иногда называемых "фильтр дополнительной функции") - крутизна среза не совпадает с таковой у фильтра.
Т.е. если у "С" крутизна 12дб\окт, то у Y4 - будет около 6 дб\окт.
2.) Крутизна среза фильтров всегда кратна 6дб, т.е. может быть 6, 12, 18, 24дб и так далее, но не может быть, к примеру, 3, 4, 8, 9 дб.
3.) Если где-то (есс-но, только в цифре) увидите переменную крутизну - то, значит, этот девайс работает на FFT.
А сие - ФТОПКУ! :feminist_en:
 
если эти фильтры складывать по простому между собой (мне ведь не просто фильтр нужно собрать, а кроссовер) то неправильно всё получается!....
.... когда складываешь обратно все эти сигналы получается уже искажённый сигнал ввиду фазовых проблем на частотах разделения

-- Кстати - большинство кроссоверов строятся на основе State-Variable Filter.
Так вот, если получившиеся полосы сложить - то выходной сигнал на частотах раздела будет равен нолю.
(Не нолю децибел, а самому обычному нолю!)
Т.е. выходного сигнала на этих частотах просто не будет, совсем.
 
P.S. Комментарий:
1.) У фильтров с вычитанием полос (иногда называемых "фильтр дополнительной функции") - крутизна среза не совпадает с таковой у фильтра.
Т.е. если у "С" крутизна 12дб\окт, то у Y4 - будет около 6 дб\окт.
2.) Крутизна среза фильтров всегда кратна 6дб, т.е. может быть 6, 12, 18, 24дб и так далее, но не может быть, к примеру, 3, 4, 8, 9 дб.
3.) Если где-то (есс-но, только в цифре) увидите переменную крутизну - то, значит, этот девайс работает на FFT.
А сие - ФТОПКУ! :feminist_en:

Не соглашусь со многим... Уважаемый....
если я правильно понял по поводу фильтров, то в моём случае скажу что это не так. Я знаю как измерить крутизну среза, поэтому знаю о чём говорю. Всё получилось тип-топ.

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

Берём линейный (не логарифм.) кроссфейдер вешаем на один конец фильтр 1-го порядка, на второй 2-го порядка. Вот и всё! Перемещая кроссФ - получаем плавное изменение крутизны.

А далее "упрощаем выражение" и получаем этот переменный параметр вшитым в фильтр.
 
-- Кстати - большинство кроссоверов строятся на основе State-Variable Filter.
Так вот, если получившиеся полосы сложить - то выходной сигнал на частотах раздела будет равен нолю.
(Не нолю децибел, а самому обычному нолю!)
Т.е. выходного сигнала на этих частотах просто не будет, совсем.

Если их не будет - то этож извращение над звуком. Кому нужен такой кроссовер?

Или вы что-то другое хотели сказать?
 
Тогда полосы формируются следующим образом:
Y1=A
Y2=B-A
Y3=C-B
Y4=X-C
Это работает в том случае, если фильтры имеют линейную фазу. В противном случае указанные вычитания могут не приводить к желаемым частотным характеристикам фильтров.

Если где-то (есс-но, только в цифре) увидите переменную крутизну - то, значит, этот девайс работает на FFT. А сие - ФТОПКУ!
Почему это? Такие кроссоверы могут работать и без FFT, используя фильтры с линейной фазой.

Так вот, если получившиеся полосы сложить - то выходной сигнал на частотах раздела будет равен нолю.
Вы ничего не путаете? Я таких кроссоверов не встречал. Вот популярный кроссовер Линквица-Райли вообще дает ровную АЧХ суммированного сигнала.
 
  • Like
Реакции: Ortseam
-- Я ничего не путаю.
Возьмите любой кроссовер на основе State-Variable, и сложите сами его НЧ и ВЧ выходы...
 
А какая разница: state-variable или не state-variable? Это же метод реализации, а не тип фильтра. На state-variable фильтрах делают и кроссоверы Линквица-Райли, у которых все суммируется к единице, а не к нулю (вот пример статьи AES на эту тему).
 
Ребята, вы чего?

Я же сказал, всё работает!

При сложении звук равен входному сигналу вплоть до сэмпла. А каждая получившаяся частотная полоса имеет крутизну спада от 6 до 12 дб (плавно).

Я использовал обычные IIR-фильтры с крутизной 6 дб (по 2 штуки подряд)

И не надо заморачиваться на фильтрах с линейной фазой.

Если не верите, то так и скажите.
 
Я использовал обычные IIR-фильтры с крутизной 6 дб (по 2 штуки подряд)
А вы обратите внимание на то, какую форму имеет левый спад у полосовых фильтров. Боюсь, там проблемы с формой АЧХ.
 
А вы обратите внимание на то, какую форму имеет левый спад у полосовых фильтров. Боюсь, там проблемы с формой АЧХ.

нормальную форму, я проверяю на розовом шуме по спектрографу.
Канфетки а не срезы просто! Никаких искажений в АЧХ!
 
А можете приложить пример WAV-файла такого шума с одной полосой в левом канале и другой полосой - в правом. Пусть крутизна будет 12 дБ. А еще лучше - не шума, а дельта-функции (единичного импульса).
 
  • Like
Реакции: CJ ViGiT
А можете приложить пример WAV-файла такого шума с одной полосой в левом канале и другой полосой - в правом. Пусть крутизна будет 12 дБ. А еще лучше - не шума, а дельта-функции (единичного импульса).

Да, уважаемый, даже не знаю как мне сказать...

Ладно, пусть меня "побьют палками", но я был не прав. Извиняюсь перед всеми. :to_take_umbrage:

На самом деле я не проводил визуального частотного анализа, а понадеялся на свой слух, а он в свою очередь меня подвёл по неопытности...

Провёл анализ и увидел, что крутизна левого спада ни фига не 12 дб, а всегда 6... Да и к тому же если использовать последовательно 2 и более фильтра с крутизной 6 дб в моём 4-х полосном кроссовере, то когда я убираю из суммы одну или более полосы, то соседние полосы немного становятся громче. Корче лажа вышла, хотя на слух звучит хорошо...

В общем я расстроен... Блин...
 
Последнее редактирование:
6 дБ/окт - это не так уж плохо для многих задач.

Да но для моих целей это не подходит... мало...

Вот пример, ксатит, у компании Waves есть плагин "C4", который работает без задержек, так вот там как раз 4-х полосный кроссовер с плавно изменяемым параметром "Q", который определяет крутизну среза.

Вот мне нужно собрать такой же кроссовер в Реакторе. Нужна формула, совет.
 
-- Не знаю, как в этом плагине, но вообще параметр "Q" - определяет добротность фильтра, т.е. характер его поведения вблизи частоты среза, а не крутизну самого среза.
 
-- Не знаю, как в этом плагине, но вообще параметр "Q" - определяет добротность фильтра, т.е. характер его поведения вблизи частоты среза, а не крутизну самого среза.

Согласен, но именно так там обозначен этот параметр

обратите внименине на изменение этого параметра, вот вам скрины:

111.jpg

222.jpg
 
-- А кто ж их знает - что там какое вообще?
Нарисовать-то можно всё что угодно...
 

Сейчас просматривают