Comments 52
У спектра чистого лампового синуса шум что ли на уровне -48дБ? Или что это?
+2
Преобразование Фурье конечной выборки эквивалентно оконному преобразованию с прямоугольным окном. То есть мы взяли бесконечную синусоиду и умножили ее на прямоугольную функцию. Преобразование Фурье произведения равно свертке преобразований каждой. Преобразование бесконечной синусоиды «хорошее», а вот прямоугольной функции не очень, оно равно sinc = sin(x)/x. На графике именно она дает такой вклад.
А если на пальцах — это из-за не кратных периодов анализируемой функции и гармоник преобразования Фурье. «Шерсть» у автора, видимо, тоже оттуда же, где-то лучше совпадение, где-то не очень.
А если на пальцах — это из-за не кратных периодов анализируемой функции и гармоник преобразования Фурье. «Шерсть» у автора, видимо, тоже оттуда же, где-то лучше совпадение, где-то не очень.
+4
хмм, свертка sinc с преобразованием синуса (пара дельта-функций) даст пару sinc-ов, в области f > 0 — один смещенный sinc
для 100 Гц и 2 с, если не напутал
www.wolframalpha.com/input/?i=cos%28628t%29*rect%28t%2F4%29+fourier+transform
Вопрос: как audacity получает свой ровненький спектр?
для 100 Гц и 2 с, если не напутал
www.wolframalpha.com/input/?i=cos%28628t%29*rect%28t%2F4%29+fourier+transform
Вопрос: как audacity получает свой ровненький спектр?
+2
Мне кажется, что audacity просто закрашивает по локальным максимумам sinc
+1
Вероятно, там для получения спектра используется не просто преобразование Фурье от всего файла, а что-нибудь типа периодограммы. Грубо говоря, сигнал бьется на куски, от каждого из них вычисляется квадрат модуля от БПФ, полученные результаты усредняются. При таком подходе реально видно, что спектр шума стремится к сплошному, а не гуляет туда-сюда.
+1
48 dB = 2^16
То есть это шум дискретизации 16-битного формата, используемого автором.
То есть это шум дискретизации 16-битного формата, используемого автором.
0
UFO just landed and posted this here
Я правильно понял, если сложить синусы 25, 75, 125 и так далее до частоты дискретизации, при этом амплитуда обратно пропорциональна частоте, то мы получим на выходе меандр?
0
Почти. Для идеального меандра потребуется бесконечность синусоид. А чтобы получить дискретизированный меандр, нужно складывать синусоиды заметно превышающих частоту дискретизации, хотя бы раз в 8. Впрочем, если точно известно, что исходный непрерывный сигнал прямоугольный, то можно восстановить его и по гармоникам с меньшей частотой.
+1
Спасибо за статью!
Дошел до
и сразу проскролил ставить плюс :-))
Вы хорошо пишите, с юмором и просто. Приятно читать!
И все-же проскакивают фразочки, которые внезапно заставляют вернуться из мира пушистых математических котиков в суровый реальный мир и напрячь корку, как то:
Дошел до
Меандр курильщика
и сразу проскролил ставить плюс :-))
Вы хорошо пишите, с юмором и просто. Приятно читать!
И все-же проскакивают фразочки, которые внезапно заставляют вернуться из мира пушистых математических котиков в суровый реальный мир и напрячь корку, как то:
Величина, выраженная в децибелах, численно равна десятичному логарифму безразмерного отношения физической величины к одноимённой физической величине, принимаемой за исходную, умноженному на десять
+2
Так последнее — это цитата из википедии :)
0
Ну, я так и подумал, что вы кого-то процитировали :-)
0
Забавно:
И у вас в профиле:
Нестыковочка'с :)
И все-же проскакивают фразочки, которые внезапно заставляют вернуться из мира пушистых математических котиков в суровый реальный мир и напрячь корку...
И у вас в профиле:
Защитил диссертацию в аспирантуре на мат-мехе.
Нестыковочка'с :)
0
dB = 10 lg(«Разы») — это для квадрата амплитуды (мощности).
+1
Т.е.?
0
То есть надо исправить на 20*log10(A / A0). Тот же 16-битовый АЦП даёт, как известно, 96 дБ, а это 20*16*log10(2). В той же Википедии ниже идёт объяснение разницы между 10 и 20. В итоге нам без разницы: по мощности ли, по напряжению — децибел он и есть децибел. Видимо децибелы были придуманы для мощностей, а для амплитуд — это уже следствие.
0
Большое спасибо за статью! Буду с радостью ожидать продолжение!
Могу порекомендовать для тех, кто больше заинтересовался компьютерной музыкой и её оцифровкой книгу Curtis Roads — The Computer Music Tutorial.
В интернете есть в не очень хорошем качестве, но читать можно и нужно.
Пусть слово «Tutorial» не вводит в заблуждение — это талмуд размером в 1200 страниц, в котором очень подробно объясняются все алгоритмы генерации, параметры звука, а в конце есть дополнения, в которых подробно рассматривается математическя сторона преобразований Фурье и прочих особенностях цифрового звука.
Могу порекомендовать для тех, кто больше заинтересовался компьютерной музыкой и её оцифровкой книгу Curtis Roads — The Computer Music Tutorial.
В интернете есть в не очень хорошем качестве, но читать можно и нужно.
Пусть слово «Tutorial» не вводит в заблуждение — это талмуд размером в 1200 страниц, в котором очень подробно объясняются все алгоритмы генерации, параметры звука, а в конце есть дополнения, в которых подробно рассматривается математическя сторона преобразований Фурье и прочих особенностях цифрового звука.
+1
кстати к теме обработки сигналов, на курсере скоро стартанет курс по сабжу https://www.coursera.org/course/dsp
0
Сергиенко, кстати, вполне понятно пишет по обработке сигналов.
P.S. В данном случае спектрограммы красивее смотрелись бы в линейном масштабе по оси Y. А то в логарифмическом вылезает всякая дрянь.
P.S. В данном случае спектрограммы красивее смотрелись бы в линейном масштабе по оси Y. А то в логарифмическом вылезает всякая дрянь.
+1
Пост годный, но надо в него добавить как можно больше примеров восхитительной фильтрации!
Фильтрация изображений, коммуникационных сигналов, сигналов радаров и т.п. -)
В духе до и после. Так слепой, а так всевидящий!
Фильтрация изображений, коммуникационных сигналов, сигналов радаров и т.п. -)
В духе до и после. Так слепой, а так всевидящий!
0
По фильтрации можно написать отдельный пост. Однако я не владею должным образом темой :(
+1
Ну тогда больше развеселых методов частотного анализа, а не только Фурье -)
Или же по фурье ТОП5 наикрутейших алгоритмов.
Или же по фурье ТОП5 наикрутейших алгоритмов.
0
ООО! А еще же тема аппаратного ускорения частотных преобразований и фильтрации — вообще не копана!
0
Тут гораздо интереснее «приземлить» математику на реальную жизнь.
Например:
говорят, что «тёплый ламповый звук» обусловлен тем, что ламповые усилители вносят искажения в чётных гармониках, в отличие от полупроводниковых, которые гадят на нечётных.
Что это значит для художников?
Да вот то, что ламповый усилитель «сглаживает» и «скругляет» форму сигнала. А полупроводниковый наоборот, делает её более «угловатой», похожей на меандр.
А что то же самое значит для музыкантов?
То, что ламповый усилитель к чистому звуку добавит октавы (каждая целая октава = удвоение частоты).
А полупроводниковый туда добавит квинты (каждая квинта = полторы частоты).
Ещё интересно: на очень высоких нотах сложно различить тембры различных инструментов.
А это на самом деле прямое следствие теоремы Котельникова. Тембр — это смесь разных гармоник (у подавляющего большинства инструментов наиболее выражен основной тон, т.е. первая гармоника).
Если взять на любом инструменте, скажем, «ля» шестой октавы — это частота 14080 герц в первой гармонике. А если возможность человеческого слуха ограничена, скажем 30кГц — это значит, что фактически для звуков с частотой от 15кГц до 30кГц он услышит только первую гармонику. А все остальные, которые как раз и передают тембр, окажутся отрезанными естественным фильтром ВЧ.
Например:
говорят, что «тёплый ламповый звук» обусловлен тем, что ламповые усилители вносят искажения в чётных гармониках, в отличие от полупроводниковых, которые гадят на нечётных.
Что это значит для художников?
Да вот то, что ламповый усилитель «сглаживает» и «скругляет» форму сигнала. А полупроводниковый наоборот, делает её более «угловатой», похожей на меандр.
А что то же самое значит для музыкантов?
То, что ламповый усилитель к чистому звуку добавит октавы (каждая целая октава = удвоение частоты).
А полупроводниковый туда добавит квинты (каждая квинта = полторы частоты).
Ещё интересно: на очень высоких нотах сложно различить тембры различных инструментов.
А это на самом деле прямое следствие теоремы Котельникова. Тембр — это смесь разных гармоник (у подавляющего большинства инструментов наиболее выражен основной тон, т.е. первая гармоника).
Если взять на любом инструменте, скажем, «ля» шестой октавы — это частота 14080 герц в первой гармонике. А если возможность человеческого слуха ограничена, скажем 30кГц — это значит, что фактически для звуков с частотой от 15кГц до 30кГц он услышит только первую гармонику. А все остальные, которые как раз и передают тембр, окажутся отрезанными естественным фильтром ВЧ.
+2
Почему-то который раз не раскрывается зачем вообще это все в простым смертным программистам. А смысл довольно прост (простите дилетанта если что):
Очень много нужных и полезных преобразований сводится к свертке. Свертка — это когда есть input[1024], есть filter[100], output считаем как-то так:
Примеры таких преобразований — фильтры blur и sharpen для картинок, всякие эквалайзеры и реверберация для звука, и еще много чего.
В тупую (как выше), свертка требует O(sizeof(input) * sizeof(filter)) операций. Грубо говоря для blur-а 3x3 пикселя еще терпимо, а при 100x100 будет уже печально.
Чтобы стало побыстрее, используют немного матана:
Во-первых свертка преобразованного в фурье фильтра с преобразованным в фурье сигналом — это перемножение каждого с каждым элементов входного массива и фильтра. Это как ручки на эквалайзере примерно — умножаем ручку для определенный частоты, на частоту входа. Т.е. если есть input и filter в фурье-пространстве, мы можем делать свертку за O(N).
Во-вторых был придуман алгоритм быстрого преобразования фурье, который действует за N*Log(N) от размера входного сигнала. Обратное преобразование вообще делается за O(N)
Короче это все применяется чтобы из O(N*M), получить O(N*log(N)). Скажем blur-у после такого становится все равно какого он радиуса — будет считаться с одинаковой скоростью.
Но не все так гладко: фурье-преобразование математически правильно делать только на бесконечном периодическом сигнале. Поэтому сверху надо еще немного матана в виде оконных функций — это уберет всякий совсем уж мусор, но совсем честно оно работать не станет все равно.
Очень много нужных и полезных преобразований сводится к свертке. Свертка — это когда есть input[1024], есть filter[100], output считаем как-то так:
for(int x = 0; x < 1024; x++) { sum = 0; for(int n = 0; n < 100; n++) { sum += input[x] * filter[x + n] } output[x] = sum }
Примеры таких преобразований — фильтры blur и sharpen для картинок, всякие эквалайзеры и реверберация для звука, и еще много чего.
В тупую (как выше), свертка требует O(sizeof(input) * sizeof(filter)) операций. Грубо говоря для blur-а 3x3 пикселя еще терпимо, а при 100x100 будет уже печально.
Чтобы стало побыстрее, используют немного матана:
Во-первых свертка преобразованного в фурье фильтра с преобразованным в фурье сигналом — это перемножение каждого с каждым элементов входного массива и фильтра. Это как ручки на эквалайзере примерно — умножаем ручку для определенный частоты, на частоту входа. Т.е. если есть input и filter в фурье-пространстве, мы можем делать свертку за O(N).
Во-вторых был придуман алгоритм быстрого преобразования фурье, который действует за N*Log(N) от размера входного сигнала. Обратное преобразование вообще делается за O(N)
Короче это все применяется чтобы из O(N*M), получить O(N*log(N)). Скажем blur-у после такого становится все равно какого он радиуса — будет считаться с одинаковой скоростью.
Но не все так гладко: фурье-преобразование математически правильно делать только на бесконечном периодическом сигнале. Поэтому сверху надо еще немного матана в виде оконных функций — это уберет всякий совсем уж мусор, но совсем честно оно работать не станет все равно.
+2
Я даже боюсь представить, где используется комплексное преобразование Фурье
Странно видеть такую фразу в статье, где в первом предложении фигурирует аббревиатура «ЦОС». Вот в этой самой ЦОС и используется, направо и налево, причем как прямое, так и обратное.
0
Имелось в виду комплексные входные данные, но потом вспомнил что при обработке изображений
0
Почитайте про аналичитические сигналы, про квадратурное представление сигналов. Как правило, цифровая обработка радиосигнала производится на «нулевой частоте» в квадратурном представлении.
0
Вообще говоря, в общем случае нельзя напрямую брать БПФ случайного сигнала. Согласно теореме Хинчина-Колмогорова для оценки спектральной плотности мощности случайного сигнала, надо взять БПФ от автокорреляционной функции.
0
При измерении напряжений и токов для децибелов берут множитель 20, а АЦП и ЦАПы я так понимаю регистрируют напряжение, а не мощность, тут точно должно быть 10?
+1
Самое лучшее в статье — это анимация.
+1
Как мне кажется, каждый для себя сможет найти что-то полезное. Кто-то картинки, кто-то создание звукового файла, а кто-то даже алгоритм преобразования Фурье.
0
Не в обиду — статья действительно хорошая, но иллюстрации в таких статьях обычно не очень. В большинстве статей о ЦОС или прикладных статьях яркие и нестандартные иллюстрации найти сложно. Мне часто не хватает ярких и понятных иллюстраций для объяснения таких вещей — потому и отмечаю именно это )))
+1
Спасибо за статью, мне тоже нравится эта тема. За примерами применения далеко ходить не надо, это ближе чем кажется. Даже балансировка колёс без этого не обходится ))
Когда-то проходил курс www.coursera.org/course/dsp
Он скоро опять начнётся, в конце апреля.
Мне понравилось то, как они подходят к сути Преобразования Фурье. Не так как сам Фурье, а через линейную алгебру. Мне это здорово сэкономило усилия, т.к. с тригонометрией дружу плохо и вообще не математик.
Эта тема особенная, потому что как только основные вещи становятся понятными, тут же появляется множество вопросов о границах применимости и разных инженерных трюках. Применение этого инструмента сродни маленькой науке внутри науки (математики).
Когда-то проходил курс www.coursera.org/course/dsp
Он скоро опять начнётся, в конце апреля.
Мне понравилось то, как они подходят к сути Преобразования Фурье. Не так как сам Фурье, а через линейную алгебру. Мне это здорово сэкономило усилия, т.к. с тригонометрией дружу плохо и вообще не математик.
Эта тема особенная, потому что как только основные вещи становятся понятными, тут же появляется множество вопросов о границах применимости и разных инженерных трюках. Применение этого инструмента сродни маленькой науке внутри науки (математики).
+1
Что такое спектр? Это амплитудно-частотная характеристика.
Ну вообще-то АЧХ характеризует устройство, а не сигнал и говорит о том, как устройство передает через себя сигнал, в зависимости от частоты этого сигнала. То есть, если на вход подать синусоиду амплитудой 1 вольт и частотой 1 Гц, то на выходе устройства будет к примеру 0.1 вольта. А если частота вх. сигнала будет 1000 Гц, то на выходе будет например 10 вольт.
+1
Cпектр удобнее представлять в виде амплитудного как-то так
0
Можно ли вычислять спектр в потоковом режиме?
0
Sign up to leave a comment.
Гармонические колебания