|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
На днях решил повозиться с... эм, назовём это "автобас". Думал написать всё детально и понятно, но там столько вводных для контекста понадобилось, что статья разрослась. Так что сюда вкину только основное:
Есть проблема с низкими частотами в музыке - нормально сведённые треки не требуют от акустики качать ниже 40Гц. Т.е. акустика может играть 0дБ от 20Гц, но иметь ограничение звукового давления там в 4 раза ниже чем на 40Гц (одинаковая амплитуда колебаний диффузора). Но попадаются ненормальные треки, которые нужно агрессивно резать. Один такой у меня имеет 10Гц на -3дБ. Вот что с этим делать? Если резать всё подряд, то не будет раскрываться потенциал системы, а брать 4-х кратный запас по мощности ради таких исключений тоже нерационально. Тем более что эти компоненты слух всё равно не услышит, ибо они должны быть в 10 раз громче за 40Гц, и только звук попортят своей интермодуляцией. Решение - автоматическая подстройка частоты среза ИНЧ фильтра под Xmax диффузора. В норме срабатывать не будет, а на ненормальных треках работает как динамический эквалайзер. Слепил я это всё дело и смоделировал, вот результаты: Фильтр должен иметь вот такую АЧХ (низ): Для сравнения, вверху обычный Баттерворт - видно что он недостаточно крутой. При этом требуется спад ровно 12дБ/окт во всей переходной полосе, чтоб частота не влияла на амплитуду колебаний диффузора. Ну потому что эта амплитуда квадратично зависит от частоты, а 12дБ/окт это как раз квадратичная зависимость. Эллиптический фильтр не годится - он заточен на максимально крутой срез, а мне нужен строго заданный, так что пришлось брать три канала параметрического эквалайзера и строить на них такой вот фильтр 6-го порядка. Теперь я могу крутить его частоту среза ограничивая амплитуду колебаний диффузора насколько мне нужно. Осталось эту самую амплитуду получить. У меня есть модель, я могу с неё каждый семпл брать текущее положение диффузора, и типичный программист ловил бы пики амплитуды (попросту детектировал бы сигнал), но я знаю приём лучше - преобразование Гильберта. Сделать его лучше на БИХ фазовращателях (проще и быстрее чем на свёртке, тем более что частоты экстремально низкие), для чего я накопал на просторах интернета подходящую программу QuadNetInstall205.exe (видеоинструкция), родившую мне вот это: Такие вещи я люблю, они очень легко описываются кодом и дают такой результат: Вверху смещение диффузора, а внизу его модуль, полученный через этот фильтр. Если кто не понял - эта штука даёт т.н. аналитический сигнал (или комплексно сопряженный). Делает копию сигнала, сдвинутую на 90 градусов, после чего можно легко вычислить огибающую (амплитуду) в любой момент времени (даже если период колебания в этот момент проходит через ноль). Эта штука используется в радиосвязи - т.н. квадратурные модуляторы и демодуляторы. Wi-Fi и BT без них не обходится, встречается в SDR и имеет знакомые многим обозначения "I" и "Q". Таким образом, нужный сигнал обратной связи мы получили, осталась следящая система. Тут важный нюанс - ФЧХ ИНЧ фильтра не должна давать существенные искажения на стыке НЧ-СЧ, т.к. фильтр располагается за кроссовером. Вот что я получил с этой следящей системой: Это тот самый проблемный трек. Вверху частота среза (выход регулятора, старт на 20Гц, вся шкала 100Гц, болтается около 40Гц), внизу - откорректированная амплитуда колебаний диффузора. Тонкие линии на уровне 50% - Xmax. Есть небольшой клиппинг, но так задумано - у динамика ограничение мягкое. Для сравнения, нормальные треки (тут шкала уже до 50Гц и огибающая амплитуды): Злой митол: Бодрый драмчик: И тестовые сигналы: Розовый шум (не нормализованный под всякие там DIN): Свип тон: Тут видно какую-то дерганину в начале, изучим её в другом файле симуляции: А, понятно, усилитель упёрся в лимит по току (20А) - это нелинейности. И того - мы получили условные 20Гц на приличной давке 83dB SPL в точке прослушивания (при динамическом диапазоне 14dB и 2-х колонках в системе) в 6-ти литрах объёма. Условные, потому что технически на нормальном сигнале акустика и правда даст ровную АЧХ от 20Гц, но при попытке выдавить чистый синус с максимальной амплитудой АЧХ исказится и мы получим 0дБ от ~40Гц со спадом 12дБ/окт. Поэтому я пишу в характеристиках 20/40Гц. Ещё из интересного - рассеиваемая мощность. Синус всё нахрен спалит, но под него акустика и не проектируется. Заглянем в логи всех этих тестов: Код:
zahqo - Power Slipping (feat. Haymaker) (auto HPF): Average power dissipation Low - 103.099274W Average power dissipation Mid - 0.336819W Average power dissipation High - 0.049226W Total average power dissipation - 103.485313W Frozen Night - Chrysalis Metamorphosis (Powerful Fragment) (auto HPF): Average power dissipation Low - 13.623922W Average power dissipation Mid - 1.196865W Average power dissipation High - 0.142325W Total average power dissipation - 14.963113W Omnipony - Equestria in Grey (JoltMc Remix) (auto HPF): Average power dissipation Low - 26.711996W Average power dissipation Mid - 0.122632W Average power dissipation High - 0.320452W Total average power dissipation - 27.155079W Pink_Noise (auto HPF): Average power dissipation Low - 90.275902W Average power dissipation Mid - 0.235654W Average power dissipation High - 0.245128W Total average power dissipation - 90.756683W 10-400Hz sweep (auto HPF): Average power dissipation Low - 149.290726W Average power dissipation Mid - 0.709429W Average power dissipation High - 0.000200W Total average power dissipation - 150.000351W [Исправлено: INFERION, 17.11.2022 в 15:06] |
![]() |
![]() ![]() |
Поблагодарили: 3 раз(а) |