Например TDA7294

Форум РадиоКот • Просмотр темы - Нескольно простых вопросов о программировании AVR на Си.
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб авг 08, 2020 21:17:00

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1023 ]     ... , , , 48, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 13:08:04 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, вот это как раз знать на фиг не нужно. Нужно знать функцию распределения. А после этого уже можно говорить о фильтрации и о проценте потерь информации, вызванном помехами, шумами и прочими искажениями.
Не важно буквы это или нет. Важно только то, представляет ли сама принимаемая информация белый шум или нет. Для стохастичной информации любая фильтрация бессмысленна, для детерминированной - фильтрация всегда лучше, чем ничего.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 14:16:01 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
Не важно буквы это или нет.

мне кажется, что важно.

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

даже вредна


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 14:32:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, поясню подробней. Пусть у нас принимается совершенно случайный поток букв. Причем мы точно знаем, что вместо каждой десятой буквы принимаем букву "А". Поможет ли эта информация нам восстановить утерянную букву? Никак.
Теперь пусть мы значем, что буквами передаются слова на русском языке. Тогда, например, обнаружив мягкий знак после этой каждой десятой буквы "А", мы хотя бы сможем утверждать, что там была согласная, а не гласная буква.
Более близкий к жизни пример. Теперь пусть у нас буквы образуют данные в base64, закодированные детерминированным образом. Например, кодом Рида-Соломона. Тогда, за счет детерменированности мы легко восстановим эту каждую десятую букву, даже не зная, как часто возникает ошибка и какая именно буква ошибочная.
Анализ функции распределения в математической статистике позволяет найти эту детерминированность, если она вообще есть. Поэтому я и говорю, что в общем случае, начинать надо с него.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 15:26:38 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, поясню подробней. Пусть у нас принимается совершенно случайный поток букв.

я имел ввиду не случайный поток


Вернуться наверх
 
Вебинар «Каждому ключу — свой драйвер» (13.08.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре, который будет посвящен теме драйверов управления транзисторами компании Infineon. Мы рассмотрим четыре различных технологии изготовления микросхем драйверов, в чём их отличия и особенности.

Зарегистрироваться на вебинар>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 15:40:40 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, значит детерминированный? Вот и начинаем с поиска функции распределения для нахождения этой детерминированности.


Вернуться наверх
 
Новый ХИТ FANSO CR123A/SN

Параметры новой батарейки показывают прекрасные результаты. Она используется для приложений с повышенными импульсами тока. Широко применяется в охранно-пожарных датчиках, устройствах телеметрии, поисковых маячках, LED-фонарях и других промышленных и бытовых устройствах.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 15:47:33 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, значит детерминированный? Вот и начинаем с поиска функции распределения для нахождения этой детерминированности.

не знаю, как это сделать.

Я бы сделал так, между передающим девайсом и линией связи поставил бы контроллер, который бы формировал контрольную сумму и передавал её и инфу в линию связи. Почему так: потому, что, как я понял, числа приходят с большим периодом, порядка минут, что говорит о том, что все они важны и их нельзя усреднять и фильтровать


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 15:56:19 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, большой период - это тоже детерминированность. Но тут как раз медианная фильтрация достаточна. Пусть мы считаем медиану с измерений, происходящих с частотой в N раз большей частоты изменения информации в окне фильтрации M<N. Тогда, если ошибочное значение на входах существует всегда менее, чем половина окна фильтрации, мы сможем получать правильные значения после фильтрации.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 16:02:01 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, большой период - это тоже детерминированность. Но тут как раз медианная фильтрация достаточна. Пусть мы считаем медиану с измерений, происходящих с частотой в N раз большей частоты изменения информации в окне фильтрации M<N. Тогда, если ошибочное значение на входах существует всегда менее, чем половина окна фильтрации, мы сможем получать правильные значения после фильтрации.

ну вот смотри, допустим девайс выдает температуру наскольких пациентов, у одного 34, у другого 36, у третьего 39. Теперь берем и усредняем - средняя температура - 36.3.

Теперь вопрос, о чем она может сказать доктору?


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 16:11:21 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, а кто предлагал усреднять???


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 16:20:35 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, а кто предлагал усреднять???

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 17:02:51 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, я тут уже битый час Вам про медианную фильтрацию рассказываю, а Вы вдруг про усреднение опять. Линейная фильтрация, частным случаем которой и является усреднение, для устранения импульсных помех не применима! От слова "вообще". Она, в отличии от медианной фильтрации, всегда искажает данные. Результатом медианной фильтрации всегда будет одно из значений выборки. Результатом линейной фильтрации, в общем случае, значение, которого в выборке не было. Разницу ощущаете?

Добавлено after 29 minutes 51 second:
ozonn, попробую на пальцах показать.
Пусть передается последовательность букв CFLLX. Пусть есть только импульсные помехи, причем длительности не более 1/4 длительности передачи. То есть, если мы будем считывать данные в шесть раз (N) чаще, чем они изменяются, то окне фильтрации из пяти (M<N) элементов у нас будет не более двух ошибочных считываний.
Например, получаем на входе такую последовательность:
CACCCE EFFFZZ LLLMNL LLLMNL XXXMNX
Вот что происходит в нашем окне. Последняя буква - медиана окна:
Код:
1   CACCC   C
2   ACCCE   C
3   CCCEE   C
4   CCEEF   E
5   CEEFF   E
6   EEFFF   F
7   EFFFZ   F
8   FFFZZ   F
9   FFZZL   F
10   FZZLL   L
11   ZZLLL   L
12   ZLLLM   L
13   LLLMN   L
14   LLMNL   L
15   LMNLL   L
16   MNLLL   L
17   NLLLM   L
18   LLLMN   L
19   LLMNL   L
20   LMNLX   M
21   MNLXX   N
22   NLXXX   X
23   LXXXM   X
24   XXXMN   X
25   XXMNX   X

Как видим, если три (M-[M/2]) значения подряд неизменны - это результат медианной фильтрации потока. Если K*6+3 (K*N+M-[M/2]) значения неизменны, то значит К символов подряд во входном потоке повторяются.
Таким образом, получим восстановленную последовательность CFLLX


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 18:29:46 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт сен 14, 2010 23:07:10
Сообщений: 178
Откуда: Ростов
Рейтинг сообщения: 0
baron_P, от импульсных помех избавляются медианный фильтром, а не усреднением. То бишь, формируем скользящее окно из N показаний. N - нечётное. Окно лучше формировать списком. В списке держим N последних показаний в отсортированном порядке. Среднее показание - наша медиана. При поступлении нового показания удаляем из списка самое старое показание и вставляем в список, сохраняя сортировку по значениям показаний, новое показание. Средний элемент списка снова наша медиана.

Спасибо, почитал по медианный фильтр, выглядит подходящим, но пока времени не было запрограмить. У меня на входе число 0..4095. Меняться может произвольно, но точное значение не важно - ошибка в десятки проблем не несет. А вот сотни и тысячи - уже плохо. Сигнал меняется не чаще 100 Гц. Сочетание RC-цепочки на входе и медианного фильтра, думаю, будет достаточным.

_________________
We do what we must because we can (c) GLaDOS


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн июн 10, 2019 18:35:57 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
baron_P, если скорость изменения сигнала может быть различной, то есть смысл рассмотреть вариант адаптивного изменения величины окна медианного фильтра, в зависимости от скорости изменения сигнала.
Если много значительных коротких выбросов, то в медианном фильтре лучше предварительно учесть дисперсию. Например, посчитать не сразу медиану, а значения второго и третьего квартиля. Затем отсечь все выбросы, находящиеся вне диапазона между значением второго квартиля минус сигма и третьего квартиля плюс сигма, где сигма подбирается экспериментально. Например, 20. И уже по оставшимся после отсечения выбросов значений считаем медиану.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 07:29:10 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, я тут уже битый час Вам про медианную фильтрацию рассказываю, а Вы вдруг про усреднение опять. Линейная фильтрация, частным случаем которой и является усреднение, для устранения импульсных помех не применима! От слова "вообще". Она, в отличии от медианной фильтрации, всегда искажает данные. Результатом медианной фильтрации всегда будет одно из значений выборки. Результатом линейной фильтрации, в общем случае, значение, которого в выборке не было. Разницу ощущаете?

нет. Потому, что часть данных теряется, а это не всегда допустимо

ozonn, попробую на пальцах показать.
Пусть передается последовательность букв CFLLX. Пусть есть только импульсные помехи, причем длительности не более 1/4 длительности передачи. То есть, если мы будем считывать данные в шесть раз (N) чаще, чем они изменяются, то окне фильтрации из пяти (M<N) элементов у нас будет не более двух ошибочных считываний.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 07:50:03 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 89
Рейтинг сообщений: 1733
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15666
Откуда: Новочеркасск
Рейтинг сообщения: 3
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
хлопцы, тема вашего обсуждения к Си не имеет отношения... уважайте труд уборщиц, в конце концов!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 08:08:34 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ARV, вообще-то имеет, хоть и не прямое. Просто до реализации медианной фильтрации на C еще не дошли, застряв на этапе разработки алгоритма. Или Вы настаиваете на обсуждение алгоритма и кода его реализации в разных темах? Так кросс-ссылки между темами делать не удобно...
ozonn, опишите тогда именно Вашу задачу. Потому что у baron_P, сигнал меняется не чаще, чем 100 раз в секунду. Поэтому любой МК в состоянии считать его сигнал между синхроимпульсами по несколько сот раз, не то что 6, как в моем примере. Не следует так же забывать, что помеха может быть и в синхроимпульсе, что мой пример медианной фильтрации учитывает.
Кстати, можете посмотреть на алгоритм работы аппаратного USART в AVR. Каждый бит RxD считывается 16 или 8 раз, а Data Recovery Unit, благодаря этому, обеспечивает очень примитивную фильтрацию и детектирование ошибок. Почему то, что можно на USART нельзя делать в Вашем случае?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 08:20:20 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, опишите тогда именно Вашу задачу.

не могу, Заратустрамодер не позволяет :))

Потому что у baron_P, сигнал меняется не чаще, чем 100 раз в секунду.

это он сейчас так написал. а ранее было:
Цитата:
в данном случае - частота входного сигнала очень низкая.
. Понимай, как хочешь :)

Поэтому любой МК в состоянии считать его сигнал между синхроимпульсами по несколько сот раз, не то что 6, как в моем примере.

читать-то между синхроимпульсами может, конечно, но, только то, что он в этих промежутках прочитает не имеет никакого отношения к действительности. Там мусор :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 08:41:07 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, естественно, я не могу утверждать, что во всем промежутке между синхроимпульсами у Вас на входе сигнал содержит нужную информацию. Но если длительность стабильного значения этой информации на входе МК меньше, чем шесть операций чтения из порта у этого МК, то может быть Вы выбрали не тот МК? Или, может быть, фиксировать несколько выборок со входа надо аппаратно сдвиговым регистром? Сколько времени информация на входе у Вас стабильна? 100нс? 10нс?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 08:52:39 
Мучитель микросхем

Карма: 6
Рейтинг сообщений: 6
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 489
Рейтинг сообщения: 0
ozonn, естественно, я не могу утверждать, что во всем промежутке между синхроимпульсами у Вас на входе сигнал содержит нужную информацию.

во-первых, почему у меня? :shock: Во-вторых было сказано, что есть специальный разряд, который сообщает, что на линии связи присутствуют полезные данные. или отсутствуют.

Но если длительность стабильного значения этой информации на входе МК меньше, чем шесть операций чтения из порта у этого МК, то может быть Вы выбрали не тот МК? Или, может быть, фиксировать несколько выборок со входа надо аппаратно сдвиговым регистром? Сколько времени информация на входе у Вас стабильна? 100нс? 10нс?

я никакого МК не выбирал и никакой задачи передо мной не стоит. Я просто пытался выяснить, что за данные имярек пытается фильтровать.. Из всего написанного понял, что он и сам не знает. Хотя пределя значений он обозначил, как и пределы точности.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт июн 11, 2019 08:58:15 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 302
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2226
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ozonn, для ТС мое предложение подходит и он сам это подтвердил. Чего же Вы от меня хотите? Озвучьте все же свою задачу с наносекундной стабильностью входного сигнала. Только тогда можно будет что-то посоветовать. У ТС же миллисекунды, даже не микросекунды. Тут уж любой МК справится с несколькими чтениям, как AVR на USART.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1023 ]     ... , , , 48, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y