Расчет фильтра нижних частот

Я разрабатываю схему, которая считывает аналоговый сигнал (постоянный ток - ответ фотодиода на вольфрамовую лампу) на 12-битный АЦП. АЦП представляет собой MCP3202, работающий на частоте 1 МГц и использующий 16 входных битов для получения одной выборки результата.

Согласно моим расчетам, я рассчитал время отклика фильтра нижних частот, как показано ниже:

Chip Speed (Mhz)    1
Period(us : microSecond)    1
No of Process Cycles    16
Response time required (us) 16
Response time required (ns : NanoSeconds)   16000
Response time required (ms : MilliSeconds)  0.016
Response time required (Seconds)    0.000016 or 1.6E-5

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

R = 1 K
C = 5 nF

Частота среза рассчитывается как:

 fc = 31830.9886184[Hz]

Время отклика рассчитывается как:

1.1512925465E-5

Все ли вышеперечисленное звучит нормально, или я не в курсе?

Ответы (1)

Вы не продумали это. Вы не указали точно, какой сигнал вы ожидаете увидеть, или насколько точно вам нужно его знать. Но скажем, это ступенчатая функция, и, поскольку вы используете 12-битный аналого-цифровой преобразователь, вам нужно знать его амплитуду с точностью до 1 младшего разряда. Таким образом, для полномасштабного шага ввода ваш фильтр должен установиться на одну часть из 4096 за 16 мс. Для простого низкочастотного фильтра RC реакция на шаг является обратной экспоненциальной с характеристикой, пропорциональной e^-t/RC. Для этого, чтобы установить значение 1/4096, потребуется около 9 постоянных времени, поэтому 1/RC = 16 мкс/9. Другими словами, вам нужен C около 560 пФ, а не 5 нФ.

Но все это предполагает, что сигнал ведет себя как шаг, И вам нужна идеальная точность от аналого-цифрового преобразователя. Обратите внимание, например, что если шаг происходит за 8 мкс до выборки A/D, ваш фильтр не позволит получить идеальную выборку в течение 16 мкс, но эта выборка не произойдет до тех пор, пока не пройдет 24 мкс после шага (8 мкс до первой, неточный образец, затем еще 16 мкс, пока не будет доступно правильное значение). Поэтому вам нужно точно определить, какая точность вам нужна и когда она вам нужна. Только после этого вы сможете разработать свой фильтр.

Спасибо за ответ. Я пытаюсь получить значение постоянного тока от фотодиода, подвергнутого воздействию вольфрамовой лампы (12 В постоянного тока). Я не думаю, что это ступенчатая функция. Это дает больше деталей?
ХОРОШО. Но лампы накаливания имеют время отклика в 10 миллисекунд. Так почему же вам нужно реагировать в микросекундах?
В настоящее время я собираю 100 выборок из ADC, а затем выполняю некоторую фильтрацию, чтобы вернуть одно значение. Это без фильтра нижних частот. Это привело к общей низкой скорости моего приложения, поскольку сама функция возврата АЦП занимает около 100 миллисекунд, что неприемлемо для моего приложения. Поэтому мне нужно ввести фильтр нижних частот, чтобы я мог выполнять минимальную цифровую фильтрацию и также ускоряться. Надеюсь, это понятно. Могу ли я иметь фильтр нижних частот с высокой скоростью?
Более подробная информация размещена здесь (связанная с тем, что я пытаюсь сделать) [ссылка] electronics.stackexchange.com/questions/159589/…
В приведенном выше комментарии я имею в виду, что в настоящее время я собираю 100 выборок из АЦП, а затем выполняю цифровую фильтрацию, чтобы вернуть одно значение (сортировка и возврат среднего из 10 лучших значений).
"Могу ли я иметь фильтр нижних частот с высокой скоростью?" Извините, но ответ - нет. Я думаю, вам нужно инвестировать в более качественное питание высокого напряжения для дуговой части дейтериевой лампы. Что вы можете сделать, так это измерить частоту пульсаций отклика, а затем взять столько выборок, сколько будет получено за один полный цикл пульсаций. Предполагая, что ваша проблема связана с пульсациями в сети, это будет 100 Гц или 10 мс.