|
Выделение резких изменений амплитуды |
|
|
|
Oct 28 2017, 22:10
|
Участник

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

|
Здравствуйте, форумчане! Подскажите пожалуйста, как отфильтровать резкие изменения амплитуды. Частота: 100кГц Напряжение амплитуды, примерно: 2В Сложность в том, что присутствует плавное изменение амплитуды. В приложении форма сигнала и то чего я добиваюсь. Дальнейшая обработка будет в МК, нужно поймать горбушку для вызова прерывания. Побывал АМ демодулятор на диоде и ОУ, но в сигнале все равно присутствует пила и как отфильтровать, я уже всю голову сломал. Хотя бы направьте в каком направлении копать!
Сообщение отредактировал Vasily_ - Oct 30 2017, 09:30
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Oct 31 2017, 10:04
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(iliusmaster @ Oct 31 2017, 11:29)  Совсем неясна любовь к использованию МК там, где 3 корпуса мелкосхем и сборка транзисторов решают задачу быстро, "дешево" и эффективно. Вот оно Использование МК ради использования МК! Что именно неясно? Вам неясно почему решение вообще без каких либо мелкосхем и транзисторов лучше, чем их наличие? Я думал - это должно быть очевидно. Неясно почему 1 чип (МК), лучше чем огород из 5 (МК+3логики+сборка)?
|
|
|
|
|
Oct 31 2017, 13:48
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(jcxz @ Oct 31 2017, 17:04)  Неясно почему 1 чип (МК), лучше чем огород из 5 (МК+3логики+сборка)? Везде есть свои плюсы и минусы, и каждый человек к ним имеет свой собственный набор весовых коэффициентов  Возможно вам проще реализовать программно, но вы алгоритм еще не выложили, а Plain по-быстрому собрал и выложил готовую схему. Кому-то проще схему сделать, потому что время жмет, а программист не очень высокой квалификации и долго будет реализовывать, а кому-то надо 100к шт. выпустить - ему выгоднее привлечь стороннего. С другой стороны, всё-равно надо плату/комплектацию заказывать-монтировать-проверять и что 1 корпус, что 10 - не будет играть большой роли(тем более у ТС на плате уже не 1 корпус). Вот когда будет приличная серия - тогда да, можно и переделать на программную реализацию. И т.д. и т.п.
|
|
|
|
|
Nov 1 2017, 09:05
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(HardEgor @ Oct 31 2017, 16:48)  Возможно вам проще реализовать программно, но вы алгоритм еще не выложили, а Plain по-быстрому собрал и выложил готовую схему. Готовая - это ещё не говорит о том, что она будет работать так, как надо ТС. И даже не факт, что если сейчас, испытанная на каком-то сигнале эта схема будет работать достаточно удовлетворительно, то завтра, когда что-то немного изменится, оно так же будет работать. А один из главных плюсов программной реализации - гибкость. Алгоритм в будущем нетрудно переделать, доработать под новые исходные данные. А вот схему... Да и программная реализация там должна быть несложная. И раздел здесь - "для начинающих", а это значит для людей развивающихся, а развиваться можно только пытаясь разобраться в чём-то новом, а не тупо повторяя чужое готовое решение.
|
|
|
|
|
Nov 1 2017, 12:22
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Tanya @ Nov 1 2017, 14:58)  Хороший алгоритм нахождения максимума (пусть даже у нас чистая синусоида) по десятку отсчетов на период можете предложить? Чтобы еще за период справлялся... Сразу - нет. Надо сперва в Матлабе пробовать. Но я бы сначала попробовал выпрямить сигнал и прогнать его через простой ФНЧ с децимацией (может даже предварительной, чтобы уменьшить загрузку CPU). Как видно - у автора длительность искомых событий примерно равна 4 периодам, так что можно сделать децимацию как минимум в 4 раза. DSP уровня TI-шного C55xx с такой задачей справится без вопросов. А на Cortex-M надо будет писать очень оптимально и наверное на асме (обработчик сэмплов).
|
|
|
|
|
Nov 2 2017, 01:42
|
Участник

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

|
Цитата(jcxz @ Nov 1 2017, 15:22)  Сразу - нет. Надо сперва в Матлабе пробовать. Но я бы сначала попробовал выпрямить сигнал и прогнать его через простой ФНЧ с децимацией (может даже предварительной, чтобы уменьшить загрузку CPU). Как видно - у автора длительность искомых событий примерно равна 4 периодам, так что можно сделать децимацию как минимум в 4 раза. DSP уровня TI-шного C55xx с такой задачей справится без вопросов. А на Cortex-M надо будет писать очень оптимально и наверное на асме (обработчик сэмплов). Я тоже размышляю на тему перехода в МК, уж больно меня пугает такое количество аналоговой рассыпухи. Сейчас пробую реализацию на стареньком ARM7TDMI. Прерывания с ADC для уменьшения количества циклов выношу в RAM. Частота известна и стабильна, нужно только при инициализации поймать верх горбушки, а далее измерять с заданной частотой и вносить корректировки. Предложенная Plain’ом схема мне очень нравится, если с МК прогорит, то вернусь к ней. * Жалко всего две руки и одна голова, а так бы и схему собирал и кодил одновременно
|
|
|
|
|
Nov 2 2017, 07:44
|
Гуру
     
Группа: Свой
Сообщений: 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: Да - и начинать надо не с АЦП и программирования, а с создания модели в Матлабе. Чтобы хоть примерно оценить требуемые для решения задачи ресурсы.
|
|
|
|
|
Nov 2 2017, 09:49
|
Местный
  
Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142

|
Цитата(jcxz @ Nov 2 2017, 10:44)  А где автор говорит про 16 каналов? Вроде в исходном задании только 1 канал.... В 9 сообщении. Компаратор по переходу через ноль, запуск ацп с задержкой в почти четверть периода и обработка. Канала 2..3 можно обработать для нешумного сигнала и без матлабов и дсп дешевым армом на 48Мгц. Можно еще и с компаратора не сразу на старт таймера, а через ФАПЧ цифровой , если фронты дрожат. А 16каналов - это уже другого уровня проц нужен или несколько попроще.
|
|
|
|
Сообщений в этой теме
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         Tanya Цитата(jcxz @ Nov 2 2017, 10:44) Ну да - ... Nov 2 2017, 08:14          ViKo Цитата(Tanya @ Nov 2 2017, 11:14) Вот име... Nov 2 2017, 08:33           Tanya Цитата(ViKo @ Nov 2 2017, 11:33) Хотя у с... Nov 2 2017, 08:53            jcxz Цитата(Tanya @ Nov 2 2017, 11:53) Помеха ... Nov 2 2017, 09:02             idle1 Цитата(jcxz @ Nov 2 2017, 12:02) Вот имен... Nov 2 2017, 09:17          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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|