Russian Qt Forum
Ноябрь 23, 2024, 03:10
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Мультимедиа
>
DSP Спекта Звукового сигнала
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: DSP Спекта Звукового сигнала (Прочитано 10923 раз)
horror812
Гость
DSP Спекта Звукового сигнала
«
:
Март 29, 2011, 00:55 »
Всем привет, кто-нибудь
работал со звуком (не обязательно с QT)
Нужно отрисовать спектральную форму сигнала.
С теорией немного разобрался,
буду рад помощи.
Встречал Аудисити, там есть то что нужно,
но исходник для меня трудноват.
Есть ли что-нибудь попроще?
Спасибо.
Записан
ilyagoo
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #1 :
Март 29, 2011, 10:57 »
делаешь спектр и рисуешь. в чем вопрос?
Записан
Denjs
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #2 :
Март 29, 2011, 11:25 »
Самый простой источник? вы можете получить значения вашего сигнала в каждый момент времени?
Преобразование Фурье помните? вот берите снимок вашего сигнала за период, делайте преобразование фурье, и полученные коэффициенты членов ряда - это и есть "спектр". Потом его надо обработать, растянуть, масштабировать и т.п. )))
Тема Фурье преобразования хорошо расписана, есть множество алгоритмов, бытрое-фурье-преобразоание, дискретное фурье преобразование и прочее...
вперед?
«
Последнее редактирование: Март 29, 2011, 12:08 от Denjs
»
Записан
Denjs
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #3 :
Март 29, 2011, 14:05 »
Внимание! (барабанная дробь)
QtAssistant
: Home >> Examples >>
Spectrum Analyzer
(Qt 4.7.2) Но найти пример почему-то получается только через поиск по индексам. И более того - пример судя по скриншоту для мобильного девайса. Но думаю суть и ключевые классы и на десктопе будут прекрасно работать.. иначе Qt станет уж и не совсем Qt-шным))))
Цитировать
The Spectrum Analyzer demo shows how the
QtMultimedia Module
can be used in Qt applications to capture and then play back an audio stream.
...
Spectrum analysis is performed by calculating the Fast Fourier Transform (FFT) of a segment of audio data. An open-source library,
FFTReal
, against which the application is dynamically linked, is used to compute the transform.
Ссылка на FFTReal вот:
http://ldesoras.free.fr/prod.html
Удачи)
«
Последнее редактирование: Март 29, 2011, 14:15 от Denjs
»
Записан
horror812
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #4 :
Март 29, 2011, 20:13 »
Цитата: ilyagoo
делаешь спектр и рисуешь. в чем вопрос?
)) хороший ответ.... мог бы ничего не писать....
Цитата: Denjs
Самый простой источник? вы можете получить значения вашего сигнала в каждый момент времени?
Преобразование Фурье помните? вот берите снимок вашего сигнала за период, делайте преобразование фурье, и полученные коэффициенты членов ряда - это и есть "спектр". Потом его надо обработать, растянуть, масштабировать и т.п. )))
Да, разобрался с чтением wav файла, и основными понятиями (типа частоты дискретизации и тп)
и дискретным преобразование Фурье
Цитата: Denjs
QtAssistant: Home >> Examples >> Spectrum Analyzer
(Qt 4.7.2) Но найти пример почему-то получается только через поиск по индексам. И более того - пример судя по скриншоту для мобильного девайса. Но думаю суть и ключевые классы и на десктопе будут прекрасно работать.. иначе Qt станет уж и не совсем Qt-шным))))
Угу, у меня тоже из демонстрации не запускался (
Я посмотрел код. Там для fft используется библиотека fftw3, я пока использую простой пример из вики, для преобразование фуре хватит.
С волновой и амплитудной формой я разобрался.
Теперь хочу вот такой как в Аудисити
Немного разбирался с исходниками, там используются оконные функции Хамминга или Хана.
В общем такую спектрограмму хочу отразить и у себя.
Алгоритм я представляю, берем кусочек, применяем к нему весовую функции и отображаем этот кусочек и тп
Буду рад помощи)
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: DSP Спекта Звукового сигнала
«
Ответ #5 :
Март 30, 2011, 18:21 »
Цитата: horror812 от Март 29, 2011, 20:13
Алгоритм я представляю, берем кусочек, применяем к нему весовую функции и отображаем этот кусочек и тп
Буду рад помощи)
Ну так вроде разобрался же уже - какой еще помощи надо? Делаешь изображение размером Nx1 пиксель (N - размерность области значений весовой функции), рисуешь в нём с помощью QLinearGradient нужную тебе палитру, получаешь указатель на 1-й пиксель (quint32 *ptr = (quint32 *)imgPalette.scanLine(0)), вычисляешь весовую функцию
Код
C++ (Qt)
y
=
weight
(
x
[
i
]
)
для каждого из элементов спектра, заменяешь её значение на ptr[y] и выводишь в соответствующий пиксель результирующего QImage.
«
Последнее редактирование: Март 30, 2011, 18:23 от xokc
»
Записан
horror812
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #6 :
Март 30, 2011, 22:59 »
xokc
Привет.
С выводом и получением спектры разобрался.
Хотя я местами сомневаюсь))
Приведу код в нормальный вид.
И что-нибудь еще задам)
А про цвет, пока нормализовал значения и вывожу серым.
А там посмотрим
ты этим тоже занимаешься\занимался?)
Что посоветуешь полистать из этой темы?
желательно по коду, а не математику.
может статьи есть или еще что-нибудь
Единственную книжку которую я пока нашел "Обработка звука на РС" Секунов...
Спасибо
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: DSP Спекта Звукового сигнала
«
Ответ #7 :
Апрель 01, 2011, 18:22 »
Цитата: horror812 от Март 30, 2011, 22:59
ты этим тоже занимаешься\занимался?)
Я занимаюсь больше архитектурой системы и её GUI, спектр для меня считают другие люди.
Цитата: horror812 от Март 30, 2011, 22:59
Что посоветуешь полистать из этой темы?
Ну я просто не понимаю, что именно тебе не понятно. Задай конкретные вопросы - получишь конкретные ответы.
Записан
horror812
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #8 :
Апрель 02, 2011, 17:35 »
привет,
С этим вроде разобрался.
А почитать, думал посоветуешь, если знаешь
непосредственно про методы реализации,
я математики много нашел,
хотел чего-нибудь по коду, что бы быть уверенным, что делаю правильно
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: DSP Спекта Звукового сигнала
«
Ответ #9 :
Апрель 05, 2011, 13:09 »
Народ, есть замечательная либа по математике GSL
http://www.gnu.org/software/gsl/
там не только Фурье, а многое другое
уже давно пользуюсь и вам рекомендую.
Записан
once_again_abc
Гость
Re: DSP Спекта Звукового сигнала
«
Ответ #10 :
Сентябрь 04, 2011, 03:19 »
Цитата: Admin от Апрель 05, 2011, 13:09
Народ, есть замечательная либа по математике GSL
http://www.gnu.org/software/gsl/
там не только Фурье, а многое другое
уже давно пользуюсь и вам рекомендую.
спасибо за ссылку!
и еще глупый вопрос =)
сканлайн это r1g1b1 r2g2b2 r3g3b3 ... rNgNbN по горизонтали?
где rgb endian-specific.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: DSP Спекта Звукового сигнала
«
Ответ #11 :
Сентябрь 12, 2011, 20:09 »
Цитата: once_again_abc от Сентябрь 04, 2011, 03:19
и еще глупый вопрос =)
сканлайн это r1g1b1 r2g2b2 r3g3b3 ... rNgNbN по горизонтали?
где rgb endian-specific.
Зависит от типа QImage. Может еще быть rgba или argb для QImage с альфа-каналом.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...