Нужно ли фильтровать перед отправкой сигнала на АЦП?

У меня есть АЦП с частотой дискретизации 25 кГц, и у меня есть датчик с полосой пропускания 200 кГц, к которому я хотел бы подключиться. Это датчик тока. Найквист говорит мне, что мне нужно ограничить полосу пропускания датчика до 12,5 кГц, чтобы иметь возможность реконструировать сигнал (и избежать наложения). Однако мне интересно, правильно ли это? В каком-то смысле я не хочу ограничивать полосу пропускания датчика для таких приложений, как пиковый детектор, где я хочу измерять пиковые значения датчика, и я могу пропустить пики, если отфильтрую их.

Могу ли я запустить сигнал 200 кГц непосредственно в АЦП? В каких случаях не следует применять критерий Найквиста?

Спасибо

Какой контент на входе вашего АЦП должен быть псевдонимом?
Вы никогда не сможете восстановить исходный сигнал после ЦАП, если только вы не ослабите весь спектр >= Fs/2 ниже разрешения АЦП. Любой остаточный сигнал >=Fs/2 снижает отношение сигнал/шум. например, сигналы на 25k, 50k, 75k....200k становятся ошибками постоянного тока. и т. д. Практичным решением является фильтр Бесселя 8-го порядка на Fs/3, если вы хотите, чтобы ошибка <0,1% Если спектр ВЧ так важен, вы должны использовать другой метод. например, измерить пик как постоянный ток и среднеквадратичное значение или среднее значение

Ответы (3)

Найквист говорит мне, что мне нужно ограничить полосу пропускания датчика до 12,5 кГц, чтобы иметь возможность реконструировать сигнал (и избежать наложения).

Найквист не говорит вам этого. Теорема выборки Найквиста-Шеннона гласит:

если у вас есть сигнал, полоса которого идеально ограничена полосой пропускания f0, вы можете собрать всю информацию, содержащуюся в этом сигнале, путем ее выборки в дискретные моменты времени, если ваша частота дискретизации превышает 2f0

Ключевой элемент, который почти все упускают из виду, — это идеальное ограничение диапазона . Это акаузальный фильтр, и его можно реализовать при постобработке данных, когда вы применяете синхроимпульс такой же длины, как ваши данные.
Это невозможно сделать в реальном времени, но можно (плохо) аппроксимировать с помощью каскадного интегрального гребенчатого фильтра, но это все еще не полностью ограничено полосой пропускания.

Теорема Найквиста не говорит о выборке с частотой 100 Гц, потому что вас интересует основная частота 50 Гц. Если вы сэмплируете с удвоенной частотой интереса, у вас может быть некоторая информация о том, что компонент существует, но вы не сможете его восстановить.

введите описание изображения здесь

Разумное эмпирическое правило заключается в том, чтобы получить 10-кратное увеличение частоты, которая вас действительно интересует. Это приведет к ~ 99,5% амплитуды и сдвигу фазы на 5 градусов (квантование пока в стороне...). Суть в том, чтобы определить максимальную частоту, с которой вы заинтересованы в воздействии.

В вашем примере

Датчик (200 кГц) -> АЦП (25 кГц). Это говорит мне о том, что вас действительно не интересуют сигналы выше 2,5 кГц, и под интересом я подразумеваю действительное использование (управление, реакция и т. д.). Если это приемлемо, так тому и быть. поэтому фильтр сглаживания около 12,5 кГц будет в порядке.

Но как насчет алиасинга? если вы подаете датчик с полосой пропускания 200 кГц в выборку АЦП с частотой 25 кГц, вы получаете нежелательные сигналы, поскольку может произойти наложение. Желательно иметь ФНЧ перед АЦП, чтобы действовать как фильтр сглаживания, теперь выходной сигнал датчиков, ограниченный полосой частот, мог бы служить этой цели, ЕСЛИ ваш АЦП дискретизировался, скажем, на частоте 400 кГц, но это не так. . Было бы целесообразно, если бы вы поместили LPF перед АЦП, чтобы отключить любые компоненты, которые могут быть сглажены АЦП.

  1. http://www.ni.com/white-paper/2709/en/
  2. http://www.wescottdesign.com/articles/Sampling/sampling.pdf
  3. http://www.ti.com/lit/an/slyt626/slyt626.pdf

Это ситуация «или-или»: либо применить правильный фильтр сглаживания для правильного измерения содержания сигнала в основной полосе частот 12,5 кГц, либо не применять фильтр сглаживания и измерять пиковые значения, но не иметь возможности одновременного понимания сигнал основной полосы частот. Если вы не хотите делать и то, и другое вместе, вы можете реализовать фильтр, который можно включать/отключать и который может управляться линией ввода-вывода от вашего ЦП.

Отсутствие фильтрации также не ГАРАНТИРУЕТ, что вы поймаете каждый пик. Лучший ответ, конечно, состоит в том, чтобы производить выборку достаточно быстро, чтобы зафиксировать события, которые необходимо зафиксировать, и соответствующим образом отфильтровать.
Или используйте отдельный детектор пиков, который вы можете периодически снимать, если вам не нужно реагировать на пики в режиме реального времени.

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

Я думаю, что не пропустить пики невозможно даже при отсутствии ФНЧ. Если пик достаточно узкий (это возможно из-за большой полосы пропускания датчика), то маловероятно, что момент дискретизации произойдет именно на пике. Но если это произойдет до или после пика, вы получите неправильную «пиковую» амплитуду.

Таким образом, либо аналоговый сигнал должен быть «искажен» (хорошо контролируемым образом) ФНЧ, чтобы АЦП мог уловить всю информацию, оставшуюся в отфильтрованном сигнале, либо он будет искажен (неконтролируемым образом) из-за несоответствующей частоты дискретизации.