Russian Qt Forum
Марта 11, 2025, 08:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Мультимедиа
>
DSP Спекта Звукового сигнала
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: DSP Спекта Звукового сигнала (Прочитано 11115 раз)
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...