Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Детектирование сигнала частотой 30 Гц
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Karl
Задача: Есть передатчик, генерирующий частоту 30 Гц и приемник. Необходимо с помощью контроллера определять наличие передатчика вблизи приемника. То есть нужно как - то выделить нужный сигнал из шума. Вопрос: как лучше это реализовать и хватит ли для этих целей контроллера типа AVR, или нужен мощнее? Опыта в этой сфере никакого, поэтому с нетерпением жду советов.
Andy Mozzhevilov
Цитата(Karl @ Mar 28 2007, 18:24) *
Задача: Есть передатчик, генерирующий частоту 30 Гц и приемник. Необходимо с помощью контроллера определять наличие передатчика вблизи приемника. То есть нужно как - то выделить нужный сигнал из шума. Вопрос: как лучше это реализовать и хватит ли для этих целей контроллера типа AVR, или нужен мощнее? Опыта в этой сфере никакого, поэтому с нетерпением жду советов.


сначала уточните, какая связь между приемником и передатчиком. На микроконтроллере можно,
тут больше вопрос к условиям задачи и схемотехнике. Какое соотношение сигнал/шум на входе
приемника ожидается и что с этим сигналом нужно делать, просто определить наличие или еще что-то?
anton
Для 30гц может и AVR хватит.
Один из вариантом цифруеш датчик через низкочастотный или полосовой фильтр. В МК реализуеш узкополосный фильтр и по его выходу измеряешь сигнал.
Для упрощения частоту АЦП можно поставить 120гц и далее сумматор через один с инверсией. на выходе два числа берешь корень из суммы квадратов это искомый уровень сигнала.
Karl
Цитата(Andy Mozzhevilov @ Mar 28 2007, 20:02) *
сначала уточните, какая связь между приемником и передатчиком. На микроконтроллере можно,
тут больше вопрос к условиям задачи и схемотехнике. Какое соотношение сигнал/шум на входе
приемника ожидается и что с этим сигналом нужно делать, просто определить наличие или еще что-то?


передача идет по ралиоканалу. Необходимо просто определить, что передатчик прошел вблизи приемника. Соотношение сигнал/шум пока неизвестно.



Цитата(anton @ Mar 28 2007, 22:48) *
Для 30гц может и AVR хватит.
Один из вариантом цифруеш датчик через низкочастотный или полосовой фильтр. В МК реализуеш узкополосный фильтр и по его выходу измеряешь сигнал.
Для упрощения частоту АЦП можно поставить 120гц и далее сумматор через один с инверсией. на выходе два числа берешь корень из суммы квадратов это искомый уровень сигнала.


Спасибо. ТОлько вот с реализацией фильтров сталкиваться пока не приходилось...
blackfin
Цитата(Karl @ Mar 29 2007, 06:58) *
Необходимо просто определить, что передатчик прошел вблизи приемника.Только вот с реализацией фильтров сталкиваться пока не приходилось...
Проще всего через "Алгоритм Герцеля", см. напр. А.Б.Сергиенко, ЦОС, изд.2006, стр.311.
fontp
По уму надо бы энергию с выхода фильтра сравнивать с полной энергией сигнала.

Мало ли где он прошёл и на фоне каких шумов, наверно нужен динамический диапазон
Oldring
Цитата(Karl @ Mar 29 2007, 06:58) *
передача идет по ралиоканалу. Необходимо просто определить, что передатчик прошел вблизи приемника. Соотношение сигнал/шум пока неизвестно.


Значит и реализация пока неизвестна smile.gif

AVR заведомо сможет реализовать практически любой алгоритм детектирования 30 Гц сигнала. Все упирается в формальное описание самого сигнала и вероятных помех, чтобы разработать оптимальный алгоритм приема. Ну и не забудте про требования к времени детектирования и вероятности ошибок. Или Вам достаточно детектироать как получится?
Karl
Цитата(Oldring @ Mar 29 2007, 15:47) *
Значит и реализация пока неизвестна smile.gif

AVR заведомо сможет реализовать практически любой алгоритм детектирования 30 Гц сигнала. Все упирается в формальное описание самого сигнала и вероятных помех, чтобы разработать оптимальный алгоритм приема. Ну и не забудте про требования к времени детектирования и вероятности ошибок. Или Вам достаточно детектироать как получится?


Реализация действительно пока неизвестна smile.gif Известно что приемник должен настраиваться на частоту в диапазоне от 10 до 30 Гц (на частоту конкретного передатчика). Передатчик будет находиться вблизи приемника в районе 400 мс. За это время реобходимо определить и зафиксировать присутствие передатчика вблизи приемника. Вот и вся задача. Для начала хочу определиться с контроллером. Если говорите, AVR достаточно - буду закладывать его. Планирую пользоваться встроенным АЦП.
anton
Определись с соотношением сигнал шум датчика.
Поскольку 400мс для 10гц всего 4периуда, т.е. соотношение особо не улучшиш.
Karl
Цитата(anton @ Mar 31 2007, 22:20) *
Определись с соотношением сигнал шум датчика.
Поскольку 400мс для 10гц всего 4периуда, т.е. соотношение особо не улучшиш.


Соотношение сигнал/шум обещают 1,5. Еще оказалось, что сигнал передатчика может быть разным. Либо непрерывный синус, либо пачки по 8 периодов синуса. Время между началом соседних импульсов 1,45 секунды. Тут знающие люди (чисто теоретики, которые вряд ли помогут реализовать идею на практике) предлагают делать БПФ и анализировать спектр, поскольку приемник должен быть настраиваемым на передатчики с разной частотой.


Цитата(blackfin @ Mar 29 2007, 15:07) *
Проще всего через "Алгоритм Герцеля", см. напр. А.Б.Сергиенко, ЦОС, изд.2006, стр.311.


Алгоритм Герцеля, к сожалению, найти пока не смог. Может подскажете ресурсы в интернете?
blackfin
Цитата(Karl @ Apr 4 2007, 07:23) *
Алгоритм Герцеля, к сожалению, найти пока не смог. Может подскажете ресурсы в интернете?
Попробуйте тут.
Oldring
Цитата(Karl @ Apr 4 2007, 07:23) *
Соотношение сигнал/шум обещают 1,5. Еще оказалось, что сигнал передатчика может быть разным. Либо непрерывный синус, либо пачки по 8 периодов синуса. Время между началом соседних импульсов 1,45 секунды.


Ну, если при этом еще и время нахождения передатчика вблизи приемника в районе 0,4с - то вероятность успешного детектирования вряд-ли будет превышать 28%. wink.gif

Да и отношение сигнал/шум скорее всего маловато для достижения приемлемой вероятности ложных срабатываний детектора.
Stanislav
Цитата(Oldring @ Apr 4 2007, 09:38) *
Ну, если при этом еще и время нахождения передатчика вблизи приемника в районе 0,4с - то вероятность успешного детектирования вряд-ли будет превышать 28%. wink.gif
Pojasnite, pojaluysta, chto vy podrazumevaete pod "вероятность успешного детектирования"? Po-moemu, etot termin zdes' neumesten.
Takje ochen interesno, kak vi tak liho poluchili privedennoe vishe chislo? blink.gif

Цитата(Oldring @ Apr 4 2007, 09:38) *
...Да и отношение сигнал/шум скорее всего маловато для достижения приемлемой вероятности ложных срабатываний детектора.
A pochemu? Vi chto, znayete priemlemuju veroyatnost'?
Serg76
Цитата(Karl @ Mar 28 2007, 16:24) *
Задача: Есть передатчик, генерирующий частоту 30 Гц и приемник. Необходимо с помощью контроллера определять наличие передатчика вблизи приемника. То есть нужно как - то выделить нужный сигнал из шума. Вопрос: как лучше это реализовать и хватит ли для этих целей контроллера типа AVR, или нужен мощнее? Опыта в этой сфере никакого, поэтому с нетерпением жду советов.


Что касается алгоритма обработки, то на мой взгляд оптимальным решением все-таки является обработка в частотной области - FFT (или как частный случай алгоритм Герцеля). Для снижения составляющей шума предлагаю применить интегральный метод, т.е. обычное усреднение по нескольким реализациям (причем веса для каждой реализации могут быть выбраны как постоянными, так и переменными, кроме того, если применять алгоритм Герцеля, то длина каждой из выборок будет незначительной, ну, конечно, выбирать нужно в рамках необходимой разрешающей способности). В этом случае так как выборки независимые, некорелированные, то результирующий выигрыш составит величину порядка sqrt(n), где n - чило выборок. А что касается выбора платформы для реализации, то думаю, что AVR вполне подойдет (в этом семействе контроллеры на любой вкус).
Karl
Цитата(Serg76 @ Apr 6 2007, 13:42) *
Что касается алгоритма обработки, то на мой взгляд оптимальным решением все-таки является обработка в частотной области - FFT (или как частный случай алгоритм Герцеля). Для снижения составляющей шума предлагаю применить интегральный метод, т.е. обычное усреднение по нескольким реализациям (причем веса для каждой реализации могут быть выбраны как постоянными, так и переменными, кроме того, если применять алгоритм Герцеля, то длина каждой из выборок будет незначительной, ну, конечно, выбирать нужно в рамках необходимой разрешающей способности). В этом случае так как выборки независимые, некорелированные, то результирующий выигрыш составит величину порядка sqrt(n), где n - чило выборок. А что касается выбора платформы для реализации, то думаю, что AVR вполне подойдет (в этом семействе контроллеры на любой вкус).


Спасибо, но вот алгоритм Герцеля найти никак не могу. По ссылочке от blackfin меня не пускают sad.gif
blackfin
Цитата(Karl @ Apr 9 2007, 07:13) *
Спасибо, но вот алгоритм Герцеля найти никак не могу. По ссылочке от blackfin меня не пускают sad.gif
Тогда здесь: Сергиенко А.Б., ЦОС
Stanislav
Вообще-то, для "прерывистого" сигнала алгоритм Герцля будет далеко не оптимален, особенно если пачки 30-Гц сигнала имеют разрывы фазы. В этом случае лучше согласованный фильтр сооружать. В частотной или временнОй области - разницы нет (за исключением того, что БПФ сожрёт кучу ресурса, и вряд ли уместно при данной постановке задачи).
AVR я бы вообще не рекомендовал использовать для сигнальной обработки (ну, кроме исключительных случаев, когда требуется реализовать нечто на уже готовом "железе"). Более оправданным представляется применение недорогих 16- или 32- битных МК, благо сейчас их есть в наличии уйма.

А в целом, нужно плясать "от печки". Конструктив и реализация аналоговой части приёмника в таком вопросе могут играть определяющие роли.
el34
>Вообще-то, для "прерывистого" сигнала алгоритм Герцля будет далеко не оптимален, особенно если пачки 30-Гц сигнала имеют разрывы фазы.
>В этом случае лучше согласованный фильтр сооружать.

но сделать можно это используя алгоритм Герцеля (Goertzel algorithm) smile.gif
Stanislav
Цитата(el34 @ Apr 14 2007, 13:21) *
>Вообще-то, для "прерывистого" сигнала алгоритм Герцля будет далеко не оптимален, особенно если пачки 30-Гц сигнала имеют разрывы фазы.
>В этом случае лучше согласованный фильтр сооружать.

но сделать можно это используя алгоритм Герцеля (Goertzel algorithm) smile.gif
Нет, по-моему, нельзя (во всяком случае, без великих извращений).
Более правильной в данном случае, мне кажется, будет согласованная КИХ-фильтрация.
el34
>Нет, по-моему, нельзя (во всяком случае, без великих извращений).
Более правильной в этом случае, мне кажется, будет реализация оптимального приёма в виде КИХ-фильтра.

а чтоб реализовать хорошую добротность c ких фильтром - разве это не накладно?
Stanislav
Цитата(el34 @ Apr 14 2007, 14:00) *
>Нет, по-моему, нельзя (во всяком случае, без великих извращений).
Более правильной в этом случае, мне кажется, будет реализация оптимального приёма в виде КИХ-фильтра.

а чтоб реализовать хорошую добротность c ких фильтром - разве это не накладно?
Дело вовсе не в добротности, а в том, что оптимальный фильтр должен быть согласован как с исходным сигналом, так и с шумом (для того, чтобы получить наибольший из всех возможных энергетический выигрыш С/Ш на выходе). В белом шуме, например, импульсная характеристика согласованный фильтра на 8 периодов синусоиды будет представлять из себя также 8 периодов синусоиды (точнее, зеркально отображённых во времени). Для периодически повторяющихся пачек нужно также ввести суммирование значений выхода фильтра через период повторения с "забыванием".
Для приёма сигнала в "окрашенном" шуме импульсная характеристика фильтра должна быть видоизменена, чтобы попутно выбелить и шум.
Полюсный БИХ-фильтр второго порядка с большой добротностью может быть оправдан только если в пачке будет большое число периодов. С шумом же его согласовать невозможно.
Простите за некоторую вольность изложения - писать длинные формУлы неохота. smile.gif
blackfin
Цитата(Stanislav @ Apr 14 2007, 13:04) *
Вообще-то, для "прерывистого" сигнала алгоритм Герцля будет далеко не оптимален, особенно если пачки 30-Гц сигнала имеют разрывы фазы.

А с чего Вы решили, что при приближении, а затем при удалении непрерывно
излучающего 30 Гц передатчика от приемника, на входе приемника будет разрыв фазы?
ИМХО, будет синус 30 Гц с достаточно плавной огибающей.
Stanislav
Цитата(blackfin @ Apr 14 2007, 14:20) *
А с чего Вы решили, что при приближении, а затем при удалении непрерывно
излучающего 30 Гц передатчика от приемника, на входе приемника будет разрыв фазы?
Вот с этого:
Цитата(Karl @ Apr 4 2007, 07:23) *
Соотношение сигнал/шум обещают 1,5. Еще оказалось, что сигнал передатчика может быть разным. Либо непрерывный синус, либо пачки по 8 периодов синуса. Время между началом соседних импульсов 1,45 секунды...
См. второй случай, его я и называю "прерывистым". Разрыв фазы 30-Гц сигнала в нём вполне возможен (между пачками укладывается нецелое число периодов). Классический Герцель от этого пойдёт вразнос.

Цитата(blackfin @ Apr 14 2007, 14:20) *
...ИМХО, будет синус 30 Гц с достаточно плавной огибающей.
Синус с плавной огибающей будет только в первом случае (и то, если приёмник не содержит АРУ smile.gif ). Для него сойдёт, конечно, и Герцель. Хотя, и здесь он будет не совсем оптимален.
Для того, чтобы сказать определённее, условий недостаточно. Нужно знать динамику процесса сближения/удаления приёмника и передатчика, и строить процесс накопления выходных значений фильтра исходя из неё (второй уровень "оптимальности" smile.gif ).
el34
ну не понимаю чем ких с "забывание" лучше герцеля со сбросом....
тем более, что речь идет о нескольких периодах СИНУСоидального сигнала!!!!

....
ладно если б речь шла о сложном сигнале с переворотами фазы или изменением частоты и тп....
Stanislav
Цитата(el34 @ Apr 14 2007, 14:58) *
ну не понимаю чем ких с "забывание" лучше герцеля со сбросом...
Простите, но, мне кажется Вы не совсем правильно поняли.
"Забывание" осуществляется уже на этапе накопления выходных значений фильтра, согласованного с единичной пачкой синусоид, для того, чтобы отслеживать динамику нестационарного процесса сближения/удаления передатчика. Об остальных недостатках герцеля я уже писал выше. К ним стоит добавить плохую устойчивость полюсного БИХ-звена высокой добротности в системах с ограниченной разрядностью представления данных.

КИХ-фильтр может быть и рекурсивным, кстати. Только это уже будет не Герцель.

Цитата(el34 @ Apr 14 2007, 14:58) *
...тем более, что речь идет о нескольких периодах СИНУСоидального сигнала!!!!
Во втором случае это не просто синус, а более сложная функция, временнЫе и спектральные характеристики которой не соответствуют синусоиде.

Цитата(el34 @ Apr 14 2007, 14:58) *
...ладно если б речь шла о сложном сигнале с переворотами фазы или изменением частоты и тп...
Представьте, что передатчик генерит одинаковые по форме пачки, расстояние между которыми не кратно целому числу периодов. Как быть в этом случае?

При таком отношении С/Ш на входе стОит побороться даже за десятые доли дБ на выходе. Поэтому, к вопросу фильтрации нужно подходить сурьёзно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.