Я использую приложение для звонка (http://code.google.com/p/ringdroid/) для получения сигнала, но если мне нужно получить звуковую мощность (что-то вроде эквалайзера), я должен использовать преобразование Фурье или это возможно без FT? Пожалуйста, вы можете сказать мне хоть какой-нибудь намек на это? Я пытаюсь найти решение на многих страницах, но без хорошего результата. Спасибо за ваш ответПолучите звуковую энергию от формы волны
ответ
Если вы просто хотите полную мощность, вам не нужно делать БПФ. Вы можете суммировать амплитуды, а затем делить на общее время.
Несколько вещей, которые следует иметь в виду: 1) Убедитесь, что вы взяли квадрат с амплитудой до, вы делаете сумму. 2) Здесь важно, где 0, а амплитуды должны быть отклонениями от 0, то есть отклонениями от показаний, когда нет звука; поэтому, если ваши значения варьируются от 0 до 1024, звуковое значение не может быть 512, и это нужно будет вычесть из каждого значения до вы берете квадрат.
Кроме того, к примеру, если вы делаете измеритель уровня для слухового сигнала, вы можете взять мощность log
, так как воспринимаемая громкость изменяется как лог, а не полная мощность. Но это перцептивная проблема, которая зависит от того, что вы хотите представить.
Наконец, стоит отметить, что мощность, рассчитанная таким образом (то есть непосредственно из формы волны), даст точно такой же результат, как если бы вы рассчитали мощность с использованием БПФ. Это называется Parseval's Theorem.
Разве вы не забыли «R» в «RMS» здесь? – marko
@Marko: Сила будет идти как квадрат, и было бы неправильно взять квадратный корень. (RMS-мощность является неправильным выражением, полученным из-за того, что средняя мощность может быть рассчитана Vrms * Irms, но результирующая мощность не является действительно Prms, и если рассчитываться непосредственно из формы волны, то не следует брать корень.) – tom10
Спасибо, ваш ответ очень полезен для меня. Теперь я уверен, это ошибка в применении рингдроида, потому что форма сигнала неверна. Благодарю. –
- 1. Отобразить звуковую форму и масштабирование
- 2. Автоматическое увеличение пульсации формы волны
- 3. Создайте треугольную звуковую волну
- 4. Как получить оставшуюся энергию от BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER
- 5. Как получить электрическую энергию от головного телефона?
- 6. Удалить Шум от волны
- 7. Загрузка волны от волновода
- 8. рендеринг формы волны на iphone
- 9. Рисование формы волны с D3
- 10. Визуализация формы волны в Ruby
- 11. Построение формы волны .wav-файла
- 12. Анализ формы волны в C#
- 13. Ускорение формы волны в LabVIEW
- 14. Библиотека для построения формы волны
- 15. Рисование формы волны в NSView
- 16. Создание изображения плоской звуковой волны (формы волны) из аудиофайла
- 17. Получите переменную от iframe после отправки формы?
- 18. Код Verilog для генерации периодической формы волны
- 19. Извлечь диаграмму формы квадратной волны, используя PHP
- 20. Алгоритм для рисования формы волны из звука
- 21. Анимация синусоидальной волны от центра
- 22. Нарисуйте звуковую волну с возможностью увеличения/уменьшения изображения
- 23. Как защитить звуковую ссылку html5 от загрузки
- 24. Parse.com - Регулярно пополняйте энергию
- 25. Перемещение формы волны через окно ScrollViewer
- 26. приближения квадратной волны с использованием синусоидальной формы
- 27. Гравитационный график формы волны Из файла h5
- 28. Как генерировать звук из формы волны Данные
- 29. как сделать верхний край формы волны округленным
- 30. Генерация квадратной формы волны в VHDL
Я думаю, что нет, вам нужно сделать FT, чтобы получить спектры и измерить мощность для каждой частоты. Чтобы показать что-то вроде эквалайзера – Borys
И если я хочу получить только один бар (все частоты в одном баре), мне все же нужно сделать FT, чтобы получить коэффициент? Благодарю. –
Если у вас есть амплитуда кривой против времени, вы можете взять Интеграл для измерения мощности звука. – Borys