Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нормализация звука! 
:(
    Опции темы
dwr_budr
Дата 11.4.2004, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.4.2004

Репутация: нет
Всего: 2



Всем привет!

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

Собственно интересует принцип нормализации звука!

В частности вопросы:
- что и как измеряем?
- что и как преобразуем?
- в каком виде работаем с данными? (время или частоты)


Спасибо!



PM MAIL   Вверх
maxim1000
Дата 11.4.2004, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



если я не ошибаюсь под нормализацией понимают процесс увеличения громкости звука до максимума (чтобы не было потери информации из-за какого-нибудь переполнения)
при этом лучше испрользуется динамический диапазон целочисленных типов
в таком случае делается проход по сигналу, ищется максимум и весь сигнал умножается на MAX/max (MAX - максимум целочисленного типа, max - максимум сигнала до нормализации)
это все - если я правильно понял, что имеется в виду под словом "нормализация"



--------------------
qqq
PM WWW   Вверх
dwr_budr
Дата 11.4.2004, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.4.2004

Репутация: нет
Всего: 2



2 maxim1000

Да именно об этом я и спрашивал smile.gif
Собственно как я понял работа ведется во временном диапазоне и просто масштабируем все отсчеты относительно максимума?
Только вот как ты говоришь динамический диапазон используем..
К слову наш диапазон -32767 .. 32768
И попадается значение 32768
Это что ли значит что без расширения диапазона никак не увеличить громкость? Ну а если увеличиваем диапазон это более не 16бит на выборку...

Или я чего то не так понял? Или трюки какие то есть изворотливые? smile.gif

PM MAIL   Вверх
maxim1000
Дата 11.4.2004, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну это - смотря, что понимать под громкостью
1. громкость - максимальное значение сигнала
в этом случае все просто: нельзя
2. громкость - среднеквадратическое значение сигнала (что более естественно) или что-то в этом роде
тогда в принципе можно, только придется исказить сигнал
можно, например, значения дискрет большие 16384 сделать равными 16384, ну и для отрицательных аналогично
тогда можно умножить сигнал на 2 без всяких потерь (все потери были на предыдущем шаге smile.gif )
если таких дискрет было совсем мало, может, никто и не заметит, а все подумают, что громкость просто увеличилась в 2 раза
но если их было значительное количество, то искажения станут заметны, а это уже плохо...


--------------------
qqq
PM WWW   Вверх
dwr_budr
Дата 12.4.2004, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.4.2004

Репутация: нет
Всего: 2



maxim1000

Все понял! Спасибо! Примерно так и думал! smile.gif

Тем временем продолжил баловство с БПФ. Собственно просто все полученные амплитуды перед обратным преобразованием увеличивал/уменьшал и результат порадовал! Громкость уменьшалась/увеличивалась!

Вопрос! Это я громкость менял или там чего нить еще?
При умножении на 1.5 стали появляться уже глюки! (временами треск в самом конце ударных)
При работе с временным диапазоном было бы точно так же? Или повышая амплитуды частот и возлагая заботу геренации новой волны в руки фурье мы таки получаем приемущество?


PM MAIL   Вверх
maxim1000
Дата 12.4.2004, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



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


--------------------
qqq
PM WWW   Вверх
dwr_budr
Дата 12.4.2004, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.4.2004

Репутация: нет
Всего: 2



Максим!

Оч доходчиво объясняешь smile.gif Благодарю!

Не знал я сего факта и теперь определенно могу сказать, что моем случае дело с переполнением не сколько в фурье сколько во мне! Фурье вернет отмасштабированные выборки со значениями больше 16бит.. которыя я пишу в 16бит и собственно ничего хорошего не делаю smile.gif
Наивно думал что волна вернется по прежнему с макс числами до 32768..
Эх! Буду дальше учить мат часть smile.gif

ПС Вопросами еще замучаю!





PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0723 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.