реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
Ctrl-Alt-De1
сообщение Nov 27 2009, 18:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



Есть сигнал, принятый с платы АЦП (ЛА-н10м8PCI100Mhz) Необходимо определить его период. Подскажите пожалуйста алгоритмы, с помощью которых это можно было бы сделать.
Пример сигнала:
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 86%
Прикрепленное изображение
1195 x 165 (129.87 килобайт)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 27 2009, 18:47
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вообще, классический способ для сигналов со сложным спектром - корелляция. Но на картинке сигнал больше похож на АМ. И тут может другой способ даст лучший результат. Сперва выпрямление, а потом...


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 27 2009, 19:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



Автокорреляция дает следующую картину:
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 86%
Прикрепленное изображение
1201 x 645 (391.94 килобайт)

И что теперь с ней делать?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 27 2009, 19:19
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Расстояние между вершинами = период.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 27 2009, 19:49
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



Цитата(GetSmart @ Nov 28 2009, 00:19) *
Расстояние между вершинами = период.


Это конечно хорошо, вот только как определить это расстояние, я не знаю. Есть идея построить огибающую автрокорреляции, а затем проаппроксимировать ее синусоидой, а уже у синусоиды с известным аналитическим выражением легко определить период... Вот только как-то это все мне не очень нравится. Может есть другие варианты? Кстати, можете рассказать алгоритм построения огибающей и аппроксимации синусоидой? А то google что-то ничего толкового не находит...
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 28 2009, 00:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Сигнал чем-то напоминает речь... С виду... Может поможет - но есть немало информации (в сети, в описаниях вокодеров) по оценке периода основного тона речевого сигнала. Очень возможно, что это то, что Вам нужно.

Что касается вашей АКФ - фильтрануть ее ФНЧ, и потом просто найти максимумы.
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 28 2009, 09:07
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



А вот для этого сигнала(тот, что сверху), АКФ дает совершенно невразумительный результат(тот, что снизу). Как же быть? Ведь это сигнал с одного и того же датчика...
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 86%
Прикрепленное изображение
1193 x 858 (305.01 килобайт)
Go to the top of the page
 
+Quote Post
serebr
сообщение Nov 28 2009, 11:11
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Цитата(Ctrl-Alt-De1 @ Nov 28 2009, 01:07) *
Автокорреляция дает следующую картину:
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 74%
Прикрепленное изображение
1201 x 645 (391.94 килобайт)

И что теперь с ней делать?

Теперь профильтровать, т.е. убрать высокие частоты. После этого решить, что требуется измерить - минимальный повтор в сигнале или кратные повторы тоже. На картинке автокорреляции первая группа максимумов соответствует минимальному периоду, вторая группа - двойному периоду.

P.S. Судя по картинке исходного сигнала, здесь мы имеем дело с акустическим устройством, например пьезокерамическим приёмником. Причём характерный резонанс составляет около 10 отсчётов АЦП. После вычисления автокорреляции период основной (резонансной) частоты колебаний удваивается и становится равным примерно 5 отсчётам. Значит достаточно ВЧ фильтра, убирающего колебания на графике автокорреляции с периодом помехи большим, чем примерно 5 отсчётов АЦП.

P.P.S. Для работы с источниками сигнала, имеющими достаточно выраженный резонансный характер, хорошо подходит технология Гильберт-преобразования с центральной частотой, равной резонансной частоте. После этого из двух квадратур вычисляется модуль вектора (алгоритм CORDIC), т.е. огибающая сигнала.
Огибающая сигнала, найденная по такой схеме, будет гладкой функцией без паразитных колебаний. Её автокорреляционная функция тоже будет гладкой.

Сообщение отредактировал serebr - Nov 28 2009, 11:26
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 28 2009, 11:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



serebr, спасибо, будем читать smile.gif
Go to the top of the page
 
+Quote Post
serebr
сообщение Nov 28 2009, 12:16
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Ctrl-Alt-De1 - выложи файл с данными исходной картинки. Я посчитаю через преобразование Гильберта и выложу результат - картинку.
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 28 2009, 18:39
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



Файл бинарный, содержит двухбайтовые целые с прямым порядком байт. Это только малая часть файла, весь слишком долго загружать (~50Мб), но думаю этого достаточно для примера
Signal.dat
Go to the top of the page
 
+Quote Post
serebr
сообщение Nov 28 2009, 18:55
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Сигнал, похоже, обрезан (ограничен) по амплитуде значениями от -128 до +127. На ограничениях алгоритм будет работать некорректно. На самой первой картинке сигнал был необрезан, подобного нет?
Go to the top of the page
 
+Quote Post
Ctrl-Alt-De1
сообщение Nov 28 2009, 19:03
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-11-09
Пользователь №: 53 910



На первой картинке просто амплитуда сигнала не превысила 127. Но, видимо так происходит не всегда sad.gif. сам только сейчас заметил. АЦП то 8-ми разрядный, отсюда и ограничение...
Go to the top of the page
 
+Quote Post
serebr
сообщение Nov 29 2009, 03:30
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Результат обработки приведен на картинке.
Первый график - исходный сигнал.
Второй - исходный + квадратура после преобразования Гильберта
Третий - модуль вектора (огибающая сигнала)
Четвёртый - автокорреляция
Красными прямоугольниками показаны области ограничения исходного сигнала и соответствующие им погрешности в работе алгоритма (паразитные колебания огибающей).

P.S. Дополнительной фильтрации по высоким частотам не потребовалось.
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 83%
Прикрепленное изображение
988 x 1480 (687.35 килобайт)


Сообщение отредактировал serebr - Nov 29 2009, 04:21
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 29 2009, 04:22
Сообщение #15


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(serebr @ Nov 29 2009, 09:30) *
Четвёртый - автокорреляция

АКФ какого сигнала? Огибающей или исходного?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 06:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01682 секунд с 7
ELECTRONIX ©2004-2016