Цифровые сигнальные процессоры Вопросы, связанные с применением цифровых сигнальных процессоров: программирование, отладочные средства, алгоритмы... |
05.03.2020, 12:29
|
#11
|
Прописка
Регистрация: 22.08.2006
Сообщений: 168
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 11 сообщении(ях)
|
Re: Детектирование частоты
Сообщение от dgrishin
|
Сделайте програмный импульсный синхронный детектор - поскольку фаза входного сигнала неизвестна, мы умножаем его на два квадратурных сигнала (sin и cos) а затем по формуле sqrt(x**2 + y**2) находим пиковые значения сигнала.
sin и cos в вашем случае это оцифровка входного сигнала с частотой 40 кГц, где четные отсчеты это sin и нечетные - cos.
Математику можно упростить - например корень не извлекать.
Полученные пиковые значения суммируются между собой, и если сумма больше некоторого порогового значения, считаем что преамбула передана, и дальне анализируется длительность паузы.
|
Спасибо большое за ответ. Погуглил про программные синхронные детекторы. Вычитал что если сигнал передается меандром, то можно не заморачиваться с синусами и косинусами, а просто домножать на +/- 1. Поскольку мне собственно уровень не важен, может быть упростить - использовать встроенный компаратор для формирования меандра? И затем оперировать с временными промежутками? Например суммируя их за определенный промежуток времени... Или делая выборки с частотой 40 кГц (кратной несущей), суммируя количество 0 и 1... Как только нулей стало заметно больше чем 1, то несущая пропала... Мне ведь важно всего навсего поймать момент, когда закончилась и когда снова пошла частота (ее уровень не столь важен - важен сам факт ее присутствия)... и вычислить паузу... Проблема только в том, что количество периодов ("колебаний") частоты 10кГц при ее длительности в 8 мс всего 80 ... А Точность измерения паузы желательно иметь не менее 1 мс (+- 10 колебаний), т.е. вариант с измерением периода более точен получается...
Последний раз редактировалось an-sver; 05.03.2020 в 12:36.
Причина: дополнено
|
|
|
|
05.03.2020, 13:05
|
#12
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,047
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Детектирование частоты
Сообщение от an-sver
|
то можно не заморачиваться с синусами и косинусами, а просто домножать на +/- 1.
|
Цитата
"sin и cos в вашем случае это оцифровка входного сигнала с частотой 40 кГц, где четные отсчеты это sin и нечетные - cos."
Оцифровка это разве не умножение сигнала на 1 c с последующим квантованием??
Сообщение от an-sver
|
использовать встроенный компаратор для формирования меандра?
|
А ваш встроенный компаратор со встроенным интеллектом и будет срабатывать только от полезного сигнала??
|
|
|
|
05.03.2020, 15:44
|
#13
|
Гражданин KAZUS.RU
Регистрация: 26.09.2005
Сообщений: 569
Сказал спасибо: 58
Сказали Спасибо 509 раз(а) в 135 сообщении(ях)
|
Re: Детектирование частоты
Используется компаратор с настройкой порога срабатывания и отпускания.
1. По срабатыванию компаратора запускаете таймер
2. Накапливаете кол-во срабатываний компаратора, контролируя паузу между срабатываниями (несущая частота) и время накопления
3. Если время накопления соответствует по длительности преамбуле, единице или нулю
фиксируете это и уходите на проверку паузы.
4. Если время до следующего срабатывания компаратора соответствует штатной паузе, обрабатываете дальше, если нет, то сбрасываете таймер и все сначала.
Обычно укладывается в десяток программных строчек.
Алгоритм использовался в оптическом канале обмена данными телеметрии при массовых шумовых засветках.
До 8 байт в пакете была хорошая устойчивость.
__________________
Будь проще, дойдет и до синтеза.
|
|
|
|
05.03.2020, 18:09
|
#14
|
Гражданин KAZUS.RU
Регистрация: 26.09.2005
Сообщений: 569
Сказал спасибо: 58
Сказали Спасибо 509 раз(а) в 135 сообщении(ях)
|
Re: Детектирование частоты
И в догонку.
Иногда проще исходные условия поменять.
Длинная линия (сколько?) - либо витая пара, либо телефонный кабель.
Сопротивление (в петле) около 20 Ом на 100 м.
Проще со стороны передатчика - источник тока (повторитель), а со стороны приемника оптрон. Светодиод - хороший дискриминатор всяческих электромагнитных наводок, включая электростатические.
С выхода оптрона сигнал будет поприличнее и обрабатывать станет гараздо проще!
__________________
Будь проще, дойдет и до синтеза.
|
|
|
|
05.03.2020, 20:08
|
#15
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Детектирование частоты
|
|
|
|
05.03.2020, 22:05
|
#16
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: Детектирование частоты
Сообщение от Someone
|
Длинная линия связи. Передаются цифровые данные - биты. В устойствах используются микроконтроллеры. Зачем вся эта хрень с переводом ЦИФРОВЫХ данных в АНАЛОГОВЫЙ сигнал, его передачей, и с последующим обратным их переводом в ЦИФРУ?
|
А что в этом удивительного? Все скоростные каналы связи так и работают. Включая оптику.
|
|
|
|
05.03.2020, 22:26
|
#17
|
Прописка
Регистрация: 13.09.2009
Адрес: Белоруссия
Сообщений: 184
Сказал спасибо: 181
Сказали Спасибо 73 раз(а) в 45 сообщении(ях)
|
Re: Детектирование частоты
С похожими задачами сталкивался косвенно, но у меня сложилось мнение, что, когда частота известна, хорошо работает алгоритм Герцеля.
Основу программы, вероятно, можно найти в интернете для DTMF, только пересчитать коэффициенты под свою частоту.
А потянуть это легко должен дешевый и доступный STM32F100C8T6B.
(Еще народ применял для выделения тональных посылок фильтры на переключаемых конденсаторах, но тут дело прошлое и для меня темноватое).
Могу ошибаться.
|
|
|
Сказали "Спасибо" Maxymen
|
|
|
05.03.2020, 23:27
|
#18
|
Прописка
Регистрация: 22.08.2006
Сообщений: 168
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 11 сообщении(ях)
|
Re: Детектирование частоты
Сообщение от marera
|
И в догонку.
Иногда проще исходные условия поменять.
Длинная линия (сколько?) - либо витая пара, либо телефонный кабель.
Сопротивление (в петле) около 20 Ом на 100 м.
Проще со стороны передатчика - источник тока (повторитель), а со стороны приемника оптрон. Светодиод - хороший дискриминатор всяческих электромагнитных наводок, включая электростатические.
С выхода оптрона сигнал будет поприличнее и обрабатывать станет гараздо проще!
|
К сожалению, поменять линии не вариант - они уже используются, к тому-же дело осложняется тем, что на каждой линии висит до 20 датчиков, которые питаются по этой-же 2-х проводной линии (ток потребления каждого около 1 мА). В момент передачи они "слегка подкорачивают" линию и за счет этого передают сигнал... Длинна до 50 метров, но топология совершенно произвольная и лежит местами рядом с электрическими силовыми кабелями со всеми вытекающими по помехам и т.п. Пакет данных очень короткий - всего 2 байта... Пакетов по линии мало - всего-то около 20 посылок от датчиков час...
|
|
|
|
05.03.2020, 23:53
|
#19
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: Детектирование частоты
Так а зачем что-то менять? С какой целью? Чтобы отсечь помехи, необходим полосовой фильтр. А это будет или активный, или на переключаемых конденсаторах, ну или громоздкий пассивный. ПАВ фильтров на такую низкую частоту нет. Ну и ради чего это всё?
|
|
|
|
06.03.2020, 00:20
|
#20
|
Гражданин KAZUS.RU
Регистрация: 26.09.2005
Сообщений: 569
Сказал спасибо: 58
Сказали Спасибо 509 раз(а) в 135 сообщении(ях)
|
Re: Детектирование частоты
Сообщение от an-sver
|
...которые питаются по этой-же 2-х проводной линии (ток потребления каждого около 1 мА)... - всего 2 байта...
|
Тогда первое мое предложение поможет без всяких наворотов с цифровыми фильтрами и БПФ (нахлебался в свое время).
С ПИКами давно не работаю, но если необходимость решения злободневна - в личку поподробнее: выходной сигнал, входная цепь, процессор. Постараюсь помочь.
__________________
Будь проще, дойдет и до синтеза.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:14.
|
|