0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
1 | |
Детализированное отображение "спектра", как в Adobe Audition28.10.2013, 20:38. Просмотров 4386. Ответов 26
Метки нет Все метки)
(
Здравствуйте.
Необходима консультация человека разбирающегося в сфере построения спектра сигнала)) Вообщем интересует вопрос как и на чем лучше прорисовывать спектр ( БПФ уже сделано, пересчитано в дБ ). (С++ Builder 6). И так на данный момент я прорисовываю спектр на канвасе TImage, где у меня 1 пиксель это 1 отчет после БПФ, то есть по вертикали у меня при БПФ 512 получается закрашивается 256 пикселей, цвет выбираю в зависимости от величины отсчета - чем больше тем ярче. Проблема в недостаточной детализации картинки...сам не могу додумать как сделать детализированное отображение спектра, по качеству стремящееся к абод аудишену)) Но понимаю что точно не простой прорисовкой по пикселям, если кто то уже имеет опыт, подскажите плз
0
|
|
28.10.2013, 20:38 | |
Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "." Отображение типа bool в Datagridview как "Да" и "Нет" В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
|
|
28.10.2013, 22:12 | 2 |
Это огибающая, сырые отсчеты во времени:
Это спектрограмма (НЕ СПЕКТР), распределение спектра во времени: Так называемую детализацию можно имитировать градиентным переходом между цветами, или дискретно дополнением нулями при построении спектра для расширения разрешения по частоте. Ферштеен?
2
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
28.10.2013, 22:45 [ТС] | 3 |
Не ферштеен xD
То есть сейчас я все правильно делаю - рисуя на канве по пикселям? Можно поподробнее про дополнение нулями? Сейчас я как раз и использую градиентные переходы между цветами) просто всё мёлкое...и плохо видны те или иные характеристики...
0
|
28.10.2013, 22:55 | 4 |
Если вы используете отображение скажем, условно говоря, 1000 точек данных на экранном линейном отрезке в 100 пикселей, то конечно это неверный подход. Тут лучше перед отображением прореживание и постепенная детализация при масштабировании. Про "все мелкое" непонятно, приведите пример.
===================== Дополнение сигнала нулями позволяет более подробно рассмотреть структуру спектра, своего рода осуществляется интерполяция преобразования Фурье. http://1labview.info/spektraln... e-nulyami/ http://www.inkcanon.com/predme... age26.html
1
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
28.10.2013, 23:23 [ТС] | 5 |
ну у меня БПФ в основном 512 будет...поэтому у мя на 1 отсчет 1 пиксель(если же кол-во отсчетов превышает размер Имаджа...я его увеличиваю и делаю прокрутку)...то есть входной массив который я падаю в функцию БПФ я допустим записываю 400 реальных отсчетов и дополняю 112 нулей, я правильно понял?
более мелкие это в частности голосовые гармоники при плохом качестве записи...или удаленности от микрофона... вы не могли бы уточнить про масштабирование? на данном этапе я просто делал так - допустим увеличиваю в 2 раза по х или у ... у меня в этом плане масштабирование идет порознь... между у1 и у2 я вставляю у = ( у1 + у2 ) / 2...и тд я извеняюсь за кучу может быть глупых вопросов...но я полный новичек в этой теме)
0
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
29.10.2013, 12:26 [ТС] | 7 |
k sojaleniju net...v etom slychae teryaju detalizaciju po vremeni...tyt palka v dvyh koncah...i imenno 512 polychaetsya nailychshim variantom...
P.S. izvenyajus' ta translit - ne mogy yazik pereklju4it' xD
0
|
29.10.2013, 14:49 | 8 |
На эту тему вам будет полезна тема Как узнать частоту звука?
0
|
2011 / 1283 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
29.10.2013, 17:16 | 9 |
обычно используют перекрытие окон. Не знаю как в Audition-e, а в Sound Forge есть даже параметр - перекрытие в процентах.
0
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
29.10.2013, 18:58 [ТС] | 10 |
Prochital dannyju vetky...iz nee po moei teme vrode tol'ko sledyjushee:
![]() 2.dalee vi tam ypominali normirovanie: symma elementov delennaya na kolichestvo iskljuchaya max element...isklju4aem tol'ko odin element max...ved' elementov blizkih k max mojet bit' neskol'ko - chto eto daet?) Добавлено через 7 минут Ya pravil'no ponyal chto perekritie osyshestvlyaetsya pytem podachi ots4etov v funkciju BPF vmesto [0-512],[513-1024] sledyjushim obrazom: [0-512],[256-768],[513-124]?)
0
|
29.10.2013, 19:28 | 11 |
1
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
29.10.2013, 20:54 [ТС] | 12 |
Но после БПФ 512 - выход 256 элементов, а после 1024 - 512, ммм запутался...голова плохо соображает уже)
на примере: Fд = 8000 БПФ1 = 512, БПФ2 = 1024 при БПФ1 один элемента(k) описывает по частоте - ~15,625Гц, по времени - ~ 62,5 мс при БПФ2 один элемента(n) описывает по частоте - ~7,8125Гц, по времени - ~ 125 мс То мне прорисовывать так: ? n[1,1] n[1,1] n[1,2] n[1,2] n[2,1] n[2,1] n[2,2] n[2,2] k[1,1] k[1,2] k[1,3] k[1,4] n[3,1] n[3,1] n[3,2] n[3,2] n[4,1] n[4,1] n[4,2] n[4,2] k[2,1] k[2,2] k[2,3] k[2,4] и тд ... Чет я намудрил но думаю понятно смысл...я правильно понял?
0
|
2011 / 1283 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
30.10.2013, 07:51 | 13 |
da esli perekrytie v polovinu okna
Добавлено через 3 минуты а по поводу прорисовки - вы я так понимаю будете отрисовывать спектрограмму? Тогда нормируйте ее по времени в соответствии с шагом окна.
1
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
30.10.2013, 13:23 [ТС] | 14 |
Да, спектрограмма, под нормированием вы имеете ввиду, что при последовательном БПФ 512 у меня секунду описывает 16 элементов, а вот уже при перекрытии в 50%, получается своего рода масштабирование и 1 секунду описывать уже будет 24 элемента, и мне это соответственно учитывать при расчете времени, правильно?)
0
|
2011 / 1283 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
30.10.2013, 14:13 | 15 |
когда вы идете по сигналу с перекрытием, сначала выбираете шаг, например если перекрытие 50% шаг равен половине длины окна: spectr = fft( signal(index*step : index*step+fftSize) * windowFunction). Таким образом вы получаете одну линию спектрограммы. Временная шкала этой спектрограммы(один пиксел) будет равна step/SampleRate. Всего в спектрограмме таким способом получается SignalLength/step - fftSize/step вертикальных линий. Изменяя шаг, вы можете уплавлять длиной спектрокраммы и разрешением по времени
1
|
2011 / 1283 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
|
||||||
30.10.2013, 15:06 | 16 | |||||
набросал пример на матлабе (т.к. он все нарисует за меня, я с рисовалками не особо дружу):
2
|
2011 / 1283 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
|
||||||
30.10.2013, 16:21 | 17 | |||||
в индексе ошибся (дурацкая матлабовская индексация с единицы - до сих пор не могу привыкнуть после си)
1
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
30.10.2013, 20:48 [ТС] | 18 |
raxp, вы не могли бы плз посмотреть 12 пост) или я там чушь полную написал?))) а то жду вашего ответа))
Добавлено через 3 минуты vital792, спасибо), вы не подскажете у меня чем больший % перекрытия тем больше так скажем искажение по времени, то есть гармоники начинают друг на друга накладываться(будущая на прошлую), это недостаток данного метода или моих кривых рук? xD при 10-15% всё более менее норм при >50% уже накладки)
0
|
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 21
|
|
30.10.2013, 22:18 [ТС] | 20 |
Спасибо большое) по результату отпишусь)
0
|
30.10.2013, 22:18 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Adobe audition
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |