2013-06-21 3 views
1

Я использую приложение для звонка (http://code.google.com/p/ringdroid/) для получения сигнала, но если мне нужно получить звуковую мощность (что-то вроде эквалайзера), я должен использовать преобразование Фурье или это возможно без FT? Пожалуйста, вы можете сказать мне хоть какой-нибудь намек на это? Я пытаюсь найти решение на многих страницах, но без хорошего результата. Спасибо за ваш ответПолучите звуковую энергию от формы волны

+0

Я думаю, что нет, вам нужно сделать FT, чтобы получить спектры и измерить мощность для каждой частоты. Чтобы показать что-то вроде эквалайзера – Borys

+0

И если я хочу получить только один бар (все частоты в одном баре), мне все же нужно сделать FT, чтобы получить коэффициент? Благодарю. –

+0

Если у вас есть амплитуда кривой против времени, вы можете взять Интеграл для измерения мощности звука. – Borys

ответ

0

Если вы просто хотите полную мощность, вам не нужно делать БПФ. Вы можете суммировать амплитуды, а затем делить на общее время.

Несколько вещей, которые следует иметь в виду: 1) Убедитесь, что вы взяли квадрат с амплитудой до, вы делаете сумму. 2) Здесь важно, где 0, а амплитуды должны быть отклонениями от 0, то есть отклонениями от показаний, когда нет звука; поэтому, если ваши значения варьируются от 0 до 1024, звуковое значение не может быть 512, и это нужно будет вычесть из каждого значения до вы берете квадрат.

Кроме того, к примеру, если вы делаете измеритель уровня для слухового сигнала, вы можете взять мощность log, так как воспринимаемая громкость изменяется как лог, а не полная мощность. Но это перцептивная проблема, которая зависит от того, что вы хотите представить.

Наконец, стоит отметить, что мощность, рассчитанная таким образом (то есть непосредственно из формы волны), даст точно такой же результат, как если бы вы рассчитали мощность с использованием БПФ. Это называется Parseval's Theorem.

+0

Разве вы не забыли «R» в «RMS» здесь? – marko

+0

@Marko: Сила будет идти как квадрат, и было бы неправильно взять квадратный корень. (RMS-мощность является неправильным выражением, полученным из-за того, что средняя мощность может быть рассчитана Vrms * Irms, но результирующая мощность не является действительно Prms, и если рассчитываться непосредственно из формы волны, то не следует брать корень.) – tom10

+0

Спасибо, ваш ответ очень полезен для меня. Теперь я уверен, это ошибка в применении рингдроида, потому что форма сигнала неверна. Благодарю. –

Смежные вопросы