LINUX.ORG.RU

Хочу активную систему шумоподавления НЧ

 


0

1

Задача немного специфическая, не хочу вдаваться в детали, но общая идея такая: есть микрофон и динамик. Нужно как можно быстрее обработать звук (что-то типа многополосной фильтрации и линии задержки) и выдать его на динамик. И вопрос: какое оборудование использовать, чтобы уложиться в 1мс на круг, а ещё лучше в 500мкс? Частота оцифровки не слишком важна, разрядность - видимо нужно больше 8, но не знаю, сколько. Я знаю, что в АЦП/ЦАП есть свои конструктивно обусловленные задержки, и это не говоря про задержки самого обсчёта. В голову пришли: большой компьютер, но пока не получалось меньше 3мс на обычных ОС и драйверах, на встроенной аудоикарте. RPI и иже с ними - тут вопрос в задержках на ЦАПах. Также L-Card. E-154 в пластиковом корпусе, могут быть наводки, и стоит уже немало. Зато её можно программировать.

★★★★★

А был вроде такой гитарный процессор на базе MS-DOS, то ли режима эмуляции командной строки Windows, то ли он как ОС на голом железе PC запускался. Не могу нагуглить.

den73 ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Нашёл вот тут кое-что:

https://infania.net/misc/simtelnet/msdos/sound.html

И там ищем «Real time sound effects for AD1848 based cards»

Но это не совсем то. Идея в том, что дешёвые встроенные карты могут иметь меньшую задержку ЦАП и АЦП, поскольку чем выше качество фильтра, тем больше задержка. Лучшую задержку я пока получил на встроенной карте ESS, но это 2025 год, а тут речь идёт про 1993 - может быть, тогда всё было ещё проще и быстрее.

den73 ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Вряд ли они есть именно под мою задачу, т.к. я даже задачу ещё толком не могу поставить, но она точно не особо популярна. Я вспомнил, ещё есть китайские DIY комплекты для гитары. В принципе в типичной цифровой педальке с АЦП-обработкой-ЦАП задержки на круг 1-3 мс, как я понял. Но в принципе конечно можно прогуглить именно «системы активного шумоподавления».

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от futurama

И какую задержку получить? Тут возникла идея, что нужное (а именно по сути дела это фильтрация сигнала и сдвиги по времени) можно попробовать нарушить на карточках RME, там по сути дела встроенный микшер. Или раскошелиться на что-то типа Allen & Heath CQ12T Там DSP обработка на ПЛИС и задержку обещают менее 700мкс.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 3)

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

den73 ★★★★★
() автор топика

Ну блина

Такие задачи, надо начинать с постановки задачи. А то окажется, что описанные в сабже пути её решения, вообще не туда. А оно так и окажется.

James_Holden ★★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)

АЦП/ЦАП есть свои конструктивно обусловленные задержки

Вообще не при чем. Фильтр типичный для фильтрации звука в зависимости от порядка дает задержку 100-200 отсчетов. Если цифруешь в 196 кГц к примеру это ~ 1мс. Видимо фильтров в цепочке обработки понадобится несколько разных. Таким образом нужна частота оцифровки повыше чем дают топовые звуковухи. Нужно решение на ADC+FPGA или LimeSDR (там от 100кГц оцифровка) или на чем то подобном. Цифруешь в 480кГц, обрабатываешь, децимируешь(с фильтрацией) в 24кГц. Пихаешь результат в ASIO звуковуху (может тоже понадобится кастомное решение). Ну или цифруешь в 48кГц, передескретизируешь в 480кГц(опять же с фильтраций, которая даст задержку) и дальше так же. То есть цифровая обработка сигнала сама по себе дает неустранимую задержку.

anonymous
()
Ответ на: комментарий от cobold

Это будет зависеть от частоты сигнала

там есть расчёт фильтра Баттерворта. У него линейность очень неплохая. А можешь даже активный фильтра сделать на ОУ. Так и гугли «автиынй фильтр ОУ». Они несложные.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, круто. Мне только одно непонятно - в пультах A&H заявлена частота 96кГц и задержка 0,7мс якобы на круг. Если это не рекламное заявление, как они этого добились? И бывает ли нетипичный фильтр? Я специально задал именно такой вопрос, т.к. предположил, что плохие звуковые карты имеют звук похуже, фильтр победнее, задержка поменьше. Не? Но в общем я понял, что проект далеко превосходит мой уровень владения предметом. Я думал, купить сабвуфер закрытый типа Чёрной Вдовы, и что-то сделать на базе обычной звуковой карты. Но из-за задержек явно это будет как минимум ограничено совсем низкими частотами порядка 100 Герц, или вообще ничего не выйдет. Синусоиде задержки не страшны, но глушить надо не синусоиду, а интегральный сигнал с переходами, и это получается недоступным. Т.е. - либо аналог, но схема заранее не известна, т.к. это не совсем шумоподавление, а паять не умею.

Ну хотя, если моё решение можно составить из фильтров и задержек, могут подойти аналоговые приборы звуковой обработки, например, микшерный пульт. Только не знаю, существуют ли линии задержки с задержкой в малые доли миллисекунд. Ведь если цифровая обработка занимает не менее 1 мс, то вот и минимум задержки. Прям хоть пружины городи.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 4)
Ответ на: комментарий от anonymous

Дипсик советовал DSP чипы, такие, как ADAU1701 и TMS320C5505, проект FreeDSP. Очевидно, тут надо уменьшать время ЦАП-АЦП за счёт упрощения фильтрации - это же система не для прослушивания звука и требования к частотному диапазону совсем другие - нужно пропускать где-то до 1 кГц. А более высокочастотная часть вообще не нужна, и её можно пытаться уже в аналоге после ЦАП подавить, в меру моих незнаний. Есть, конечно, небольшая вероятность, что досовские карты подойдут для этой задачи, но зачем они, если DSP достаточно дёшевы.

den73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не прошёл капчу :) Смысл в активной системе шумоподавления, что она должна услышать сигнал и дать такой же в противофазе. Это надо успеть. 1000 герц - это период колебаний 1 мс. Чтобы отразить, нужно (наверное) ну хотя бы за 0,25мс обернуться, пока сигнал нарастает от нуля до пика. Если цикл АЦП-ЦАП уже занимает 1мс (а он занимает именно столько или больше в звуковых картах), то шансов нет. Бесконечный синосуидальный сигнал мы таким оборудованием отразим, а конечный - нет.

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

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

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

Но у меня вообще задача изначально была другая: у меня есть вокальная кабинка, а считается, что «голосу нужен простор». Вот я и хотел построить систему, которая имитирует окно в этот простор. И здесь нет возможности поставить микрофон на метр впереди динамика. По сути дела решил с этим не связываться. Просто надо использовать другие помещения :)

den73 ★★★★★
() автор топика

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

Другой вариант — предусмотреть, что задержка будет в любом случае и учесть это в самом алгоритме. Со сдвигом фаз всё равно нужно будет играться, что с задержкой, что без.

Третий момент. А что за задача? Всё равно ведь не получится шумоподавление нигде, кроме в одной конкретной точке: непосредственно у микрофона.

Waterlaz ★★★★★
()
Ответ на: комментарий от den73

Смысл в активной системе шумоподавления, что она должна услышать сигнал и дать такой же в противофазе. Это надо успеть. 1000 герц - это период колебаний 1 мс. Чтобы отразить, нужно (наверное) ну хотя бы за 0,25мс обернуться, пока сигнал нарастает от нуля до пика. Если цикл АЦП-ЦАП уже занимает 1мс (а он занимает именно столько или больше в звуковых картах), то шансов нет. Бесконечный синосуидальный сигнал мы таким оборудованием отразим, а конечный - нет.

Ни один шумодав так не будет работать. Любой динамик вертит фазу довольно сильно. И в области нижних частот особенно сильно, хотя и предсказуемо. Задержки более 1мс на 100-200Гц и так будут просто исходя из физики.

Waterlaz ★★★★★
()
Ответ на: комментарий от anonymous

Ну в целом эта история имеет место быть. Битлз записывались в помещении размером со школьный спортзал, где нет проблемы «коробчатости». С тех пор многое поменялось и теперь вокал записывают в заглушенных кабинках небольшого размера. У меня совсем маленькая, но и на хороших студиях эти кабинки маленькие. Это обязано сказываться на записях. Когда я стал вникать в этот вопрос, я стал везде слышать «коробчатость». Возможно, это самовнушение. Но прибора для замера коробчатости не создано пока что, и единиц измерения нет, и что она из себя представляет - тоже науке неизвестно. Обсуждение этого вопроса на специализированном форуме закончилось тем, что меня забанили :) Тем не менее, люди слушают пение, записанное в маленьких помещениях, и эти песни становятся хитами. Значит, мозг этих аборигенов адаптировался к звуку этого водопада.

Остаётся один вопрос, может быть и мне тоже так можно, буду петь в комнате не 4х4, а 1х1, зато бесплатно. Профит же.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 3)
Ответ на: комментарий от den73

Но у меня вообще задача изначально была другая: у меня есть вокальная кабинка, а считается, что «голосу нужен простор». Вот я и хотел построить систему, которая имитирует окно в этот простор. И здесь нет возможности поставить микрофон на метр впереди динамика. По сути дела решил с этим не связываться.

Вообще не очень понятно, что тут должно получиться, но кажется мне, что DSP с низкой битностью будет только срать шумами в кабинку. Ну и если уж на то пошло, то всё, что тут можно пытаться накрутить связкой микрофон-динамик не проще ли сделать потом в постобработке?

Waterlaz ★★★★★
()
Ответ на: комментарий от Waterlaz

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

den73 ★★★★★
() автор топика
Ответ на: комментарий от Waterlaz

Слышал мнение, что нельзя накрутить потом. И тут ещё нужно учитывать, что я управляю тембром, мне нужно слышать свой настоящий голос, а не сдавленный коробкой сразу во время пения, а не потом. И ещё у меня есть версия, что звук становится реально физически другим, т.к. коробка просто не даёт волнам НЧ свободно распространяться, ввиду этого они сразу приобретают не ту форму. Просто можно сравнить объём кабинки с объёмом области повышенного давления вокруг точки излучения звука при частоте 100 герц - она представляет из себя сферу радиусом полтора метра. Т.е заведомо не помещается в объём кабинки. Значит, кабинка будет раздуваться-сдуваться, если она не идеально жёсткая. Исказится соотношение между амплитудой по давлению и амплитудой по перемещению звука. Сам звук изначально другой получается.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от den73

Идея была в том, чтобы динамиком симулировать приоткрытое окошко, которое даст недостающий объём. Но это слишком сложно. И главное, неясно, как оценивать результат. Я вообще факт проблемы искажения тембра в кабинке скорее умом понимаю, чем ушами слышу. Т.е. я не знаю, как должен звучать голос, и поэтому не смогу наладить эту систему, даже если её и сделать. Т.е. нефиг этим заниматься.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

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

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

Waterlaz ★★★★★
()
Ответ на: комментарий от den73

Это не реально реализовать.

Тут надо решать по другому, я думаю. Это вопрос заглушенности кабинки. Она должна быть максимально заглушена. Что со звуком делает «окошко»? Оно полностью пропускает через себя приходящую на него волну, ничего не возвращая взамен. Теоретически, идеально поглощающая панель будет работать эквивалентно окну в бесконечность. То есть, надо обложиться максимально сильно поглощающими панелями.

Но тогда ты не будешь слышать нормально свой голос. Поэтому, надо подавать сигнал с микрофона через эмулятор помещения на основе IR в наушники для мониторинга голоса.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

И тут встаёт вопрос, как именно заглушить 100 герц. Да, я пою с искусственным эхом или ревером, и все так делают в заглушенных помещениях. Не обязательно на базе IR. Тем не менее, есть мнение, что это не помогает и маленькая кабинка всё равно портит звук, поскольку заглушить 100 герц нереально.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от den73

И тут встаёт вопрос, как именно заглушить 100 герц.

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

Waterlaz ★★★★★
()
Ответ на: комментарий от den73

Не на 100% уверен, что нереально, но тут мне подоспели на помощь акустики и они говорят только о снижении времени реверберации до, допустим, 300мс и меньше, т.е. за 300мс сигнал должен упасть на 20дб (что-то типа в 10 раз, если я не путаю). Что такое 300мс при частоте 100 герц? Это 30 колебаний. Называется ли это «окошком в бесконечность»? Отнюдь, даже не близко. Для такого заглушения нужно, если я правильно понимаю, порядка 30 см минеральной ваты. Вопрос: сколько нужно минеральной ваты для «окошка в бесконечность»?

den73 ★★★★★
() автор топика
Ответ на: комментарий от Waterlaz

Нереально, т.к. звук уже приходит искажённым. Надо решить обратную задачу, «как бы выглядел звук без искажений». Звук движется по фазе, это зависит от частоты. При том, если сдвинуться, скажем, на 5см, картина искажений меняется.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от Waterlaz

Он смещён по фазе к тому же, и вид этого смещения резко зависит от частоты и положения источника и приёмника звука в пространстве. Кроме того, на громких звуках кабинка начинает нелинейно деформироваться, дребезжать. Ад, иными словами.

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Не, ну теоретически это может быть возможно. Тут ещё такой вопрос, что звук - это волна давления и волна смещения. При наличии отражений и препятствий соотношение между этими параметрами наверняка меняется, что-то там может поворачивать. А мембрана микрофона тоже из этого выбирает что-то своё.

Например, я вот не знаю. Сабвуфер издаёт звук, на расстоянии 1м амплитуда смещения, допустим, 10 мкм, а амплитуда давления 0.01Па. А что происходит прямо у сабвуфера? Ясно, должна быть какая-то взаимосвязь с параметрами вдали, но как она распредлеена между давлением и амплитудой? Наверное, кто-то это знает, но не я. А дальше следующая задача - ставим микрофон. Прямо, под углом. Напротив сабвуфера или сбоку. Получаем всё разное.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Так микрофон будет отклик кабинки писать, если его физически не подавить.

Так и пусть пишет. Кабинка максимально заглушена. От буста низких частот это нас не избавляет. Их глушим ФВЧ.

Waterlaz ★★★★★
()