Обработка модулированного сигнала

Вопросы от новичков
Ответить
Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#1

Сообщение ingener » 07.03.2019{, 13:57}

Имеется входной сигнал в виде постоянной составляющей около 2В, которая модулирована сигналом примерно синусоидальной формы. Нужно, чтобы аналоговый вход контроллера воспринимал этот сигнал не как среднее действующее значение (слева), а как постоянную соствляющую + сумма как положительных, так и отрицательных полуволн.
Диоды здесь не помогут, очень мала амплитуда модуляции (от 0,1 до 2В) - и этот уровень очень важен для точности измерений.
Проблема еще в том, что модуляция может быть несимметричной (верхние и нижние полуволны разной амплитуды)
Можно ли как-то с помощью программной обработки добиться. чтобы отрицательные полуволны модуляции как-то добавились "в плюс" (как на правом рисунке)?
Пока такие общие чисто теоретические мысли:
определяем сигнал постоянной составляющей (2В) как ноль. Тогда контроллер будет получать сигнал как в плюс, так и в минус. Потом надо у минусового сигнала как-то убрать знак минус (взять модуль числа) и получится, что обе полуволны считаются в плюс.
Но как подобное реализовать практически? :smile37:
Вложения
AC.JPG

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

Обработка модулированного сигнала

#2

Сообщение fsergei70 » 07.03.2019{, 14:06}

А частота какая? Меняется или постоянная?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#3

Сообщение Sancho » 07.03.2019{, 14:13}

Делал такое для нашего форумчанина, станочек с таходатчиком. Там такое реализовано, идея.

Отправлено спустя 1 минуту 30 секунд:
Вот скрин.
СпойлерПоказать
screenshot_19-03-07_14-14-09.png
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#4

Сообщение ingener » 07.03.2019{, 14:59}

Частота 60...400Гц. Вроде должно успеть оброабатывать?

Отправлено спустя 6 минут 36 секунд:
Sancho,
эта блок-схема, вроде, не измеряет, а только определяет алгоритм.
Т.е. она на компараторах.
А нужно именно получить "перевернутые" и суммированные значения уровней сигнала обеих полуволн...

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#5

Сообщение Sancho » 07.03.2019{, 15:08}

Не, не факт, что попадётся макс., в момент замера.
А частота изменения амплитуды? Можно выбирать макс из последних ххх замеров.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#6

Сообщение ingener » 07.03.2019{, 15:23}

Амплитуда может меняться достаточно быстро, но дискретность замеров в 1 сек было бы нормально.
Тут на основе этой схемы такие мысли -
сравнивается уровень сигнала со средней линией, если он больше, то проходит дальше, если он меньше (отрицательный) - то идет на блок умножения на "минус 1" и становится положительным. Потом оба сигнала складываются.
Вопрос, можно ли обрабатывать отрицательные значения. Т.е. после входа будет стоять блок нелинейного масштабирования. к примеру. у него задаем "значение 500 вход = значение 0 выход".
тогда сигналы менее 500 на входы будут выходить как отрицательные?
Или можно вообще обойтись только одним блоком масштабирования, задав ему очень хитрый кривой алгоритм обработки сигнала, получится как бы гипербола с нижней точкой на уровне средней линии сигнала :smile37:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#7

Сообщение Sancho » 07.03.2019{, 15:43}

ingener писал(а):
07.03.2019{, 15:23}
Тут на основе этой схемы такие мысли -
сравнивается уровень сигнала со средней линией, если он больше, то проходит дальше, если он меньше (отрицательный) - то идет на блок умножения на "минус 1" и становится положительным. Потом оба сигнала складываются.
сигнал со средней линии = "ноль"
1. Если больше -"нуля" - отнимаем от принятого "ноль"
2. Иначе: отнимаем от "нуля" принятое
Складываем в массив для обработки в дальнейшем...

Отправлено спустя 44 секунды:
Получаем очищенные от средней линии значения.

Отправлено спустя 23 минуты 5 секунд:
Пример без массива

Отправлено спустя 7 минут 54 секунды:
Выдал флп, листинг loop
СпойлерПоказать

Код: Выделить всё

_gtv1 =  (analogRead (1));
if (!((_gtv1) > (_gtv3))) {
_gtv2 = (_gtv3)-(_gtv1);
}
if ((_gtv1) > (_gtv3)) {
_gtv2 = (_gtv1)-(_gtv3);
}
if ((_gtv2) > (_gtv4)) {
_gtv4 = _gtv2;
}
out_30342854_1 = 0;
If(millis()-1000 > _time_tmp_30342854_1){_time_tmp_30342854_1+=1000;out_30342854_1 = 1;}
if (out_30342854_1) {
_gtv11 = _gtv4;
}
if (out_30342854_1) {
_gtv4 = 0;
}
Немного оптимизируем, чутка
СпойлерПоказать

Код: Выделить всё

_gtv1 =  (analogRead (1));
if (!((_gtv1) > (_gtv3))) _gtv2 = (_gtv3)-(_gtv1);
else _gtv2 = (_gtv1)-(_gtv3);
if ((_gtv2) > (_gtv4)) _gtv4 = _gtv2;
If(millis()-1000 > _time_tmp_30342854_1)
{
	_time_tmp_30342854_1+=1000;
	_gtv11 = _gtv4;
	_gtv4 = 0;
}
Вложения
Максимальное за последнюю секунду 01.flp
(145.63 КБ) 58 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

Обработка модулированного сигнала

#8

Сообщение KulibinOrsk » 07.03.2019{, 19:31}

ingener, наверное сигнал с датчика тока acs712 хочешь перевести в цифру ?

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#9

Сообщение ingener » 12.03.2019{, 13:07}

KulibinOrsk, да, с датчика тока типа LEM shunt промышленного сварочного аппарата. Он с двуполярным питанием. Для постоянного тока все работает, с переменным танцы пока.
Никто не в курсе, есть ли некий блок - детектор пиковых значений? Который бы выбирал за заданный промежуток времени наибольшее значение входного сигнала и записывал на выход? :smile37:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#10

Сообщение Sancho » 12.03.2019{, 13:15}

ingener писал(а):
12.03.2019{, 13:07}
Который бы выбирал за заданный промежуток времени наибольшее значение входного сигнала и записывал на выход?
А чем из поста 7 не нравится?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#11

Сообщение ingener » 12.03.2019{, 13:30}

Sancho, В рукописном коде мало что понимаю. а алгоритм "среднего арифметического", как оказалось, не подходит. Не может он корректно считать сигналы сложной формы. Ведь они меняются во времени и амплитуде, каждый раз момент начала и конца выборки разные, и итог разный. Пляшут значения.
А по пику было бы как раз то, что нужно.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#12

Сообщение Sancho » 12.03.2019{, 13:38}

ingener, Где Вы видите средний..., там максимальное.

Отправлено спустя 7 минут 9 секунд:
ingener писал(а):
12.03.2019{, 13:30}
В рукописном коде мало что понимаю
И где рукописный код? Всё на стандартных блоках.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#13

Сообщение ingener » 12.03.2019{, 14:10}

Sancho, а откуда а этой схеме взять сигнал для отправки в Virtuino? Смущает наличие у переменных входа разорешения записи. :smile37:
отсюда?
Вложения
max1.JPG

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#14

Сообщение Sancho » 12.03.2019{, 14:42}

ingener, Нет.
Она, переменная, так и называется - "Максимум за последнюю секунду" :)
Берёте её, и подключаете к входу своего блока.

Отправлено спустя 7 минут 48 секунд:
Рекомендации, пояснения:
На первых трёх блоках собран выпрямитель :)
СпойлерПоказать
screenshot_19-03-12_14-45-23.png
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 681
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 51
Имя: Виктор

Обработка модулированного сигнала

#15

Сообщение ViktorPetrov » 12.03.2019{, 15:27}

Можно ноль сместить ,чтоб было возможность измерять отрицательные напряжение .
СпойлерПоказать
Delitel-napryazheniya.jpg
самая простая схема.Vвх переменка,Vвых постоянное,Vсмещения 2-2,5 Вольта
Delitel-napryazheniya.jpg (24.02 КБ) 519 просмотров
СпойлерПоказать
сумматор на операционном усилителе.png
На ОУ
сумматор на операционном усилителе.png (4.86 КБ) 519 просмотров

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Обработка модулированного сигнала

#16

Сообщение Sancho » 12.03.2019{, 15:37}

Так вроде уже смещено, судя по рисункам из первого поста? Об этом и писал выше.

Отправлено спустя 3 минуты 36 секунд:
ViktorPetrov, Кстати, а где резистор в Вашей схеме, на котором сложение происходит, учитывая мизерные токи и огромные входные сопротивления современных ОУ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Обработка модулированного сигнала

#17

Сообщение ingener » 12.03.2019{, 15:43}

ViktorPetrov, така ясхема требует изолированного источника питания
У меня сделано по-другому, на оптроне
резисторами можно легко смещать точки
Если поменять местами приемный диод и резистор, получаем зеркальную характеристику
5В берется прямо с Ардуины
линейность достаточно приличная. практически прямая линия. Оптрон како-то маленький обычный, не высоколинейный.
Вложения
lem.JPG

Ответить

Вернуться в «Начинающим»