Авто звук

Программирование, Хакинг, Безопасность, Софт, Железо, а также всё связанное с компьютерами
Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Авто звук

Сообщение BDK » 27 июл 2017, 08:54

Появилось желание сделать качественный звук в машине. Прошерстил литературу. Пришел к выводу что наилучший вариант - многополосная акустическая система. Погуглил что имеется из готового в этой области на рынке и понял что это не дешевое удовольствие. И вот созрела идея сделать самому. Походил по форумам - везде говорят что это сложно и что это работа для профессиональных специалистов а так же нужно профессиональное оборудование и большой риск что в итоге получится полное г вместо супер звука. Что ж - отлично, значит я справлюсь :)

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

Но я подумал что мы то живем в 21-м веке и сегодня это несколько уже не так всё драматично.

Вся суть заключается в том что разные динамики имеют разную АЧХ, поэтому когда мы собираем три динамика в одну акустическую систему нужно таким образом разделить подаваемые на них частоты чтобы в сумме получить по возможности как можно более ровную АЧХ. И сложность тут заключается в том что нужно для каждого динамика применить точно настроенные фильтры, чтобы кривые АЧХ от трех динамиков в сумме дали ровную. Кроме того в автомобиле нужно учитывать разное расстояние от динамиков до слушателя - звук доходит за разное время из-за чего возникают фазовые искажения тоже убивающие суперзвук и превращающие его в полное г. Кроме того в салоне автомобиля весь интерьер существенным образом влияет на АЧХ а не только сами динамики.

Короче говоря практически нереально сложно настроить акустическую систему с учетом всего этого если делать на базе аналоговой аппаратуры. Но все становится несколько интересней если использовать цифровую обработку сигнала.
=====

Итак мной было принято решение делать автозвук на базе обычного компьютера под виндой. Такой выбор мной был сделан потому что программирование звука под виндой давно освоенный для меня этап и поэтому для меня это будет самый простой и удобный вариант.

Суть проста - подаём звук на линейный вход компьютерной звуковой карты, обрабатываем звук в компьютере и выдаем 7 аудиоканалов через многоканальную звуковую карту. Каждый канал идет на свой усилитель D класса и с него на динамик. Такая вот простая система. Вся соль разумеется заключается в компьютерной обработке сигнала - нужные фильтры и временные задержки на каждый динамик. Об этом позже.

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 27 июл 2017, 09:14

По железу мной был сделан такой выбор:
Компьютер примерно за 35$ : https://www.aliexpress.com/item/Thin-Cl ... 279.7CbC0A
Звуковая карта примерно за 10$ : https://ru.aliexpress.com/item/High-Qua ... 271.7CbC0A
4 двухканальных усилителя D класса, всего 8 каналов - в сумме примерно 15$ : https://ru.aliexpress.com/item/mini-30w ... 264.7CbC0A
Итого вся электроника обойдется примерно в 60$ что вполне приемлемо.

Насчет динамиков - в принципе сгодятся любые, даже с очень кривой АЧХ - всё будет скомпенсировано предварительной обработкой сигнала, важно лишь выбрать такие чтобы тремя хорошо покрывался весь необходимый частотный диапазон. Вернее даже 4-мя - с учетом сабвуфера. Ну и чтобы эти динамики каждый в своем частотном диапазоне имели минимальные нелинейные искажения. Для этих целей я использую уже установленные в машине динамики и кроме того докуплю дополнительные. Насколько смотрел по ценам все это дело обойдется примерно еще в 60-100$ что тоже приемлемо.

Итого вся система обойдется мне примерно до 150$.
Последний раз редактировалось BDK 27 июл 2017, 09:54, всего редактировалось 1 раз.

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 27 июл 2017, 09:25

Теперь о том как я собираюсь настраивать это всё дело.

А собираюсь я это сделать в полностью автоматическом режиме, без долгого и скрупулезного ручного процесса. И даже музыкальный слух не понадобится :) Хотя я конечно мог бы но зачем если компьютер всё может сделать сам. В умелых руках программиста.

Суть заключается в следующем - на линейный вход этой системы подключаем стерео микрофон и устанавливаем в той точке салона автомобиля где предполагаем размещение слушателя. Затем запускаем программку которая подает на каждый динамик тестовый сигнал и в конце проанализировав результаты тестов выдает полностью готовую настройку под всю систему. Более того - результаты настройки для этой точки салона автомобиля сохраняются и аналогичным образом можно проделать настройку под любую другую точку в салоне и сохранить - и потом переключать эти настройки нажатием одной кнопки. Таким образом где бы в салоне ни находился слушатель он может быстро настроить под свое местоположение суперзвук.

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 27 июл 2017, 09:30

Насчет программирования и всей математики - это я сделать знаю как. Для меня как для программиста имеющего очень богатый опыт в компьютерной работе со звуком это все является довольно тривиальной темой и здесь её подробно я описывать не буду.

Знаю как откалибровать сначала микрофон чтобы при помощи него измерять реальную АЧХ системы. Знаю как сделать высококачественный эквалайзер, ориентировочно на 128 полос чтобы затем выдать любую требуемую АЧХ на каждый динамик. И знаю как это сделать максимально оптимизированно чтобы отлично работало в реальном времени на довольно слабеньком компьютере. Знаю какие тестовые сигналы должна подавать программа чтобы проанализировать систему и выработать под неё идеальные настройки.

Это всё для меня уже дело техники.
======

Планирую всё это дело очень неспеша - в этом месяце куплю звуковую карту, еще через месяц компьютер и еще через месяц усилители. Затем еще через какое-то время динамики. Ну а в течение этого периода потихоньку подготовлю ПО.

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 27 июл 2017, 09:58

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

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 27 июл 2017, 10:13

Вот еще подумал - операционка не обязательно винда, можно и под линукс. Это возможно получится дешевле и надежней - будет достаточно более слабого компа. Программировать звук под линуксом у меня пока опыта нет но всё можно погуглить и насколько я уже интересовался все там довольно просто.

Еще возможен вариант под андроид. Комп будет еще дешевле. Хотя наверное так мелочиться уже нет смысла поскольку всё остальное будет значительно дороже чем комп.

Еще в самом начале я рассматривал вариант со специализированными DSP-процессорами но быстро от него отказался - они как правило очень дорогие, а программировать их на свое усмотрение скорей всего не получится, только использовать фирменное ПО. А значит и автонастройку сделать не получится, да и вообще не получится запрограммировать под себя чтобы получить наиболее удобный в использовании продукт. В общем этот вариант отпал почти сразу и я сошелся на компьютере вместо DSP-процессора.

К тому же к компьютеру запросто подключается дисплей и тогда он по совместительству становится автомобильным мультимедийным центром - не только звук но и видео. И даже в простенькие игрушки играть можно :)

Правда видео и игрушки будут не с супер звуком, потому что для супер звука понадобится вся производительность компа, так что суперзвук будет только специально для меломана - то есть для меня :) А детишкам мультики смотреть и в игрушки играть пойдет и с обычным звуком. В общем и в целом получится не дорого и круто :)

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 03 авг 2017, 09:45

Программная часть готова. Осталось купить железо.
Программная часть представляет из себя цифровые фильтры с любой заданной АЧХ. Аналоговыми средствами реализовать такие фильтры невозможно в принципе. Всё что можно сделать на аналоговых LC и RC звеньях имеет очень характерные присущие этим звеньям АЧХ и создать из их комбинации любую желаемую АЧХ практически невозможно. КРоме того LC и RC звенья дают сильные фазовые искажения сигнала.

Цифровой фильтр этих недостатков полностью лишен - он позволяет получить абсолютно любую заданную АЧХ, вплоть до того что нарисуем кривую от руки и получим фильтр имеющий в точности такую АЧХ. И кроме прочего в цифровом фильтре отсутствуют фазовые искажения - так если разложить таким фильтром сигнал на частотные полосы а затем просуммировать эти полосы то получим на выходе абсолютно точный исходный сигнал. На аналоговых фильтрах подобное невозможно - исходный сигнал в любом случае необратимо теряется а на выходе всегда лишь его подобие на слух но нет точной физической идентичности - сложив все частотные полосы после аналоговых фильтров на осцилограмме мы получим совершенно другую форму сигнала, не имеющую ничего общего с исходной.

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

А вот с цифровыми фильтрами всё решается довольно тривиально. Кроме того цифровые фильтры довольно хорошо поддаются оптимизации (путем математической операции свертки) что позволяет их эффективно реализовать на довольно скромных вычислительных ресурсах, при этом с сохранением отличного качества сигнала. Так что всё должно получиться.

Заодно по ходу пока занимался этими фильтрами разобрался со сверточными ревербераторами - понял принцип. А принцип там практически такой же как в цифровом фильтре, проблема только раньше у меня была в том что я не понимал как можно реализовать импульсный ревербератор в реальном времени на реальных вычислительных ресурсах - слишком уж большой объем вычислений требовался. А теперь стало ясно - никто не использует импульсную реверберацию напрямую а используют сверточные (конволюционные) ревербераторы - которые почти в точности повторяют ту же импульсную картину но в десятки раз меньшими вычислительными ресурсами. Короче говоря математика рулит. Теперь мне не нужно покупать лицензионный конволюционный VST-ревербератор для музыки - я могу теперь запросто бесплатно сделать свой. Вот так вот бывает - занимаешься одним а заодно получаешь полезный опыт и знания и в других смежных областях.

Конечно за всё спасибо интернету - учебники по высшей математике которые когда-то пришлось бы искать по всему городу по библиотекам сегодня доступны в пару кликов. Не понимаю зачем сегодня нужны учебные заведения - благодаря интернету гораздо больше можно научиться самообразованием :)

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 13 авг 2017, 14:59

Пришла интересная идея - попробовать кроме описанного выше компенсировать нелинейные искажения динамиков. Это было бы круто и сделало бы звук совсем уж идеальным.

Известно что нелинейные искажения динамиков имеют величину до 2% от уровня сигнала. Это очень сильные искажения. Даже самый плохонький усилитель обычно не доходит до такого уровня нелинейных искажений. А современные усилители обычно имеют коэффициент нелинейных искажений до 0.01 % и меньше. То есть электроника как правило выдает практически идеальный звук но вся проблема в том что динамики не в состоянии идеально воспроизвести его. И кривая АЧХ это еще полбеды - нелинейные искажения динамиков на самом деле портят звук куда сильней чем кривая АЧХ.

Поскольку в моем случае будет применена компьютерная обработка звука то сам бог велел попытаться реализовать кроме прочего еще и компенсацию нелинейных искажений динамиков.

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

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

Я решил использовать для этого генетический алгоритм. Суть не сложная - мы подаём на динамик синусоиду и с помощью микрофона измеряем спектр сигнала излучаемого динамиком. В идеале это должна быть одна единственная частота. Но на практике - поскольку динамик даёт нелинейные искажения - кроме заданной частоты появятся дополнительные. По амплитуде этих паразитных возникших частот программа оценивает коэффициент нелинейных искажений и методами генетичекого алгоритма генерирует различные варианты предварительных искажений и оценивает коэффициент нелинейных искажений после этого - варианты в которых коэффициен искажений выше осеиваются а в которых ниже отбираются и на их основе генерируются новые варианты - короче реализуется "естественный отбор" и постепенно поколение за поколением отбираются варианты со всё меньшим и меньшим количеством нелинейных искажений на выходе. ТАким образом обычно через несколько сотен поколений будет найден вариант с практически 0% нелинейных искажений на выходе.

Аватара пользователя
BDK
Сообщения: 3527
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 149 раз
Поблагодарили: 368 раз

Re: Авто звук

Сообщение BDK » 24 авг 2017, 10:47

Динамики буду брать коаксиальные 3-х полосные. Типа этих:
https://catalog.onliner.by/carspeakers/ ... n_tsr6950s
http://www.migom.by/Supra-SSB-69-817369/

С сабвуфером еще не определился.