Обновить
184

Человек

104
Подписчики
Отправить сообщение

Я бы уточнил, что в теореме идёт речь о свёртке с функцией sinc, а не визуальной оценке отсчётов.

Направление в 2D-плоскости разумеется. Для 3D их 4 штуки потребуется в узлах тетраэдра.

STFT. Для каждой пары частот исходя из их фазы и амплитуды можно определить направление и частично расстояние. Если интересует конкретная реализация - можно установить аудиоплеер foobar и скачать для него плагин triple stereo. Там аналогичным образом выделяется фантомный центр.

Поддержу автора. Не надо бояться делать что-то своё. Я вот например уже лет 10 пилю аналог NI Reaktor, в котором реализовано всё то, что мне не хватало - открытая архитектура, спектральный анализ, импульсные ревербераторы, VST, возможность ввода/вывода на несколько аудиоустройств одновременно (в том числе и принципиально разных, типа wasapi и asio) (чего я не видел вообще ни у кого).

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

Статья супер, читать было приятно. Автор(ша/ка/или как там сейчас в современном мире принято говорить) молодец.

Тут для одной частоты. На разных частотах вид интеференции будет разный. Чтобы получить именно фронт волны - нужно запускать фильтрованный импульс. Дальше его можно записать в произвольной точке и через FFT (без окна) получить спектр.

(картинку могу показать недели через 3, когда отпуск кончится).

У меня высшее педагогическое образование (учитель информатики). Мы в равных пропорциях изучали алгоритмы/с++/численные методы... и педагогику/психологию/социологию... Гуманитарным наукам я противился, но деваться некуда было. А в последствии оказалось, что в них и была главная ценность - потому что самостоятельно я их осваивать не стал бы и практического опыта не получил бы.

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

Что делать, если школьная программа не устраивает? Очевидно учить самостоятельно тому, что родитель считает нужным. И так, как считает нужным. Но в школу ребёнок пусть ходит. Если вы его хорошо научили - так ему там будет легко и комфортно. И силы будут оставаться, чтобы дома более интересными вещами заниматься. И друзья/подружки будут, живые и настоящие. А не единороги и карлсоны в фантазиях.

  1. Когда вы делаете DFT над действительными числами - то получаете комплексно-сопряжёные числа для противоположных по знаку частот. При перемножении они также останутся комплексно-сопряжёными, поэтому после обратного DFT мнимая часть будет равна нулю плюс-минус погрешности вычислений (в районе 1е-14).

Вот тут есть, по степеням двойки вплоть до 8192. Тригонометрические таблицы уже посчитаны и внедрены в код. Реализация неитеративная, некоторые циклы уже развёрнуты. Авторы утверждают, что их реализация обходит даже FFTW (при прочих равных). Библиотеку разрабатывали специально для встраиваемых систем.

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

А скользящих средних можно взять несколько (последовательно, друг за другом) и получить вполне неплохие характеристики. Например для пропорций длин в 5,6,7,8 получим подавление боковых лепестков примерно в 65 дБ:

Чуть более скромные характеристики, 50 дБ - с пропорциями 1, 9/7, 17/11 :

Здесь спектры я считал для непрерывного случая (без ограничения частотой Найквиста), но для дискретного случая она не будет сильно отличаться. При желании её можно посчитать точно для конкретных длин через периодический sinc.

А зачем автокорреляция, если у нас только одна частота? Можно же просто сдвинуть сигнал вниз по частоте и использовать скользящее среднее в рекурсивной реализации. Получим сразу огибающую и мгновенную частоту (через фазу).

Поток разбивается на блоки равной длины FFT. Изучите для начала алгоритмы overlap-add и overlap-save - так вы сможете считать корреляцию с задержкой.

Чтобы обойти природу - нужно использовать 4 микрофона в узлах тетраэдра, тогда можно будет определять направление в 3D через разность фаз и амплитуд. Математика обработки конечно будет в разы сложнее. Я делал нечто подобное в задаче выделения центра из стерео сигнала или, другими словами, выделение сигнала вдоль конкретного вектора в 2D (а сама математика считается в комплексных числах в частотном домене). Возможности человека в аналогичной задаче результат субъективно превзошёл.

Существует специальная версия ЛЧМ, спектр которой равен константе на всех частотах (за счёт того, что он генерируется через обратное преобразование Фурье). Это значит, что его автокорелляция будет строго единичным импульсом без каких-либо боковых лепестков. Используя технологию дизеринга, его можно дискретизировать вплоть до 1-го бита, а для корреляции использовать инверсию его спектра уже после квантования (а не просто разворачивать во времени).

Свёртку с нулевой задержкой можно делать через FFT - для этого есть специальные алгоритмы. На настольном компьютере я проверял свёртку в реальном времени на 1М семплов при чд 48К (примерно 20 секунд реверберационного импульса) - работало без заиканий. И это не предел, потому что на оптимизацию не заморачивался. На современном смартфоне результат будет чуть хуже, но не на порядки.

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

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

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

Сложившемуся ИТ-специалисту с опытом не нужны ни советы, ни похвала, ни признание. Признание для программиста - это когда его программой пользуются, а не количество лайков под статьёй про эмоциональные переживания. Ну вот у меня уже 4 ЯП накопилось, один из которых используется на металлургическом производстве для автоматизации тех.процессов (потому что я там и работаю) - и это далеко не самое сложное, что мне доводилось делать. Даже просто топологическая сортировка, чтобы зависимости упорядочивать и циклы/обратные связи выявлять - и та сложнее, чем просто текст на токены разбивать. А статьи на хабре про него нет, потому что вне инфраструктуры он не имеет смысла, в критике/новых идеях не нуждается и тратить время на его описание с историей возникновения также не имеет смысла.

В самом начале автор сказал же:

А ещё он сказал "я просто хочу небольшого признания и критики (объективной и конструктивной)", и получил её прямо и честно - как это принято на хабре.

Таких молодых конструкторов

Я не считаю правильным делать скидки на возраст - потому что сам а) выучил ассемблер в 11 лет просто по справочнику и б) некоторые вещи в 15 лет мне давались проще, чем сейчас (а в 16 начал интересоваться сиськами девочками, отрастил волосы и пошёл учиться играть на гитаре).

 Вы сам в малом детстве небось собирали кубики

Если проводить такие аналогии - то вместо собирания кубиков автор проектирует завод по их производству.

наверняка НЕ слышали нравоучений что это бесполезное занятие

Я не сказал, что это бесполезное занятие. Я сказал, что а) у ЯП должна быть идея и б) у автора должен быть реальный опыт программирования для того, чтобы этот ЯП не оказался мертворождённым.

1
23 ...

Информация

В рейтинге
4 436-й
Откуда
Россия
Работает в
Зарегистрирован
Активность