Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ WAV формата 
:(
    Опции темы
IvanTG
Дата 16.5.2004, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нужно провести быстрый Фурье-анализ несжатого WAV файла. А как его правильно перевести в числа?
PM MAIL   Вверх
dwr_budr
Дата 17.5.2004, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пропускаешь заголовок и читаешь собственно семплы. Вот тебе и числа.
Размерность чисел зависит от формата вавки (ну там 8 бит на семпл или 16 бит на семпл).
Если у тебя вавка в догонку стерео, то семплы просто чередуются для каждого канала (правый, левый, правый, левый и т.п.)


Если лень парсить заголовок вавки, то просто пропусти первые 44 байта (обычно он такой длины, может быть и больше)
Главное при пропускании заголовка не разорвать семплы (если они по 16 бит)
Более того если ты при фурье анализе будешь заголовок интерпретировать как аудио данные не думаю что случится нечто трагичное smile.gif
PM MAIL   Вверх
Royan
Дата 19.5.2004, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



dwr_budr, а в каких единицах измерения храняться данные в одном семпле, и как вытащив число из семпла перевести его в децибелы?



--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
dwr_budr
Дата 19.5.2004, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Royan
На счет едениц измерения я без понятия! Используя 16битный диапазон значений при дискретизации сигнала ты лишь получаешь более точное его представление, чем используя 8ми битный. Не думаю что сигнал снимается конкретно в еденицах чего-то. Просто вопрос в точности снятия стоит.

А по поводу децибел я вряд ли помогу! Сам еще начинающий smile.gif
Когда у тебя частота/амплитуда то вроде так: 10 * log10(x) (могу ошибаться)
А когда чисто время/амплитуда не знаю. Может аналогично?

Кто знает,пожалуйста, поделитесь теорией smile.gif

PS Да и я не совсем понял что значит вытащить число из семпла. Семпл это и есть число в данном вопросе.

Это сообщение отредактировал(а) dwr_budr - 19.5.2004, 07:58
PM MAIL   Вверх
Royan
Дата 19.5.2004, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Цитата
Да и я не совсем понял что значит вытащить число из семпла. Семпл это и есть число в данном вопросе.
Это я так выразился, а понял ты меня аболютно правильно

Цитата
На счет едениц измерения я без понятия! Используя 16битный диапазон значений при дискретизации сигнала ты лишь получаешь более точное его представление

В моем случае информации и в 8 битах хватит за глаза и за уши smile.gif поэтому я работаю одноканальном режиме на частоте 220500 - 44100Hz, все что мне нужно это просто просекать заданную амплитуду и запсывать после нее сигнал за фиксированное время.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
DonPager
Дата 19.5.2004, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

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



все что мне нужно это просто просекать заданную амплитуду и запсывать после нее сигнал за фиксированное время.
а в чём проблема ?
ампрлитуду мерить проще всего : берёшь отсчётов 20 (чтобы реакию на трески отсечь) и ищешь
их среднее по модулю значение (читай данный в знаковые пременные так проще smile.gif)
а в отношении дБ , то для знакового онобайтового формата 0 = -120дБ; 127= 0 дБ дальше считай сам (зависимость логарифмическая)


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
Royan
Дата 21.5.2004, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



DonPager, а под отсчетом ты 1 сэмпл понимаешь (рассматривая моно сигнал)? И почему у меня должны быть трески? Я вот когда записывал streaming audio со звуковухи никаких тресков не обнаружил...

Да и продолжительность wav'а наскольео я понял выисляется по такой формуле:

time = (dataChunk / bitsPerSample)/samplesPerSecond, где dataChunk, это собственно размер звуковых данных (без хэдэра)



--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Alexei
Дата 21.5.2004, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

maxim1000

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


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

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


 




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


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

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