Цифровая обработка аналогового сигнала

bullit
Сообщения: 35
Зарегистрирован: 08 апр 2013, 19:43

Цифровая обработка аналогового сигнала

Сообщение bullit »

Добрый день!

Дано:
1) имеется передатчик низкочастотный (10 - 30 Гц) - маячок. Частота известна. Который передаёт сигнал либо постоянно, либо пачками по 1 секунде с паузой от 0.5 до 2 секунд. Сигнал не информативен - он просто маяк!
2) приемник сигнала. Инструментальный усилитель, АЦП. Частота дискретизации Fdiskr. Сейчас она очень большая (10кГц).

Стоит задача обнаружить передатчик (помните игру "охота на лис"? - типа того) )
Так как приемник статичен, а передатчик перемещается (нужно зафиксировать время появления передатчика в этом месте) - сигнал сначала будет расти, а потом естественно спадать.

Я вижу решение здесь такое:
1) Оцифровываем сигнал с частотой ~ 1 кГц. Кратно 50 Гц для ослабления.
2) простой цифровой фильтр ФНЧ со срезом 30-40 Гц, чтоб подавить 50 Гц.

Узким моментом тут вижу определение частоты, связанный с "короткой" (пачка в 1 секунду) посылкой!

Точность измерения частоты не критично, амплитуда тем более - 10% с головой.

Понимаю, что тут задача тривиальная, но хотелось бы выбрать красивое решение, а главное легко реализуемое силами микроконтроллера!
Последний раз редактировалось bullit 09 апр 2013, 20:31, всего редактировалось 1 раз.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровая обработка аналогового сигнала

Сообщение Бахурин Сергей »

так я не понял частота известна или надо мерить?

bullit
Сообщения: 35
Зарегистрирован: 08 апр 2013, 19:43

Re: Цифровая обработка аналогового сигнала

Сообщение bullit »

Прошу прощения за каламбур...
Нужно детектировать частоту! Т.е. сказать что сигнал такой-то частоты есть или нет!

И еще один момент: оцифрованные данные показывают что есть искажения, точнее сказать форма сигнала (обычная синусоида) искажена (см. вложение).
Сейчас хочу вспомнить как работать в матлабе и оцифрованные данные прогнать через спектроанализатор. Посмотреть какие же искажения и какова их природа. Именно из-за наличия этих искажений была выбрана такая высокая частота дискретизации.
first.JPG

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровая обработка аналогового сигнала

Сообщение Бахурин Сергей »

искажения и прочее это ясно. Вы так и не ответили про частоту она известна или нет? Это самый важный момент. Если известна то все достаточно просто, ну а если нет то тут возникают проблемы.

bullit
Сообщения: 35
Зарегистрирован: 08 апр 2013, 19:43

Re: Цифровая обработка аналогового сигнала

Сообщение bullit »

Да, известна!
Скажем 20 Гц +/- 0,5 Гц, может и того меньше!

Но думаю, может появиться такая задача, что нужно будет определить какие частоты есть в заданном диапазоне. Пока не актуально!

И хотелось бы спросить насчёт частоты дискретизации: как её выбирать? Зная реальный сигнал, т.е. скажем 10-30 Гц, + 50 Гц и её гармоники, + шумы наводки. Как выбрать частоту дискретизации чтоб не "потерять" полезный диапазон частот?

И как обрабатывать сигнал? Стоит ли фильтровать или сразу "искать" полезный сигнал...

И еще: почитал я тут про oversampling (частота дискретизации в 128 - 256 раз больше частоты Найквиста)? правильно ли я понимаю, что он кроме повышения разрядности даёт еще и возможность использовать простой цифровой фильтр?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровая обработка аналогового сигнала

Сообщение Бахурин Сергей »

Да, известна!
20 Гц +/- 0,5 Гц, может и того меньше!

Но думаю, может появиться такая задача, что нужно будет определить какие частоты есть в заданном диапазоне. Пока не актуально!
Раз частота известна переносите на ноль выделяйте амплитудную огибающую и сравнивайте с заданным порогом при превышении фиксируйте наличие сигнала.
И хотелось бы спросить насчёт частоты дискретизации: как её выбирать? Зная реальный сигнал, т.е. скажем 10-30 Гц, + 50 Гц и её гармоники, + шумы наводки. Как выбрать частоту дискретизации чтоб не "потерять" полезный диапазон частот?

И как обрабатывать сигнал? Стоит ли фильтровать или сразу "искать" полезный сигнал...
если частота выше найквиста то вы ничего не потеряете. после переноса частоты в 0 обязательно фильтровать.

И еще: почитал я тут про oversampling (частота дискретизации в 128 - 256 раз больше частоты Найквиста)? правильно ли я понимаю, что он кроме повышения разрядности даёт еще и возможность использовать простой цифровой фильтр?
простой аналоговый фильтр до ацп. цифровые фильтры как раз будут высоких порядков но они все равно проще чем аналоговый фильтр до ацп тем более на ваши частоты аналоговые фильтры большая проблема.

PS Кстати поздравляю вы 100-й участник данного форума !!!! :-)

bullit
Сообщения: 35
Зарегистрирован: 08 апр 2013, 19:43

Re: Цифровая обработка аналогового сигнала

Сообщение bullit »

Простите, "я не волшебник, я только учусь" (с) х/ф "Золушка" (1947г.)
Бахурин Сергей писал(а):Раз частота известна переносите на ноль выделяйте амплитудную огибающую и сравнивайте с заданным порогом при превышении фиксируйте наличие сигнала.
Мне не понятно:
1) перенос на ноль - что это значит?
2) а выделение амплитудной огибающей?
3) сравнивание с заданным порогом - боюсь тут шум/наводки будут вносить свою лепту.
Бахурин Сергей писал(а):если частота выше найквиста то вы ничего не потеряете. после переноса частоты в 0 обязательно фильтровать.
Правильно ли я понимаю, что для верхнего диапазона 30 Гц, частота дискретизации в 60 Гц нормальна, точнее минимальна? с учётом наводок от 50 Гц? а то что количество периодов на 1 секунду?
Просто на этот момент у нас с коллегой некоторые разногласия, он оверсемплингом хочет "задушить" помехи цифровым фильтром.
Бахурин Сергей писал(а):простой аналоговый фильтр до ацп. цифровые фильтры как раз будут высоких порядков но они все равно проще чем аналоговый фильтр до ацп тем более на ваши частоты аналоговые фильтры большая проблема.
Частота оверсемплинга как-то влияет на порядок цифрового фильтра? усложняет/упрощает?
Ну, простенький 2 порядка аналоговый фильтр охота заложить, но в данном проекте я больше консультационные задачи несу. Думаю можно будет проаргументировать.
Бахурин Сергей писал(а): PS Кстати поздравляю вы 100-й участник данного форума !!!! :-)
А, я Вас поздравляю, у вас это 333 сообщение)

Спасибо большое за ответы!
И не посоветуете книгу/ресурс по данной тематике? Ранее как-то задачи ЦОС не вставали, и я рад что наконец-то смогу выделить время на изучение!

ivan219
Сообщения: 61
Зарегистрирован: 09 май 2011, 16:39

Re: Цифровая обработка аналогового сигнала

Сообщение ivan219 »

С аналоговыми фильтрами и частотой дискретизации расчёт простой.
Чем выше частота дискретизации тем меньший порядок аналогового фильтра нужен для заданной полосы.
Самый плохой вариант это когда крайняя частота вашего полезного сигнала находится рядом с частотой Найквиста.
В этом случае порядок аналогового фильтра должен быть на много больше, если не хотите что бы зеркальные частоты попали в полезный сигнал.
Так что берите частоту дискретизации 10 - 20 кГц а потом децимацией приведите её к нужной.
Я думаю что для 30 Гц как раз 2 порядка и хватит.
Но опять токи зависит от типа фильтра. И от того как спадает его АЧХ.
Если АЧХ аналогового фильтра спадает медленно то этих 10 - 20 кГц может и не хватить для заданного уровня подавления зеркальных частот. Тогда либо частоту повышать либо порядок фильтра.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровая обработка аналогового сигнала

Сообщение Бахурин Сергей »

начните вот с этого
http://www.dsplib.ru/content/quadmod/quadmod.html
http://www.dsplib.ru/content/quadosc/quadosc.html
http://www.dsplib.ru/content/quadoscdf/quadoscdf.html

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

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

Pavia
Сообщения: 38
Зарегистрирован: 25 апр 2011, 18:45

Re: Цифровая обработка аналогового сигнала

Сообщение Pavia »

Способов решения вашей задачи много.
Вам нужно сделать детектор.
В общем случае схему модно представить так.
1. Фильтрация сигнала.
2. Интегрирование сигнала.
3. Проверка порога.

Бахурин Сергей, предложил сделать перенос частоты чтобы упростить фильтрацию. Хотя как по мне это только усложнит. Достаточно сделать простой интегрирующий фильтр и убрать "постоянную" величину. Постоянная в кавычках так как при подборе параметров фильтра как раз очистите 0-10 Гц.

По поводу частоты дискретизации, то тут вам виднее. Большая частота плохо тем что будет нагружать лишней работой микроконтроллер. Вам нужно определиться с точностью с которой вам надо определять частоты и различать их. Я бы из сходил чтобы частота определялась не точнее 1 Гц не грубее 2-3 Гц.
И от сюда уже плясать. Выбор частоты зависит от формы сигнала. Обычно её рассматривают как гармоническую и тогда согласно теоремы Найквиста берут удвоенную частоту т.е 100 Гц. Возможно будет полезно взять частоту побольше.

Что касается фильтрования 50 Гц. Ваши частоты лежат рядом и не стоит пытаться использовать обычный КИХ фильтр так как у него будет высокий порядок. Но это не совсем так. Можно просто использовать рекурсивный ФНЧ тут он будет не высокого порядка 1-6 и вполне хорошо будет работать так как сигнал далеко от помехи.
А ещё можно определить амплитуду и фазу 50 Гц помехи и вычесть из исходного сигнала. Сделать это очень просто используя алгоритм Гёрцеля.
Частота оверсемплинга как-то влияет на порядок цифрового фильтра? усложняет/упрощает?
Влияет.
Влиять влияет. Для КИХ фильтра растёт по рядок для рекурсивного по барабану.

А вообще если судить по рисунку то у вас П образный сигнал, и тут тогда лучше работать не на основных частотах, а на кратной. Или сумме интегралов кратных частот.
Просто НЧ сигнал имеет свои особенности с которыми проще не бороться.
А вот для П образного сигнала есть свои фильтры и получше нежели классические. К примеру Niblack или Sauvola. После них можно частоту подсчитывать путём перехода через порог с высокой точностью (зависит от частоты дискретизации)
Так что берите частоту дискретизации 10 - 20 кГц а потом децимацией приведите её к нужной.
Децимация приводит к появлению ложных частот. Лучше усреднять, а ещё лучше по честному делать передискретизацию.

Ответить