LINUX.ORG.RU

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

 


0

2

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

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

Система линейная, поэтому поведение колебаний каждой одной конкретной длины волны рассматриваем отдельно, потом суммируем.

Я уже два раза ответил: телескоп смотрит одновременно на всех длинах волн, в т.ч. на сотнях герц. Лень сейчас искать, на каких частотах поролон начинает поглощать, по памяти - это 800-1000герц. Т.е. до 800 отражения будут. А там длина волны уже другая.

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

Эхо есть. Просто можно взять и провести мысленный эксперимент.

Тест 1: кабинка из металла с идеально отражающими стенками (например, кастрюля на голове) Тест 2: чисто поле

В обоих случаях издаём 100 герц.

Два вопроса:

  • будет ли звук оказывать какое-то воздействие на кастрюлю, например, давление?
  • разное ли запишется на микрофон в 10 см. ото рта?

Можно это не называть эхом, если тебе не нравится. Можно хоть пирожком назвать. Предлагай свои варианты.

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

Вот что пишет дипсик про восприятие фазовых сдвигов:

Когда фаза ВСЕ-ТАКИ важна и может быть услышана?
Есть несколько ключевых исключений, где сдвиг фаз становится слышимым:

Кратковременные (атака) и переходные процессы: В самый момент начала звука (атака), когда фазы всех гармоник синхронизированы определенным образом, это создает резкий, яркий всплеск амплитуды. Если сдвинуть фазы, атака может стать более плавной, "смазанной". Это может быть слышно! Именно фазовая когерентность в момент атаки дает фортепиано или гитаре его четкий, ясный начальный удар.

Случаи сильной интерференции в низкочастотной области:

Если две низкочастотные гармоники (например, 100 Гц и 150 Гц) близки по амплитуде и их фазы сдвинуты, их суммарная волна может существенно изменить форму. Это может привести к ощутимым изменениям в огибающей амплитуды (биениям, "дыханию" звука), которые ухо интерпретирует как изменение амплитуды/громкости во времени.

На очень низких частотах (до 100-150 Гц) ухо, в принципе, чуть более чувствительно к фазе, так как эти гармоники улавливаются не только слуховой системой, но и тактильно.

По идее можно провести эксперимент.

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

Кто это доказал?

Это просто из устройства уха следует. Мы не способны слышать фазу.

Вот тут интересные эксперименты люди проводили: https://www.youtube.com/watch?v=-H6p8Y301k4

Чтобы нормально были слышны фазовые искажения, нужно до абсурда довести.

Там же в описании под видео можно скачать примеры аудио, если интересно самому послушать

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

На очень низких частотах (до 100-150 Гц) ухо, в принципе, чуть более чувствительно к фазе, так как эти гармоники улавливаются не только слуховой системой, но и тактильно.

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

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

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

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

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

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

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

Нет, это только Майкл Джексон так пробовал и стал после этого всемирно известным. You’re not my lover или как-то в этом роде песня. Прежде всего, у меня нет трубы. Ну и для записи на граммофон тоже пели в трубу.

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

Уже записался в большой зал на топовой студии на эту неделю. Спрошу, есть ли у них труба. Рояль и барабаны у них есть точно, трубу пока не видел.

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

В общем ты сам себя в следующем сообщении и опроверг, остаюсь при своём, спорить смысла не вижу.

Где?! о_О

Конечно, я не слышу искажений от нч в колонках, потому что я не слушаю в колонках - я пользуюсь только наушниками.

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

А как свести воедино факт, что мы не можем это слышать, а аудиофилы и звукорежссёры всё же это слышат, сам разберись.

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

Впрочем, я уже процитировал ответ ИИ, который совпадает с моим пониманием.

Ответ ИИ — всегда хлам без отсылки на источник.

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

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

Ну вот звукорежиссеры как-то сводят тебе музыку на мониторах, которые эту саму фазу вертят, как на… ну ты понял.

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

У меня нет ютуба, не могу пройти по твоей ссылки.

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

Опроверг тем, что сослался на жалобы аудиофилов. Можно, конечно, сказать, что все аудиофилы зомбированы маркетингом и реально ничего не слышат, а только воображают, но это будет ещё хуже, чем поверить в твои объяснения, что устройство уха не подразумевает слышания фазы. Как говорил ВИЛ, практика - критерий истины. Я понимаю, почему фаза на НЧ важна, и мне не нужно тебя даже убеждать. Аудиофилы и звукорежиссёры со мной согласны, и ИИ тоже. А ты как хочешь. Да, я личо не проводил слепых тестов со слышанием отличия фазы, но механизм и так понятен.

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

и ИИ тоже

Ага да, а фраза "Когда фаза ВСЕ-ТАКИ важна и может быть услышана?“ совсем-совсем не вопиет о том, что предыдущие ответы ИИшки были в духе «пофиг фаза, не дури мне кастрюлю».

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

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

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

Аудиофилы и звукорежиссёры со мной согласны, и ИИ тоже.

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

Я понимаю, почему фаза на НЧ важна, и мне не нужно тебя даже убеждать.

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

1. А любой фильтр, кроме разве что КИХ фильтра с задержкой, будет вращать фазу. Это математика. То есть любой аналоговый фильтр вращает фазу, 95% фильтров, что звукорежиссеры накручивают, вращают фазу, любое звуковоспроизводящий и/или звукозаписывающее устройство вращает фазу и т.д.

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

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

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

Но главное в том, что у тебя слон в комнате — кривая АЧХ от коморки, но ты упорно не хочешь исправлять очевидное, цепляясь за несущественные мелочи.

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

Ну вот, пришел и спутал тёплое с мягким. Одно дело — разница фаз левого и правого уха, а совсем другое — фазовые искажения, то есть нелинейная* зависимость фазы от частоты, одинаковые для обеих ушей.

* Если фазовый сдвиг линейно зависит от частоты, то это просто задержка сигнала по времени.

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

Ну вот, пришел и спутал тёплое с мягким.

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

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

Главный посыл был что фаза таки имеет значение для восприятия звука человеком.

Нет, вообще не имет. Уши работают не как звуковуха. В ухе улитка, которая резонирует на разных частотах в разных своих частях и от этих частей отведены нервы - один нерв на каждый мелкий кусочек диапазона. На диапазоне примерно до 4000 герц нервы идут часто-часто, а после идут с большими интервалами. поэтому человек никогда не различит 12000 гц и 12010 гц например. Так вот, фазу эта улитка не «видит» ни в каком месте - она возбуждается на определённой частоте только когда уже пришло минимум несколько горбов синуса на этой частоте, фаза для такой грубой машины слишком нежное понятие, в улитке просто нет таких средств - тут АЦП с точными часами нужен чтобв фазу заметить.

Человек заметит сдвиг фаз на частоте 12001 гц при наличии в фоне сигнала 12000 гц и то по причине того, что первый сигнал будет иногда гаситься противофазой первого - то есть по причине влияния на амплитуду. Фазу ухо не поймает ни на какой частоте - даже на 20 гц. Если быстро двигать фазу сигнала частотой 20 гц, то это уже физически перестанет быть 20 гц и спект расширится - ухо поймает имено этот факт «ой чето зазвучало вокруг 20 гц», а не сдвиг фаз.

lesopilorama
()

По сабжу: решение будет низкоуровневым, ни через какое линукс ядротс его задержками такое не пропихнуть. Решение может выглядеть в одном из двух вариантов:

  1. ADC -> ARM/stm32/esp32 cpu -> DAC

  2. ADC -> FPGA (zynq 7010) -> DAC

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

  1. через какое время семплы с ADC появятся в памяти CPU
  2. сколько работает наш алгоритм
  3. сколько времени выданные им семплы в шину i2c или подобную дойдут до физического динамика на выходе DAC

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

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

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

Алгоритм возможно даже будет примитивен и влезет в stm32, не обязательно городить arm. Вся соль в помере задержек и возможности крутить константы.

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

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

При вибрато частота меняется. Если взять гармоники одного и того же сигнала переменной частоты, но в разное время, они будут чуть расстроены. Просто ты не понял мой тонковатый намёк. Дальше объяснять или ты хочешь спорить?

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

Да не собираюсь я этим заниматься, проект закрыт, тут уже идёт обычный флуд. У меня неподалёку есть репбаза с помещением 42 кв.м, хоть и с низким потолком - там вполне можно репетировать, и вчера я там был, вместо того, чтобы тут флудить. Мне понравилось. Таким образом, можно репетировать часть времени дома, тембр дорабатывать на репбазе, а писаться на крутой студии.

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

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

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

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

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

Но нет, FPGA я не буду заниматься сам, и денег нанять специалиста у меня нет. После того, как я не осилил hello, world по FPGA, я туда больше не лазаю.

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

А если речь про музыку, то там главное душа автора и «вайб» произведения, а не качество звука. Кто вспомнит на какой микрофон и как чисто Сергей Шнуров записал песню про говно - глубоко похрен, толпы несут бабки потому что шнур круто йопта! Многие великие фильмы тоже снимались на кусок кала а не на цифровые arri кинокамеры)

Пой песни, мотивирующие к жизни и нивелирующие заботы и проблемы - народ такое любит!

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 2)

Если тебе нужна задержка 500мкс, то проще всего выкинуть Linux и любую другую не RTOS и поставить микроконтроллер с АЦП и ЦАП подключенными по I2S/SPI. А там либо голый цикл «чтение, обработка, запись» (лучше всего первое и последнее делать с использованием DMA), либо RTOS.

Вопрос насколько тяжёлый у тебя алгоритм. Если для МК тяжёлый (даже для всяких 32-битных STM32 с тактовой частотой 180 МГц и выше), я бы ещё рассмотрел вариант с FPGA.

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

Блин, ну как можно быть таким занудным. Берём голос. Вибрато. 220 герц плюс минус 3 герца. В каждый момент сигнал является суммой N синусоид, но частота этих синусоид меняется 7 раз в секунда на +- 3 герца. Их я и называю гармониками, и это правильно. Если 220 герц отстают по фазе на 90 градусов, а 880 - не отстают, то получается, что суммарный сигнал в каждый момент времени чуть расстроен относительно себя самого, допустим, 220.1 герц и 880 ровно. Я об этом и говорил, когда говорил про некратные гармоники. В комнате с реверберацией получается облако звуков разной частоты, когда в нём поют вибрато.

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

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

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

Ничего мне не нужно уже :) Давайте вы сами придумаете новую задачу, интересную всем, раз уж скучно без флуда. Предлагаю задачу, полезную мне:

я слышу телевизор от соседей и мне это мешает спать. Делать ремонт с вынесенной звукоизоляцией пожабился, т.к. минус 5-10 см от размера комнаты и дышать минватой не хотелось.

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

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

Мне тут же на лоре недавно объясняли, что хороший цифровой фильтр перед ЦАП требует до сотен семплов вперёд. Отсюда и задержка. Можно быстрее, но качество будет ниже. Там частота 96кГц, 100 семплов - 1 миллисекунда. Как они могут уложиться в 0.7 на круг - можно задаваться вопросом, где тут обман. Может быть для более высоких частот оцифровки нужно меньше семплов, а может быть дело в пересемплировании (оверсемплинге).

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

Они не виноваты, что стены из дерьма и место тихое, шум с улицы не заглушает. Я с ними говорил, они делали тише. Не телевизор шумный, а мне так не повезло. Кроме того, это уголовщина и одного уже на таком поймали.

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

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

В теории, теория и практика совпадают, но на практике между ними наблюдаются заметные расхождения.

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

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

При вибрато частота меняется. Если взять гармоники одного и того же сигнала переменной частоты, но в разное время, они будут чуть расстроены. Просто ты не понял мой тонковатый намёк. Дальше объяснять или ты хочешь спорить?

Нет, дальше я тебе продолжу объяснять, потому что ты опять всё путаешь. Чтобы сделать вибрато, обработав сигнал, в котором его изначально не было, нужно применить нелинейное преобразование. Постоянный сдвиг фазы — линейное преобразование, новые гармоники не добавляет и вибрато не делает.

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

Во-вторых, люди слышат разницу в атаке низкочастотных инструментов.

Атака НЧ — средние и высокие частоты. Сюрприз, да?

Например, в случае увеличения размера басового динамика и при соотествующей перенастройке фазоинвертера на более низкую резонансную частоту

Размеры динамика ты никак не услышишь. Перенастройка фазоинвертора сильно поменяет АЧХ, прямо очень сильно.

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

Во-первых, человек воспринимает НЧ не только ушами.

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

lesopilorama
()