Частота семплирования для цифрового входного сигнала

Простейшие вопросы в области инженерной разработки
Ответить
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Частота семплирования для цифрового входного сигнала

Сообщение dakishi »

Добрый вечер!

Я принимаю цифровой сигнал при помощи DAQmx. У меня встал вопрос с частотой семплирования в DAQmx Timing.
Я так понимаю, что мы используем некоторый CLK (например, процессорный тактовый генератор) и тактируем считывание (и, соответственно, передачу данных). При этом CLK выбираем так, чтобы мы попадали в середину цифрового импульса, во избежание лишних ошибок.

Вопрос: Как сделать так, чтобы мы попадали в середину импульса ?

Не болейте!

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4922
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Частота семплирования для цифрового входного сигнала

Сообщение IvanLis »

dakishi писал(а):
22 апр 2020, 21:34
При этом CLK выбираем так, чтобы мы попадали в середину цифрового импульса, во избежание лишних ошибок.

Вопрос: Как сделать так, чтобы мы попадали в середину импульса ?
Выбор частоты дискретизации зависит от задачи..
Судя по постановке, Вам необходимо захватить импульсы, т.е. определить 1 или 0 сейчас на входе, при постоянной частоте следования. В этом случае, если отсутствует синхронизация или частота плавает, лучше брать хотя бы 4 отсчета на период.

Если же необходимо исследовать фазу, то там возможно и 100 будет мало, т.к. ошибка будет определяться именно частотой захвата..

dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Re: Частота семплирования для цифрового входного сигнала

Сообщение dakishi »

IvanLis писал(а):
22 апр 2020, 21:48

Выбор частоты дискретизации зависит от задачи..
Судя по постановке, Вам необходимо захватить импульсы, т.е. определить 1 или 0 сейчас на входе, при постоянной частоте следования. В этом случае, если отсутствует синхронизация или частота плавает, лучше брать хотя бы 4 отсчета на период.

Если же необходимо исследовать фазу, то там возможно и 100 будет мало, т.к. ошибка будет определяться именно частотой захвата..
Уточню. В данном случае я исследую некоторые основные параметры цифрового сигнала: скважность, длительность. т.е. форма сигнала постоянная. Также я буду писать счетчик (по rising_edge или falling_edge соответственно), чтобы посчитать число прошедших импульсов.

Если частота стабильна, я всё это посчитаю.
Но если частота немного плавает, то думаю можно "бегущую" длительность посчитать взятую по достаточно большому периоду (чтобы уменьшить ошибку) и в то же время по достаточно малому. Но это конечно надо знать на сколько быстро плывет частота - в противном случае, единственный вариант наверно, это просто в лоб взять большую частоту семплирования.

Artem.spb

Activity Автор
expert
expert
Сообщения: 1868
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Частота семплирования для цифрового входного сигнала

Сообщение Artem.spb »

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

Blackman

Activity
leader
leader
Сообщения: 917
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Репутация: 0
Версия LabVIEW: 6.1,8.5,20
Контактная информация:

Re: Частота семплирования для цифрового входного сигнала

Сообщение Blackman »

...В данном случае я исследую некоторые основные параметры цифрового сигнала:...
Почему это надо делать программно? Может быть лучше использовать счетчики DAQ устройства?
Using Counters and Digital I/O
http://www.ni.com/academic/students/learn-daq/digital/

ujin
junior
junior
Сообщения: 68
Зарегистрирован: 28 июл 2019, 13:16
Репутация: 0
Версия LabVIEW: 19
Контактная информация:

Re: Частота семплирования для цифрового входного сигнала

Сообщение ujin »

dakishi писал(а):
22 апр 2020, 21:34
Я принимаю цифровой сигнал при помощи DAQmx. У меня встал вопрос с частотой семплирования в DAQmx Timing.
Вопрос: Как сделать так, чтобы мы попадали в середину импульса ?
Самый правильный способ использовать аппаратные же средства для подсчета импульсов. Однако, если требуется самостоятельно по каким либо причинам:
Теорема Котельникова частота дискретизации должна быть не менее 2 Fmax. Что считать за Fmax у периодического цифрового сигнала, в зависимости от задачи и точности нужно смотреть спектр.
Более универсальный ответ частота дискретизации должна быть не менее 10 F.
По поводу как попасть в середину импульса. Этого точно не достаточно. Раньше был более распространен способ определение 3х отсчетов из середины.
Если сигнал периодический можно взять максимальную частоту этого сигнала, далее 10 отсчетов на период. Установить критерий максимального правдоподобия например менее 2 отсчетов в 1 = 0 более 8 отсчетов в 1 = 1. Когда 10 отсчетов будут располагаться на одном импульсе критерий будет максимальным. Если отсчеты захватят половину предыдущего импульса, то критерий будет около половины.
В общем я так радиомодем делал на контроллере ATMEL и детектировал 1 и 0 в DPSK модуляции. Свертка входного сигнала относительно "неподвижного" опорного сигнала. В качестве опорного сигнала автокореляционная функция. Моменты всплеска свертки с 1 и 0 есть начало импульса. Такую обработку можно делать с любым сигналом. Главное чтобы был ортонормированный базис или близко к нему. В общем не сложно.
Это применимо к заранее известной частоте, либо к нескольким. Упрощенные методы работают плохо. Конкретных цифр по ошибкам и отношению сигнал шум, конечно не помню.

Ответить

Вернуться в «Для чайников»