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

 
 
> Выделение резких изменений амплитуды
idle1
сообщение Oct 28 2017, 22:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367



Здравствуйте, форумчане!

Подскажите пожалуйста, как отфильтровать резкие изменения амплитуды.
Частота: 100кГц
Напряжение амплитуды, примерно: 2В
Сложность в том, что присутствует плавное изменение амплитуды.

В приложении форма сигнала и то чего я добиваюсь.
Дальнейшая обработка будет в МК, нужно поймать горбушку для вызова прерывания.

Побывал АМ демодулятор на диоде и ОУ, но в сигнале все равно присутствует пила и как отфильтровать, я уже всю голову сломал.
Хотя бы направьте в каком направлении копать!

Сообщение отредактировал Vasily_ - Oct 30 2017, 09:30
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Oct 31 2017, 07:55
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



От делителя R16 R17 зависит.
Go to the top of the page
 
+Quote Post
iliusmaster
сообщение Oct 31 2017, 08:29
Сообщение #3


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

Группа: Участник
Сообщений: 181
Регистрация: 15-04-17
Пользователь №: 96 556



Решение с пиковыми детекторами изящное и работоспособно при правильном выборе элементов в широком диапазоне частот и температур.
Совсем неясна любовь к использованию МК там, где 3 корпуса мелкосхем и сборка транзисторов решают задачу быстро, "дешево" и эффективно. Вот оно Использование МК ради использования МК!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 31 2017, 10:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(iliusmaster @ Oct 31 2017, 11:29) *
Совсем неясна любовь к использованию МК там, где 3 корпуса мелкосхем и сборка транзисторов решают задачу быстро, "дешево" и эффективно. Вот оно Использование МК ради использования МК!

Что именно неясно? Вам неясно почему решение вообще без каких либо мелкосхем и транзисторов лучше, чем их наличие? Я думал - это должно быть очевидно.
Неясно почему 1 чип (МК), лучше чем огород из 5 (МК+3логики+сборка)?
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 31 2017, 13:48
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(jcxz @ Oct 31 2017, 17:04) *
Неясно почему 1 чип (МК), лучше чем огород из 5 (МК+3логики+сборка)?

Везде есть свои плюсы и минусы, и каждый человек к ним имеет свой собственный набор весовых коэффициентов sm.gif

Возможно вам проще реализовать программно, но вы алгоритм еще не выложили, а Plain по-быстрому собрал и выложил готовую схему. Кому-то проще схему сделать, потому что время жмет, а программист не очень высокой квалификации и долго будет реализовывать, а кому-то надо 100к шт. выпустить - ему выгоднее привлечь стороннего.
С другой стороны, всё-равно надо плату/комплектацию заказывать-монтировать-проверять и что 1 корпус, что 10 - не будет играть большой роли(тем более у ТС на плате уже не 1 корпус). Вот когда будет приличная серия - тогда да, можно и переделать на программную реализацию. И т.д. и т.п.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 1 2017, 09:05
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(HardEgor @ Oct 31 2017, 16:48) *
Возможно вам проще реализовать программно, но вы алгоритм еще не выложили, а Plain по-быстрому собрал и выложил готовую схему.

Готовая - это ещё не говорит о том, что она будет работать так, как надо ТС. И даже не факт, что если сейчас, испытанная на каком-то сигнале эта схема будет работать достаточно удовлетворительно, то завтра, когда что-то немного изменится, оно так же будет работать.
А один из главных плюсов программной реализации - гибкость. Алгоритм в будущем нетрудно переделать, доработать под новые исходные данные. А вот схему...
Да и программная реализация там должна быть несложная.
И раздел здесь - "для начинающих", а это значит для людей развивающихся, а развиваться можно только пытаясь разобраться в чём-то новом, а не тупо повторяя чужое готовое решение.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Nov 1 2017, 11:58
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(jcxz @ Nov 1 2017, 12:05) *
А один из главных плюсов программной реализации - гибкость. Алгоритм в будущем нетрудно переделать, доработать под новые исходные данные. А вот схему...
Да и программная реализация там должна быть несложная.
И раздел здесь - "для начинающих", а это значит для людей развивающихся, а развиваться можно только пытаясь разобраться в чём-то новом, а не тупо повторяя чужое готовое решение.

Хороший алгоритм нахождения максимума (пусть даже у нас чистая синусоида) по десятку отсчетов на период можете предложить? Чтобы еще за период справлялся...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 1 2017, 12:22
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Tanya @ Nov 1 2017, 14:58) *
Хороший алгоритм нахождения максимума (пусть даже у нас чистая синусоида) по десятку отсчетов на период можете предложить? Чтобы еще за период справлялся...

Сразу - нет. Надо сперва в Матлабе пробовать.
Но я бы сначала попробовал выпрямить сигнал и прогнать его через простой ФНЧ с децимацией (может даже предварительной, чтобы уменьшить загрузку CPU).
Как видно - у автора длительность искомых событий примерно равна 4 периодам, так что можно сделать децимацию как минимум в 4 раза.
DSP уровня TI-шного C55xx с такой задачей справится без вопросов. А на Cortex-M надо будет писать очень оптимально и наверное на асме (обработчик сэмплов).
Go to the top of the page
 
+Quote Post
idle1
сообщение Nov 2 2017, 01:42
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367



Цитата(jcxz @ Nov 1 2017, 15:22) *
Сразу - нет. Надо сперва в Матлабе пробовать.
Но я бы сначала попробовал выпрямить сигнал и прогнать его через простой ФНЧ с децимацией (может даже предварительной, чтобы уменьшить загрузку CPU).
Как видно - у автора длительность искомых событий примерно равна 4 периодам, так что можно сделать децимацию как минимум в 4 раза.
DSP уровня TI-шного C55xx с такой задачей справится без вопросов. А на Cortex-M надо будет писать очень оптимально и наверное на асме (обработчик сэмплов).


Я тоже размышляю на тему перехода в МК, уж больно меня пугает такое количество аналоговой рассыпухи.
Сейчас пробую реализацию на стареньком ARM7TDMI. Прерывания с ADC для уменьшения количества циклов выношу в RAM. Частота известна и стабильна, нужно только при инициализации поймать верх горбушки, а далее измерять с заданной частотой и вносить корректировки.
Предложенная Plain’ом схема мне очень нравится, если с МК прогорит, то вернусь к ней.
* Жалко всего две руки и одна голова, а так бы и схему собирал и кодил одновременно sm.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 2 2017, 07:44
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(idle1 @ Nov 2 2017, 04:42) *
Сейчас пробую реализацию на стареньком ARM7TDMI. Прерывания с ADC для уменьшения количества циклов выношу в RAM. Частота известна и стабильна, нужно только при инициализации поймать верх горбушки, а далее измерять с заданной частотой и вносить корректировки.

Если хотите, чтобы получилось, то имхо - процессор надо всё-таки помощнее - хотя бы Cortex-M с частотой явно больше 100МГц.
И писать надо оптимально. А это уж явно не вытягивать сэмплы программно из АЦП - тут у вас всё быстродействие CPU только на это и уйдёт.
Явно нужно DMA+ADC и подумать над оптимальным расположением кода/данных в памяти.

Цитата(Andreas1 @ Nov 2 2017, 08:58) *
Афтору надо 16 каналов завести в проц - это только дсп и то не всякий справится , а с ним сложностей в изучении вагон. Если был бы один-два канала да, намного проще копеечным STM32F030 обойтись, который дешевле выбранной атмеги, имеет шустрое ацп и достаточно ресурсов для данной задачи без всяких асмов.

А где автор говорит про 16 каналов? Вроде в исходном задании только 1 канал....

Цитата(ViKo @ Nov 2 2017, 09:16) *
Компаратором (внешним или внутренним) находить переходы сигнала через 0. По срабатыванию запускать таймер или АЦП. Таймером или временем выборки подобрать, чтобы АЦП срабатывал на вершинах синусоид.

Ну да - и по малейшему шуму, вся работа идёт лесом.

PS: Да - и начинать надо не с АЦП и программирования, а с создания модели в Матлабе. Чтобы хоть примерно оценить требуемые для решения задачи ресурсы.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Nov 2 2017, 08:14
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(jcxz @ Nov 2 2017, 10:44) *
Ну да - и по малейшему шуму, вся работа идёт лесом.

Вот именно это я и подразумевала, когда писала про обработку. Тут как минимум по трем - пяти точкам в районе максимума надо проводить аппроксимацию. Квадратичную. Тут, конечно, отсутствие присутствия сдвига частоты и фазы приятно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 2 2017, 08:33
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ Nov 2 2017, 11:14) *
Вот именно это я и подразумевала, когда писала про обработку. Тут как минимум по трем - пяти точкам в районе максимума надо проводить аппроксимацию. Квадратичную. Тут, конечно, отсутствие присутствия сдвига частоты и фазы приятно.

Можно и пачку преобразований сделать, на максимальной частоте дискретизации. Хотя у синусоиды вершина не резко меняется, шаг влево-вправо за попытку к бегству не считается.
Зависит от точности задаваемого порога. А он, мне думается, ±лапоть.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Nov 2 2017, 08:53
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ Nov 2 2017, 11:33) *
Хотя у синусоиды вершина не резко меняется, шаг влево-вправо за попытку к бегству не считается.

Помеха может резко поменять. Кроме того, ТС не сказал, как меняется (быстро, то, что он хочет отловить) сигнал. Может ли он резко изломать синусоиду как раз вблизи ее максимума...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 2 2017, 09:02
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Tanya @ Nov 2 2017, 11:53) *
Помеха может резко поменять.

Вот именно. А ещё ТС не сказал об уровне шумов в его канале. От этого очень сильно будет зависеть решение. На картинках сигнал довольно чистый.
Go to the top of the page
 
+Quote Post
idle1
сообщение Nov 2 2017, 09:17
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367



Цитата(jcxz @ Nov 2 2017, 12:02) *
Вот именно. А ещё ТС не сказал об уровне шумов в его канале. От этого очень сильно будет зависеть решение. На картинках сигнал довольно чистый.

Шумов в канале нет, но есть плавное изменение амплитуды (его отсеиваю по средней). Задача поймать именно резкий провал. Сейчас я делаю аппроксимацию по 5ти последним пикам синусоиды.
Плавное изменение - это изменение на +/-0.1В/сек.
Резкое - от 0.4В за период.
Частотного и фазового сдвига нет.

Сообщение отредактировал idle1 - Nov 2 2017, 09:18
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- idle1   Выделение резких изменений амплитуды   Oct 28 2017, 22:10
- - Plain   Например, два чередуемых пиковых детектора и компа...   Oct 29 2017, 02:11
|- - idle1   Цитата(Plain @ Oct 29 2017, 05:11) Наприм...   Oct 29 2017, 12:14
- - Plain   RE: Выделение резких изменений амплитуды   Oct 29 2017, 22:29
|- - idle1   Цитата(Plain @ Oct 30 2017, 01:29) Спаси...   Oct 29 2017, 23:10
- - toweroff   Plain, не совсем понятна идея работы Q3 и Q5. Если...   Oct 30 2017, 06:11
|- - HardEgor   Цитата(toweroff @ Oct 30 2017, 13:11) Pla...   Oct 30 2017, 08:35
|- - Plain   Цитата(toweroff @ Oct 30 2017, 09:11) не ...   Oct 30 2017, 18:57
|- - Tarbal   Цитата(Plain @ Oct 30 2017, 22:57) Данная...   Oct 31 2017, 04:03
- - Molotov   Здравствуйте. Я так понял, что нужно найти резкое ...   Oct 30 2017, 09:53
|- - idle1   Цитата(Molotov @ Oct 30 2017, 12:53) Здра...   Oct 30 2017, 10:06
|- - jcxz   Цитата(idle1 @ Oct 30 2017, 13:06) Я проб...   Oct 30 2017, 11:29
|- - Molotov   Ну микроконтроллеры ATMega не такие уж и слабые. Я...   Oct 30 2017, 13:54
|- - idle1   Цитата(Molotov @ Oct 30 2017, 16:54) Ну м...   Oct 30 2017, 14:45
|- - jcxz   Цитата(idle1 @ Oct 30 2017, 17:45) ARM и ...   Oct 30 2017, 15:28
- - Molotov   Куда такие частоты лупите - уж после детектора явн...   Oct 31 2017, 06:47
- - ViKo   Plain - молодец! И все-то у него получается. ...   Oct 31 2017, 07:15
- - Alexashka   Обнаруживает спад в одной полуволне.   Oct 31 2017, 07:47
||||- - Andreas1   Цитата(jcxz @ Nov 2 2017, 10:44) А где ав...   Nov 2 2017, 09:49
||||- - idle1   Цитата(Andreas1 @ Nov 2 2017, 12:49) В 9 ...   Nov 2 2017, 10:20
||||- - jcxz   Цитата(idle1 @ Nov 2 2017, 13:20) Каналов...   Nov 2 2017, 14:04
|||- - Andreas1   Цитата(jcxz @ Nov 1 2017, 15:22) DSP уров...   Nov 2 2017, 05:58
||- - iliusmaster   Цитата(jcxz @ Oct 31 2017, 13:04) Что име...   Oct 31 2017, 21:17
|- - Tarbal   Цитата(iliusmaster @ Oct 31 2017, 12:29) ...   Nov 4 2017, 02:00
- - ViKo   Компаратором (внешним или внутренним) находить пер...   Nov 2 2017, 06:16
- - ViKo   Еще бы знать нормальную амплитуду сигнала. И част...   Nov 2 2017, 09:18


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

 


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


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