Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/107: Рейтинг темы: голосов - 107, средняя оценка - 4.90
 Аватар для S.k.y
23 / 23 / 3
Регистрация: 03.08.2011
Сообщений: 158

Разложение звука на спектр. Частотная визуализация

23.09.2013, 23:22. Показов 22616. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, доброго времени суток.
У меня есть плеер под Win8. Хочу к нему прикрутить "частотную визуализацию", т.е. сделать как в Aimp / Winamp, что бы звук было визуально видно.

По сути что я знаю:
- Надо разложить звук на спектр частот и отображать этот спектр и реальном времени (присваивая значения, к примеру, слайдерам в событии тика таймера).
- Много читал на эту тему и узнал, что разложить звук требуется в ряд Фурье, только так и не иначе.
- есть такой ресурс, с исходниками, но не могу, в силу своего малого опыта, их понять.

Подскажите, действительно ли я правильно понял суть реализации? Если можно - хотелось бы получить пинок в нужном направлении на статьи или еще куда-то, ибо не знаю что верно и что стоит читать.

А может такое "разложение" не трудная трудная задача и решается парой другой десятков строк кода.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2013, 23:22
Ответы с готовыми решениями:

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

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

NAudio визуализация звука
Здравствуйте! Имеется программа, которая может "выдавать звуки" определенной частоты через динамики, но теперь нужно показать их...

6
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.09.2013, 00:42
S.k.y, не знаю, насколько это вам поможет (или навредит), но часть теории можете посмотреть тут:
http://habrahabr.ru/post/193514/

http://habrahabr.ru/post/194670/

объем кода оценить сможете там же
1
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
24.09.2013, 08:18
Ты правильно все понял.
Тебе необходимо выполнить над твоим звуковым сигналом преобразование Фурье (лучше быстрое, так как довольно ресурсоемкий это процесс).
Ключевые слова: FFT, БПФ. Смотри вики для начала.
Суть:
У тебя есть массив данных S(t), после преобразования получишь массив F(f), где t - дискретное время, а f - дискретная частота.
Далее полученный массив разделяешь на несколько диапазонов по частоте и каждый диапазонов будет соответствовать "палке" в эквалайзере.
1
 Аватар для S.k.y
23 / 23 / 3
Регистрация: 03.08.2011
Сообщений: 158
24.09.2013, 10:23  [ТС]
mib383, самое сложное для меня в этот момент то, что я не могу понять (вообще не как ), как можно разложить звук в математическую функцию. ))
0
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
24.09.2013, 11:24
Звук - в цифровом виде есть файл, который в свою очередь представляет из себя просто набор числовых значений. Эти значения можно пронумеровать, допустим Si. Такой ряд значений, тоже является функцией, если каждому значению сопоставить значение переменной, для звука - такая переменная, это время. Т.е. функция задана дискретными значениями f(ti)=Si. Вот.

Преобразование Фурье, суть, ставит в соответствие данному ряду чисел, другой ряд чисел: Fi. Этот другой ряд и называется "Фурье преобразование функции f(t)".

Существует дискретное преобразование Фурье, как раз для работы с дискретными функциями.

Математические операции осуществляются над числами из набора Si. Вот и все. Формулу можно найти на вики и зашить в программу самостоятельно. А можно скачать библиотеку.
1
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.09.2013, 16:03
Много читал на эту тему и узнал, что разложить звук требуется в ряд Фурье, только так и не иначе.
необязательно, есть методы - и пяти ординат и вейвлеты и многое другое. Можно использовать и готовые обертки и классы - Fast Fourier transform using DX11, FFTW, BASS, etc.

Cопутствующие темы

Визуализация спектра звукового сигнала
Как узнать частоту звука?
Преобразование Фурье
Программы на C# из книги Смита по ЦОС. FFTW
ДПФ на С#

И конечно-же - Литература по ЦОС и алгоритмам
1
 Аватар для SharpDeveloper
141 / 138 / 22
Регистрация: 16.02.2012
Сообщений: 453
25.09.2013, 18:00
Насколько я помню, Bass умеет это делать, есть обертки под C#.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2013, 18:00
Помогаю со студенческими работами здесь

Визуализация звука Bass.dll
Всем привет! В общем работаю с библиотекой bass.dll, сделал простенький плеер. Теперь хочу сделать визуализацию потока. Но не смог найти...

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

Спектр анализ звука
Здравствуйте! Есть библиотека bass.dll ... там функция DWORD BASS_ChannelGetData(DWORD handle,void *buffer,DWORD length); в help по...

Почему при дифракции белого света происходит его разложение в спектр?
Обьясните пожалуста простими словами почему при дифракции белого света происходит его разложение в спектр. ну, и желательно с какой нибуть...

Визуализация звука
Всем привет! Нужно сделать визуализацию звука в виде волны, т.е. даже не волны, а что-то типа гистограммы (не знаю как правильно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru