Понадобилось изучить такую вот тему. В частности интересует интенсивность музыки, интенсивность басов, средних и высоких частот. На данный момент использую быстрые преобразования фурье для нахождения спектра волны, но пока не хватает знаний все это понять. Может быть посоветуете какие-нибудь книжки на эту тему?
[Ответ]
alexz 23:09 30.01.2011
если надо понять что есть преобразовние фурье, то есть книжка "Без паники! Цифровая обработка сигналов для школьников". Просто и местами понятно[Ответ]
CH@$ER 23:29 30.01.2011
собственно "что есть преобразование фурье" понятно, пока что не понятно как его можно применить ну в общем спасибо за наводку
[Ответ]
Part!zan 00:17 31.01.2011
CH@$ER, имея спектр сигнала, ты легко можешь узнать уровень нужных частот.
[Ответ]
CH@$ER 10:04 31.01.2011
Вот не совсем понятно что этот уровень представляет собой. Получаются какие-то числа. На данный момент у меня считаются три уровня: басы (200Hz - 700Hz), средние (700-1700) и высокие (1700-11000). Для некоторого числа композиций я посчитал средние значения этих параметров, а потом вывел среднее среди этих значений. У меня получились такие числа: 6000 для басов, 1300 для средних и 320 для высоких. Максимальные же значения превышают средние в три раза. Что мне нужно, так это найти какую-то точку опоры, по которой я бы сказал, что сейчас уровень "басов" - высокий. Пока что вот использую вот эти средние значения.
Но это частотный анализ, а что насчет временного? Вот например играли в Audiosurf? Там при увеличении интенсивности музыки ускоряется весь процесс.
[Ответ]
Part!zan 18:55 31.01.2011
Сообщение от CH@$ER:
найти какую-то точку опоры, по которой я бы сказал, что сейчас уровень "басов" - высокий
я не вполне понимаю, как ты все это оцениваешь, но обычно уровень оценивается в децибелах или вольтах (смотря как удобнее).
[Ответ]
Hopkroft 23:09 31.01.2011
CH@$ER , посмотри книжку Обработка звука на PC. Автор Секунов Н.
Книжка старая, но там практически все интересующие тебя вопросы освещены. Код на С++.
[Ответ]
CH@$ER 19:18 02.02.2011
Сообщение от Part!zan:
я не вполне понимаю, как ты все это оцениваешь, но обычно уровень оценивается в децибелах или вольтах (смотря как удобнее).
В том-то и дело, что я и сам не понимаю. После прогонки входящего сэмпла через быстрое преобразование фурье получаются числа для частот от 0 до 11000 герц. Причем числа лежат в диапазоне от 0 до 18 тыс и выше (для условно выбранных частот в диапазоне 200-700 герц, которые я назвал басами). Примерно посчитал для нескольких песен средние значения - 6000. Теперь я считаю что все что выше 6000 - это высокий уровень. Пик басов выделяю так:
CH@$ER, ну а разрядность и уровень входного сигнала у тебя какие? Нарисуй график, хотя бы в ехеле. Ты бы и правда почитал книжки, а то какими-то эмпирическими способами пытаешься цос изучать...
[Ответ]
CH@$ER 19:49 02.02.2011
А входной сигнал идет напрямую из винампа!
Да мне в принципе точность не нужна, поэтому опытным путем всего получаю))
А книжка вроде стоящая, правда много матана, придется вкуривать...
[Ответ]
Part!zan 22:15 02.02.2011
Сообщение от CH@$ER:
А входной сигнал идет напрямую из винампа!
Ну разрядность-то и уровень у него все равно есть...
Сообщение от CH@$ER:
мне в принципе точность не нужна, поэтому опытным путем всего получаю))
а потом получаются программы, которые работают непонятно как...
[Ответ]
CH@$ER 22:23 02.02.2011
Сообщение от Part!zan:
Ну разрядность-то и уровень у него все равно есть...
Ну собственно есть входящий массив wave данных из 512 элементов, все... Ну можно узнать параметры такие как частота дискретизации и прочее. Завтра тогда могу засунуть примерный кусок в статистику и скинуть график.
Этот массив я прогоняю через БПФ (сам алгоритм позаимствовал) и на выходе получаю такой же массив из 512 элементов (хотя по идее должно быть 256). Таким образом получаю спектр звука. Максимальные числа в нем обычно не превышали 25 тысяч кажется, и то такие уровни довольно редки были.
Все это дело я прогнал на нескольких песен и собрал статистику, о которой писал выше.
Аа, кстати, wave данные - это однобайтные числа, т.е. там от -128 до 127 уровень. Наверное это Вы и хотели узнать
Сообщение от Part!zan:
а потом получаются программы, которые работают непонятно как...
Да в общем-то работает, и нормально, просто что параметры выведены путем проб и ошибок.
[Ответ]
Part!zan 19:23 03.02.2011
Сообщение от CH@$ER:
Аа, кстати, wave данные - это однобайтные числа, т.е. там от -128 до 127 уровень
Это называется 8-битная разрядность. Если ты даже о таких простых вещах не знаешь, то как же ты вообще программы цос пишешь? Это какое-то радиолюбительство... Читай книжки.
Сообщение от CH@$ER:
и на выходе получаю такой же массив из 512 элементов (хотя по идее должно быть 256).
По идее ты получаешь (в зависимости от вида БПФ) либо комплексный спектр, либо зеркальный спектр. Кстати, в описаниях функций цос обычно указывается в какой разрядности д. б. входные и выходные данные.
Сообщение от CH@$ER:
Максимальные числа в нем обычно не превышали 25 тысяч кажется
Ну а у выходных данных какая разрядность? Подозреваю, что 16 бит.
Сообщение от CH@$ER:
Да в общем-то работает, и нормально, просто что параметры выведены путем проб и ошибок
это и называется непонятно как. когда прога написана на основе каких-то эмпирических знаний, нельзя быть уверенным, что она всегда будет хорошо работать.
[Ответ]
CH@$ER 14:26 08.02.2011
Сообщение от Part!zan:
Это называется 8-битная разрядность. Если ты даже о таких простых вещах не знаешь, то как же ты вообще программы цос пишешь? Это какое-то радиолюбительство... Читай книжки.
Я для этого и создал тему, чтобы узнать какие книжки читать
Сообщение от Part!zan:
По идее ты получаешь (в зависимости от вида БПФ) либо комплексный спектр, либо зеркальный спектр. Кстати, в описаниях функций цос обычно указывается в какой разрядности д. б. входные и выходные данные.
Получаю модуль комплексного числа. БПФ - разложение сигнала в спектр (т.е. это кажется обратное преобразование).
Сообщение от Part!zan:
Ну а у выходных данных какая разрядность? Подозреваю, что 16 бит.
Выход - числа с плавающей точкой одинарной точности
[Ответ]
Part!zan 19:45 09.02.2011
Сообщение от CH@$ER:
Я для этого и создал тему, чтобы узнать какие книжки читать
Если у тебя хорошо с английским, то советую глянуть http://dspguide.com/
Очень доступная книжка по прикладной цос.
Сообщение от CH@$ER:
Получаю модуль комплексного числа. БПФ
Во, наконец-то луч света. )
Сообщение от CH@$ER:
разложение сигнала в спектр (т.е. это кажется обратное преобразование).
Обратное преобразование это когда спектр в сигнал.
[Ответ]
CH@$ER 21:19 10.02.2011
Я просто в понятиях путаюсь пока, для меня это новая область совсем.
Спасибо за ссылку, вроде не заумно написано (читать проще чем обработку звука на PC).
[Ответ]