Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« : 27-01-2012 15:01 » |
|
Подскажите нормальную литературу на русском языке или вкратце объясните физическую суть спектрограммы звукового файла а то находится всё такое заумное и только в виде формул. Я никак не могу в суть въехать  а задача - разобрать WAV файл (это я смог, там несложно), а потом пи помощи БПФ нужно получить спектрограмму. Цель - в некоторой записи у них там появился какой-то левый сигнал, его и надо выцепить
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #1 : 27-01-2012 15:38 » |
|
сигнал можно представить в виде суммы каких то функций. в случае БПФ - идет представление в виде суммы набора синусов-косинусов кратных частот(периода) с заданными амплитудами и фазами. массив значений амплитуд этих синусов/косинусов для такого представления и является амплитудным спектром) каждый спектральный отсчет отражает "вес" синусоиды данной частоты в исходном суммарном сигнале) Добавлено через 4 минуты и 36 секунд:например разложение для прямоугольного сигнала (по трем синусоидам, So - синусоида с нулевой частотой то есть константа) соответственно говорят, что спектр такого сигнала состоит из энного числа гармоник.
|
|
|
|
« Последнее редактирование: 27-01-2012 15:46 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #2 : 27-01-2012 15:57 » |
|
эту часть я понимаю- с этим ещё в универе познакомился только такой момент: набор сэмплов в файле - это последовательность амплитуд, каждая за небольшой отрезочек времени, так ? То есть, если их рядом нарисовать, получится (условно) ступенчатая цифровая синусоида вопрос: как из этого получить спектрограмму , как ещё отобразить и как анализировать увиденное на ней ? Добавлено через 3 минуты и 25 секунд:к примеру, вот он в какой-то программе смотрел спектр. И я там вижу линии - как это читать ? Как это строить ?
|
sp.jpg (96.59 Кб - загружено 178 раз.)
|
|
« Последнее редактирование: 27-01-2012 16:01 от Алексей1153 »
|
Записан
|
|
|
|
Dale
Блюзмен
Команда клуба
Offline
Пол:
|
 |
« Ответ #3 : 27-01-2012 17:25 » |
|
задача - разобрать WAV файл (это я смог, там несложно), а потом пи помощи БПФ нужно получить спектрограмму. Слишком тернистый путь выбрали, тем более для звукового файла. Достаточно установить какой-нибудь звуковой редактор профессионального уровня (например, CoolEdit или его наследников, как там они сейчас называются). Там есть опция - можно выделить мышкой фрагмент и построить его спетрограмму. Цель - в некоторой записи у них там появился какой-то левый сигнал, его и надо выцепить Без проблем, при помощи CoolEdit я легко решал подобные задачи. Например, я налаживал AVR для системы IP-телефонии, и некоторые клиенты жаловались, что нажимали кнопки на аппарате, а срабатывали неправильные опции меню. Я попросил их понажимать кнопки поочередно от 0 до 9 на своем аппарате, записал сигнал в звуковой файл, проанализировал и увидел, что в спектре, помимо "правильных" частот DTMF, есть много лишней грязи, которая сбивала с толку программу распознавания тонального набора (дешевые китайские аппараты в то время часто грешили этим, в последнее время с подобной проблемой уже не сталкивался). только такой момент: набор сэмплов в файле - это последовательность амплитуд, каждая за небольшой отрезочек времени, так ? То есть, если их рядом нарисовать, получится (условно) ступенчатая цифровая синусоида Если интересует теория - то вкратце начать можно отсюда, а далее по ссылкам. Вся цифровая обработка сигналов (и звука в частноти) строится на оцифровке выборок и дальнейшей их обработке. Впрочем, если нужно лишь решить конкретную задачу, закапываться в теорию не обязательно, достаточно взять готовый инструмент (см. выше). вопрос: как из этого получить спектрограмму , См. выше. как ещё отобразить См. выше. и как анализировать увиденное на ней ? А вот это уже творческий процесс, готовый рецепт заочно дать не могу.
|
|
|
|
|
Записан
|
Мы знаем о проблемах качества ПО примерно столько же, сколько в 1600-х знали о чуме. Мы видели агонию жертв и помогали сжигать тела. Мы не знаем, что именно явилось тому причиной; мы не знаем даже, единственна ли эта болезнь. Мы просто страдаем - и при этом продолжаем выливать нечистоты в источники чистой воды.
Tom Van Vleck
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #4 : 27-01-2012 18:52 » |
|
Dale, дык, в том и дело, что я в этом не силён  Может быть ты человеку поможешь, если не сложно ? Очень уж ему надоть. Не бесплатно, само собой. Если согласишься, напиши ЛС, а там разберёмся
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #5 : 27-01-2012 19:39 » |
|
последняя картинка эт не совсем спектр. это ... называют по разному, я привык к называнию сонограмма (еще зовут спектрограммой). (по англицки waterfalls) по вертикали отложено время, по горизонтали - частота. цветовой гаммой -амплитуда. (в данном случае - в желтый большая амплитуда, в синий - меньшая) файл разбивается на пачки длинной N. от каждой берется БПФ длиной N (сигнал действительный - спектр симметричный, отображается половина полученной после БПФ пачки): каждая строка - пачка преобразования.
|
|
|
|
« Последнее редактирование: 27-01-2012 19:40 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #6 : 27-01-2012 19:43 » |
|
каждая строка - пачка преобразования.
то есть, вся эта сонограмма получается шириной в условные N единиц времени, а строки пикселов, растущие вверх, строятся как развёртка луча ЭЛТ ? как бы переносятся
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #7 : 27-01-2012 19:44 » |
|
ну в данном случае сигнал действительный - спектр будет симметричный. поэтому ширина N/2
Добавлено через 6 минут и 24 секунды: только ширина это уже не время а спектральные отсчеты с шагом частоты между точками по горизонтали... dF = Fдискретизации/N [Гц] а по вертикали шаг строчек = N/Fдискретизации [сек]
PS частоты от 0 до Fдискретизации/2 [Гц]
PPS полная длина по вертикали(времени) = Lотсчетов файла/N/Fдискретизации [сек]
PPPS N - степень двойки, 1024, 2048 и т.д. при использовании БПФ
|
|
|
|
« Последнее редактирование: 27-01-2012 19:51 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #8 : 27-01-2012 20:07 » |
|
аааа, мой моск )
а как оно так точно по вертикали синхронизируется ?
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #9 : 27-01-2012 20:07 » |
|
что значит точно?
|
|
|
|
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #10 : 27-01-2012 20:11 » |
|
вертикальные линии - прямые получились на рисунке. Как этого добиваются ? Мне почему-то кажется, что всегда наклонные должны бы выходить. Но вижу, что это не так
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #11 : 27-01-2012 20:24 » |
|
просто исходный сигнал такой. то что ты видишь вертикальные линии - означает что в сигнале в течении всего файла постоянно присутствуют компоненты с одной частотой и почти неизменной амплитудой(громкостью)
ну это как нажали на фортепьяно одну клавишу "Ля" средней октавы... одна нота - одна частота(грубо). пока она громко звучит - в сигнале присутствует частотная составляющая с частотой 440Гц и некоторой амплитуды(яркости) как только она начинает затихать - амплитуда падает(частота не меняется) - яркость пропадет)
|
|
|
|
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #12 : 27-01-2012 20:31 » |
|
кажись , понемногу доходит )) А косая линия -это, выходит, и есть тот таинственный сигнал, причём он не постоянный, а , вроде, краткий импульс
|
|
|
|
|
Записан
|
|
|
|
Dale
Блюзмен
Команда клуба
Offline
Пол:
|
 |
« Ответ #13 : 27-01-2012 20:38 » |
|
Алексей1153++, а чего нам по личкам прятаться, вроде ничего плохого не затеваем. Выкладывайте запись, будем смотреть. Если помеха монохромная, то можем попробовать вырезать узкополосным заградительным фильтром (например, параметрическим эквалайзером). Или, если у парней есть нормальная аппаратура, тогда подскажу им настройки, как эту помеху задавить на уровне железа.
|
|
|
|
|
Записан
|
Мы знаем о проблемах качества ПО примерно столько же, сколько в 1600-х знали о чуме. Мы видели агонию жертв и помогали сжигать тела. Мы не знаем, что именно явилось тому причиной; мы не знаем даже, единственна ли эта болезнь. Мы просто страдаем - и при этом продолжаем выливать нечистоты в источники чистой воды.
Tom Van Vleck
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #14 : 27-01-2012 20:40 » |
|
Dale, я ему ссылку на эту тему дал. Пусть сам расскажет, что ему надо , а мне, похоже, без стакана кефира не разобраться нифига ))
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #15 : 27-01-2012 20:45 » |
|
вот та галочка?) это сигнал, частота которого линейно уменьшается по времени. от высокой частоты в сторону низкой и обратно)
ее надо выделить из помех?)
|
|
|
|
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
Алексей1153++
кот глобальный и пушистый
Глобальный модератор
Offline
Златоуст, Россия Сообщений: 13
|
 |
« Ответ #16 : 28-01-2012 05:02 » |
|
видимо да ждём автора всей затеи 
|
|
|
|
|
Записан
|
|
|
|
|
RXL
|
 |
« Ответ #17 : 28-01-2012 14:02 » |
|
"Галочка" - это сигнал с качающейся частотой. Таких ровных в природе не встречается - сигнал явно искусственного происхождения. Обычно получают частотной модуляцией. Например, воздействием НЧ сигнала на запертый диод (не обязательно варикап), включенный в ВЧ колебательный контур. Подавить такой сигнал полосовым фильтром не выйдет - проще подавить модулирующий сигнал или нарушить условия модуляции.
|
|
|
|
|
Записан
|
|
|
|
|
Ochkarik
|
 |
« Ответ #18 : 28-01-2012 17:08 » |
|
RXL, чего гадать, надо подробностей дождаться) что за сигнал, каковы его параметры, что с ним надо сделать... какие его параметры необходимо выделить, какие требования к обнаружению. ну и что за среда распространения сигнала...
мне он пока напоминает ЛЧМ радиозонд в полосе пары МГц. если это так- то ничего "левого" в нем нет))) и если это так - то файл видимо в комплексной форме записан.
|
|
|
|
|
Записан
|
RTFM уже хоть раз наконец!  :[ ну или хотя бы STFW...
|
|
|
afess
Читатель
Offline
|
 |
« Ответ #19 : 28-01-2012 19:44 » |
|
Всем привет! Пишет автор затеи, по которой ведется разговор. Постараюсь максимально описать свою задачу: Есть wav файл с высокой частотой дискретизации (около 2 млн.) http://narod.ru/disk/38033302001/documents.zip.html (91 мб). Этот файл записывался с программы "Perseus", которая работает вкупе с одноименным приемником радио эфира в диапазоне от 2 до 40 Мгц (вроде бы). Сигнал писался на частоте 9 Мгц. На данном файле проскочил сигнал с ЛЧМ (короткая волна, она самая галочка на картинке выше), вероятно посланного из какой-то точки земного шара, отразившегося от ионосферы и попавшего в зону приема. Нужно написать программу на С++ под QT, которая сможет прочитать этот wav файл и отобразить и отобразить его частотный спектр Быстрого Преобразования Фурье (БПФ), подобными возможностями обладает программа Adobe Audition (картинка — это как раз wav файл открытый в этой программе в частотном спектре). Это первый этап моей работы, а в последующие как раз и надо будет работать над определением параметров таких вот сигналов — строить ионограммы по этим сигналам, прослеживать куда этот сигнал направлялся и разработать алгоритм местоопределения передатчиков сигналов ЛЧМ.
|
|
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
 |
« Ответ #20 : 28-01-2012 20:34 » |
|
afess, Я насколько знаю, точную точку передатчика узнают по трем пеленгам вынесенным на достаточно большие растояния. А у тебя еше отраженный (считай, хорошо искаженный) сигнал. И не факт, что можно даже уловить направление даже с узконаправленной антенной.
|
|
|
|
« Последнее редактирование: 28-01-2012 20:53 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
|
RXL
|
 |
« Ответ #21 : 28-01-2012 23:58 » |
|
Если нужна теория, рекомендую: http://www.dspguide.com/pdfbook.htmКнига уже много лет пополняется и бесплатно доступна в виде pdf. Дискретное преобразование Фурье берет на вход N семплов и дает на выход N/2+1 комплексных чисел, где каждое число отображает амплитуду и фазу для данной частоты (амплитуда, умноженная на cos и sin для фазы сигнала на данной частоте в начале семпла). Частота для числа - Fsample/n, где n = 1..N/2. Дополнительное число сверх N/2 дает амплитуду постоянной составляющей. Примерно так. Для поиска Фурье может и не потребоваться. Возможно можно обойтись сверткой (convolution).
|
|
|
|
« Последнее редактирование: 29-01-2012 00:08 от RXL »
|
Записан
|
|
|
|
afess
Читатель
Offline
|
 |
« Ответ #22 : 29-01-2012 07:24 »  |
|
Спасибо, DSP guide — очень полезное руководство, я нашел на русском языке, может кому-нибудь понадобится DSP_Guide_Перевод М.Ф.Козлова.zip
|
|
|
|
|
Записан
|
|
|
|
|