Ctrl-Alt-De1 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Есть сигнал, принятый с платы АЦП (ЛА-н10м8PCI100Mhz) Необходимо определить его период. Подскажите пожалуйста алгоритмы, с помощью которых это можно было бы сделать. Пример сигнала: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Вообще, классический способ для сигналов со сложным спектром - корелляция. Но на картинке сигнал больше похож на АМ. И тут может другой способ даст лучший результат. Сперва выпрямление, а потом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Автокорреляция дает следующую картину: И что теперь с ней делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Расстояние между вершинами = период. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Расстояние между вершинами = период. Это конечно хорошо, вот только как определить это расстояние, я не знаю. Есть идея построить огибающую автрокорреляции, а затем проаппроксимировать ее синусоидой, а уже у синусоиды с известным аналитическим выражением легко определить период... Вот только как-то это все мне не очень нравится. Может есть другие варианты? Кстати, можете рассказать алгоритм построения огибающей и аппроксимации синусоидой? А то google что-то ничего толкового не находит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба Сигнал чем-то напоминает речь... С виду... Может поможет - но есть немало информации (в сети, в описаниях вокодеров) по оценке периода основного тона речевого сигнала. Очень возможно, что это то, что Вам нужно. Что касается вашей АКФ - фильтрануть ее ФНЧ, и потом просто найти максимумы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба А вот для этого сигнала(тот, что сверху), АКФ дает совершенно невразумительный результат(тот, что снизу). Как же быть? Ведь это сигнал с одного и того же датчика... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 (изменено) · Жалоба Автокорреляция дает следующую картину: И что теперь с ней делать? Теперь профильтровать, т.е. убрать высокие частоты. После этого решить, что требуется измерить - минимальный повтор в сигнале или кратные повторы тоже. На картинке автокорреляции первая группа максимумов соответствует минимальному периоду, вторая группа - двойному периоду. P.S. Судя по картинке исходного сигнала, здесь мы имеем дело с акустическим устройством, например пьезокерамическим приёмником. Причём характерный резонанс составляет около 10 отсчётов АЦП. После вычисления автокорреляции период основной (резонансной) частоты колебаний удваивается и становится равным примерно 5 отсчётам. Значит достаточно ВЧ фильтра, убирающего колебания на графике автокорреляции с периодом помехи большим, чем примерно 5 отсчётов АЦП. P.P.S. Для работы с источниками сигнала, имеющими достаточно выраженный резонансный характер, хорошо подходит технология Гильберт-преобразования с центральной частотой, равной резонансной частоте. После этого из двух квадратур вычисляется модуль вектора (алгоритм CORDIC), т.е. огибающая сигнала. Огибающая сигнала, найденная по такой схеме, будет гладкой функцией без паразитных колебаний. Её автокорреляционная функция тоже будет гладкой. Изменено 28 ноября, 2009 пользователем serebr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба serebr, спасибо, будем читать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба Ctrl-Alt-De1 - выложи файл с данными исходной картинки. Я посчитаю через преобразование Гильберта и выложу результат - картинку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба Файл бинарный, содержит двухбайтовые целые с прямым порядком байт. Это только малая часть файла, весь слишком долго загружать (~50Мб), но думаю этого достаточно для примера Signal.dat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба Сигнал, похоже, обрезан (ограничен) по амплитуде значениями от -128 до +127. На ограничениях алгоритм будет работать некорректно. На самой первой картинке сигнал был необрезан, подобного нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ctrl-Alt-De1 0 28 ноября, 2009 Опубликовано 28 ноября, 2009 · Жалоба На первой картинке просто амплитуда сигнала не превысила 127. Но, видимо так происходит не всегда :(. сам только сейчас заметил. АЦП то 8-ми разрядный, отсюда и ограничение... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 29 ноября, 2009 Опубликовано 29 ноября, 2009 (изменено) · Жалоба Результат обработки приведен на картинке. Первый график - исходный сигнал. Второй - исходный + квадратура после преобразования Гильберта Третий - модуль вектора (огибающая сигнала) Четвёртый - автокорреляция Красными прямоугольниками показаны области ограничения исходного сигнала и соответствующие им погрешности в работе алгоритма (паразитные колебания огибающей). P.S. Дополнительной фильтрации по высоким частотам не потребовалось. Изменено 29 ноября, 2009 пользователем serebr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 29 ноября, 2009 Опубликовано 29 ноября, 2009 · Жалоба Четвёртый - автокорреляция АКФ какого сигнала? Огибающей или исходного? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться