![]() |
|
|
![]()
|
|
| dwr_budr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 11.4.2004 Репутация: нет Всего: 2 |
Всем привет!
Баловство с результатами БПФ (когда криво что-нибудь менял и получался забавный, но кривой звук) натолкнуло на мысль сделать что нить более осмысленное! Начать решилс простого. (если это не просто, то сорри за незнание сабджа, но представляю это таки весьма просто Собственно интересует принцип нормализации звука! В частности вопросы: - что и как измеряем? - что и как преобразуем? - в каком виде работаем с данными? (время или частоты) Спасибо! |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
если я не ошибаюсь под нормализацией понимают процесс увеличения громкости звука до максимума (чтобы не было потери информации из-за какого-нибудь переполнения)
при этом лучше испрользуется динамический диапазон целочисленных типов в таком случае делается проход по сигналу, ищется максимум и весь сигнал умножается на MAX/max (MAX - максимум целочисленного типа, max - максимум сигнала до нормализации) это все - если я правильно понял, что имеется в виду под словом "нормализация" -------------------- qqq |
|||
|
||||
| dwr_budr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 11.4.2004 Репутация: нет Всего: 2 |
2 maxim1000
Да именно об этом я и спрашивал Собственно как я понял работа ведется во временном диапазоне и просто масштабируем все отсчеты относительно максимума? Только вот как ты говоришь динамический диапазон используем.. К слову наш диапазон -32767 .. 32768 И попадается значение 32768 Это что ли значит что без расширения диапазона никак не увеличить громкость? Ну а если увеличиваем диапазон это более не 16бит на выборку... Или я чего то не так понял? Или трюки какие то есть изворотливые? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну это - смотря, что понимать под громкостью
1. громкость - максимальное значение сигнала в этом случае все просто: нельзя 2. громкость - среднеквадратическое значение сигнала (что более естественно) или что-то в этом роде тогда в принципе можно, только придется исказить сигнал можно, например, значения дискрет большие 16384 сделать равными 16384, ну и для отрицательных аналогично тогда можно умножить сигнал на 2 без всяких потерь (все потери были на предыдущем шаге если таких дискрет было совсем мало, может, никто и не заметит, а все подумают, что громкость просто увеличилась в 2 раза но если их было значительное количество, то искажения станут заметны, а это уже плохо... -------------------- qqq |
|||
|
||||
| dwr_budr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 11.4.2004 Репутация: нет Всего: 2 |
maxim1000
Все понял! Спасибо! Примерно так и думал! Тем временем продолжил баловство с БПФ. Собственно просто все полученные амплитуды перед обратным преобразованием увеличивал/уменьшал и результат порадовал! Громкость уменьшалась/увеличивалась! Вопрос! Это я громкость менял или там чего нить еще? При умножении на 1.5 стали появляться уже глюки! (временами треск в самом конце ударных) При работе с временным диапазоном было бы точно так же? Или повышая амплитуды частот и возлагая заботу геренации новой волны в руки фурье мы таки получаем приемущество? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
Фурье - линейное преобразование
это означает, что, если подать на вход сумму сигналов, на выходе получим сумму их Фурье-образов, а также, если подать сигнал умноженный наконстанту, на выходе получим образ, умноженный на все ту же константу так что прямое преобразование Фурье, умножение на константу, обратное преобразование Фурье эквивалентно просто умножению на константу однако, если у нас возникает переполнение, то результат зависит от конкретной реализации Фурье-преобразования а обычном случае мы полностью контролируем этот процесс (сами решаем, что делать с большими дискретами и, возможно, с их окружением) -------------------- qqq |
|||
|
||||
| dwr_budr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 11.4.2004 Репутация: нет Всего: 2 |
Максим!
Оч доходчиво объясняешь Не знал я сего факта и теперь определенно могу сказать, что моем случае дело с переполнением не сколько в фурье сколько во мне! Фурье вернет отмасштабированные выборки со значениями больше 16бит.. которыя я пишу в 16бит и собственно ничего хорошего не делаю Наивно думал что волна вернется по прежнему с макс числами до 32768.. Эх! Буду дальше учить мат часть ПС Вопросами еще замучаю! |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |