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

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

|
Здравствуйте, форумчане! Подскажите пожалуйста, как отфильтровать резкие изменения амплитуды. Частота: 100кГц Напряжение амплитуды, примерно: 2В Сложность в том, что присутствует плавное изменение амплитуды. В приложении форма сигнала и то чего я добиваюсь. Дальнейшая обработка будет в МК, нужно поймать горбушку для вызова прерывания. Побывал АМ демодулятор на диоде и ОУ, но в сигнале все равно присутствует пила и как отфильтровать, я уже всю голову сломал. Хотя бы направьте в каком направлении копать!
Сообщение отредактировал Vasily_ - Oct 30 2017, 09:30
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(15 - 29)
|
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 корпус). Вот когда будет приличная серия - тогда да, можно и переделать на программную реализацию. И т.д. и т.п.
|
|
|
|
|
Oct 31 2017, 21:17
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 15-04-17
Пользователь №: 96 556

|
Цитата(jcxz @ Oct 31 2017, 13:04)  Что именно неясно? Вам неясно почему решение вообще без каких либо мелкосхем и транзисторов лучше, чем их наличие? Я думал - это должно быть очевидно. Неясно почему 1 чип (МК), лучше чем огород из 5 (МК+3логики+сборка)? Все просто, 1 - цена. Эта "рассыпуха" стоит сущие копейки. 2 - надежность. Понятие зависание программы для "рассыпухи" отсутствует. 3 - не нужно монструозного МК, который тупо будет гонять данные с АЦП.
|
|
|
|
|
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, 05:58
|
Местный
  
Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142

|
Цитата(jcxz @ Nov 1 2017, 15:22)  DSP уровня TI-шного C55xx с такой задачей справится без вопросов. А на Cortex-M надо будет писать очень оптимально и наверное на асме (обработчик сэмплов). Афтору надо 16 каналов завести в проц - это только дсп и то не всякий справится , а с ним сложностей в изучении вагон. Если был бы один-два канала да, намного проще копеечным STM32F030 обойтись, который дешевле выбранной атмеги, имеет шустрое ацп и достаточно ресурсов для данной задачи без всяких асмов.
|
|
|
|
|
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: Да - и начинать надо не с АЦП и программирования, а с создания модели в Матлабе. Чтобы хоть примерно оценить требуемые для решения задачи ресурсы.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|