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

 
 
> Помогите со схемно-программным решением для измерения периода, при ограниченных ресурсах
Diusha
сообщение Dec 27 2010, 03:24
Сообщение #1


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



На вход девайса может поступать периодический сигнал. А может не поступать, а вместо него – лабуда. Будем считать, что если сигнал есть, то он по крайней мере в разы больше шума, но когда cигнала нет, «лабуда» м.б. большой (как сигнал, если бы он был). Задача – определить, что появился сигнал и измерить его период. Диапазон 1…10 мс, точность нужна порядка 2% (все числа пока ориентировочные).
Форма сигнала может быть любой, вовсе не обязательно, что только с двумя экстремумами по времени за период.
Вычислительная мощность ограничена, ибо AVR => 8 бит, невысокая тактовая. Плюс загружен еще другой задачей.
Обрабатывать непрерывный поток с АЦП, боюсь, некогда, поэтому пытаюсь его минимизировать. Попытался сделать так:

сигнал (с правильной пост. сост.) завожу на аналоговый компаратор и АЦП. Компаратор выдает прерывание по каждой смене состояния (т.е. в обе стороны). По прерыванию запускаю АЦП, и в идеале должен получить отсчеты в моменты минимумов и максимумов.

Реально, конечно, в моменты горбов получаю кучу отсчетов, часть из которых отсекаю по признаку «слишком рано после предыдущего».

Вопросы:

1. Удачно ли такое схемное-программное решение для получения отсчетов?

2. (в случае положительного ответа на 1.) Каким путем посоветуете поступить с полученными отсчетами?
На заметке а) быстрое преобразование Фурье, б) автокорреляционная функция. Есть еще и в) мысля в сторону алгоритмов поиска периода подстроки в строке.

3. Или вообще надо всё совсем не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexeyv
сообщение Dec 28 2010, 00:41
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



частота полезного периодического сигнала в каком диапазоне?
может стоит сначала прогнать сигнал через полосовой фильтр, а потом производить дальнейшую обработку?
Go to the top of the page
 
+Quote Post
Diusha
сообщение Dec 28 2010, 10:27
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(alexeyv @ Dec 28 2010, 06:41) *
частота полезного периодического сигнала в каком диапазоне?
может стоит сначала прогнать сигнал через полосовой фильтр, а потом производить дальнейшую обработку?

Я же написал: период полезного сигнала 1...10 мс (ориентировочно). Наверно нечетко сформулировал
Фильтры ставить не хочется, хочетс с самым минимальным минимумом компонентов. Ну если уж окажется никак, то тут уж шо уж тут уж (с).
Тем более, что шумы в основном примерно в том же диапазоне

Цитата(KARLSON @ Dec 28 2010, 08:22) *
Так отсчёты не нужны для основной рабготы? А что если Вам считать период таймером (наверника он есть в АВР), запускающийся от прерывания компаратора?

Само собой, таймером определяю моменты срабатывания компаратора (Input Capture mode).
Я привел пример формы сигнала, для которого в идеале за период (его) я должен получить 6 отсчетов. Но сигнал может быть и "хуже" (больше отсчетов), а может быть синусоида (2 отсчета), наперед это неизвестно. Поэтому чтобы из кучи отсчетов выудить период, нужен какой-то алгоритм. Это раз. А два - это то, что реально на период я получаю не 6 (как в примере), а десятки отсчетов, из которых надо как-то отсечь лишние (чтобы меньше обрабатывать), но "не выплеснуть и младенца".

P.S. Под отсчетом я здесь подразумеваю пару: [момент времени (по сигналу с компаратора); величина в этот момент (с АЦП)]

Сообщение отредактировал Diusha - Dec 28 2010, 10:28
Go to the top of the page
 
+Quote Post
alexkok
сообщение Dec 29 2010, 04:39
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837



Цитата(Diusha @ Dec 28 2010, 17:27) *
Я же написал: период полезного сигнала 1...10 мс (ориентировочно). Наверно нечетко сформулировал
Фильтры ставить не хочется, хочетс с самым минимальным минимумом компонентов.

Но придется, хотя бы одно звено.
Цитата
Само собой, таймером определяю моменты срабатывания компаратора (Input Capture mode).
Я привел пример формы сигнала, для которого в идеале за период (его) я должен получить 6 отсчетов. Но сигнал может быть и "хуже" (больше отсчетов), а может быть синусоида (2 отсчета), наперед это неизвестно. Поэтому чтобы из кучи отсчетов выудить период, нужен какой-то алгоритм. Это раз. А два - это то, что реально на период я получаю не 6 (как в примере), а десятки отсчетов, из которых надо как-то отсечь лишние (чтобы меньше обрабатывать), но "не выплеснуть и младенца".

P.S. Под отсчетом я здесь подразумеваю пару: [момент времени (по сигналу с компаратора); величина в этот момент (с АЦП)]

Предлагаю:
1. Изменить схему, добавив гистерезис
Прикрепленное изображение

2. Алгоритм примерно такой:
- считаете средний, максимальный и минимальный полупериоды/периоды на скользящем окне;
- считаете некое подобие "дисперсии", попроще;
- если "дисперсия" меньше порога, значит есть сигнал.


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Diusha   Помогите со схемно-программным решением для измерения периода   Dec 27 2010, 03:24
|- - Diusha   Цитата(alex_os @ Dec 29 2010, 09:36) Край...   Dec 30 2010, 04:12
|- - alexkok   Цитата(Diusha @ Dec 30 2010, 11:12) Вот э...   Dec 30 2010, 05:12
|- - Diusha   Цитата(alexkok @ Dec 30 2010, 11:12) У ме...   Dec 30 2010, 11:22
|- - alexkok   Цитата(Diusha @ Dec 30 2010, 17:22) Ну во...   Dec 30 2010, 15:18
|- - Diusha   Цитата(alexkok @ Dec 30 2010, 21:18) Этот...   Dec 31 2010, 05:14
|- - Diusha   Вот примеры реальных данных, полученных с моей схе...   Jan 9 2011, 00:51
- - KARLSON   Цитата(Diusha @ Dec 27 2010, 09:24) 2.Как...   Dec 28 2010, 02:22
- - Евгений Николаев   Цитатаесли сигнал есть, то он по крайней мере в ра...   Dec 28 2010, 11:14
|- - Diusha   Цитата(Евгений Николаев @ Dec 28 2010, 17...   Dec 29 2010, 03:05
|- - alex_os   Цитата(Diusha @ Dec 29 2010, 09:05) Если ...   Dec 29 2010, 03:36
- - Designer56   а просто отфильтровать сигнал на входе до 1 кГц? П...   Dec 28 2010, 13:10
- - GetSmart   Цитата(Diusha @ Dec 27 2010, 11:24) По пр...   Dec 28 2010, 14:47


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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 01:46
Рейтинг@Mail.ru


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