jsn: (Default)
jsn ([personal profile] jsn) wrote2010-06-15 05:03 am

безграмотно-программистское

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

[identity profile] kika.livejournal.com 2010-06-15 01:17 am (UTC)(link)
Небось как у каждого духового инструмента там гармоник навалом и если их всех удавить, то удавится слишком много.
tobotras: (Default)

[personal profile] tobotras 2010-06-15 04:33 am (UTC)(link)
А достаточно зарезать основную, ну его, совершенство :)

[identity profile] kika.livejournal.com 2010-06-15 06:07 am (UTC)(link)
как бе не хуже получилось :-)

[identity profile] jsn.livejournal.com 2010-06-15 07:03 am (UTC)(link)
Да вроде бы народ относительно приемлемо живёт на эквалайзерах даже, то есть узкими нотчами порезать основные вроде бы перспективно. Небось, на scipy за день рисуется, да где ж этот день взять.

[identity profile] oldmann.livejournal.com 2010-06-15 02:09 am (UTC)(link)
я тебе как безграмотный фанат скажу, что на моем секторе за дудки можно выхватить пиздян, безотносительно фильтров и высоких технологий.

[identity profile] jsn.livejournal.com 2010-06-15 07:04 am (UTC)(link)
Ну да, я не стал приводить ссылку на обсуждение темы на reddit programming, потом что там основная часть советов сводилась примерно к этому.

[identity profile] gone-one.livejournal.com 2010-06-15 07:39 am (UTC)(link)
Можно, у меня диплом про такое был ;) FFT, анализ чего там постоянно присутствует и удаление.

[identity profile] jsn.livejournal.com 2010-06-15 10:18 am (UTC)(link)
Интересно. А как постоянно присутствующие выделять? У меня первое движение было бы считать для каждого элемента спектра сигму и мю за какой-то длинный период, но там же должны быть способы сильно проще.

[identity profile] gone-one.livejournal.com 2010-06-15 03:15 pm (UTC)(link)
Да, было бы красиво иметь историю каждой ячейки спектра за несколько секунд-минут, но хранить и обсчитывать такое было бы слишком дорого. Я использовал пару буферов для рекурсивного сглаживания (точнее, экспоненциального сглаживания (http://en.wikipedia.org/wiki/Exponential_smoothing), как правильно называть) - т.е. история каждой ячейки спектра сглаживалась с разными коэффициентами, потом эти несколько величин сопоставлялись, в итоге получался некий разумный усредненный минимум. Выходило весьма резво, на порядок быстрее realtime на ПК, причем позже я этот алгоритм адаптировал для совсем простенькой железки - и говорят, работало.

Могу поискать формулу или код, если интересно ;)

[identity profile] jsn.livejournal.com 2010-06-15 03:26 pm (UTC)(link)
Ну да, вариант с батареей moving average-й мне как раз пришёл в голову первым (я думал, может, что ещё дешевле бывает). Собственно, дешевая наколенная апроксимация мю и сигмы там из этого очевидным образом сооружается -- но я совершенно не представляю себе, как эти штуки себя ведут на реальном звуке, что не берусь судить.

[identity profile] gone-one.livejournal.com 2010-06-15 08:34 pm (UTC)(link)
Ну куда уж дешевле :) Чтобы получалось на реальном звуке, я брал десятка два параметров, которые там можно было крутить, и сутками гонял их генетическим алгоритмом для подбора хороших вариантов.

[identity profile] jsn.livejournal.com 2010-06-15 09:15 pm (UTC)(link)
Ну куда уж дешевле :)

Да, пожалуй -- на фоне FFT по затратам это всё меркнет всё равно. Вот без подбора констант, конечно, приятнее было бы обойтись.

[identity profile] bish0nen.livejournal.com 2010-06-15 08:13 am (UTC)(link)
Тут уже подсуетились и понавыпустили приложений для яблофона, которые эту дудку весьма реалистично озвучивают. Я так думаю, можно было бы тоже подсуетиться и написать counter app, которая будет свистеть в резонанс, чтобы побыстрее избавиться от нездоровых генов у части населения этой планеты.

[identity profile] ktotam.livejournal.com 2010-06-15 11:38 am (UTC)(link)
скаммеры подсуетились уже (google antivuvuzelafilter)

[identity profile] seajey.livejournal.com 2010-06-15 09:30 pm (UTC)(link)
Для линукса и инструкция (http://linuxsound.ru/articles.php?article_id=5) есть.

[identity profile] jsn.livejournal.com 2010-06-15 09:37 pm (UTC)(link)
С эквалайзерами давно известная тема, да.

[identity profile] prokoudine.livejournal.com 2010-06-16 08:46 pm (UTC)(link)
Это не эквалайзер, это именно notch filter :)