Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фильтрация в многоканальной мультиплексной системе.
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
spooki
Здравствуйте.

Постараюсь убрать лишнее и упростить вопрос.

Краткое описание задачи
Если многоканальная измерительная система параметрических датчиков с кол-вом каналов N=128.
Параметрические датчики представляют собой терморезисторы. Подключаемся к датчику пропускаем через него ток, измеряем напряжение.

Все каналы последовательно опрашиваются через один АЦП (мультиплексирование) по средствам ПЛИС.См. поясняющий рисунок. Частота работы АЦП 3-10 МГц(это не так важно).

Необходимо за 128 мс опрашивать все датчики и получать с них постоянную составляющую сигнала. Таким образом, максимальный период опроса всех датчиков Топр= 128 мс. При этом допустиму фильтровать сигнал больше чем 128мс (см. рисунок 2 фильтр) но в допустимых пределах(не 20 с).


Необходимо давить гармонические помехи всей полосе частот(есть таблица)! И импульсные помехи определенной длительности (до 10 мкс).

Описание проблемы:
Грубо разобьем фильтрацию на 2 каскада.
Возьмем время опроса одного датчика tопр=128мс/128 датчиков = 1 мс.
1-ый НЧ фильтр вполне нормально давит помехи в своем окне т.е. от 1/1мс=1000 Гц.
2-ой НЧ фильтр частично помогает первому и хорошо давит помехи до 1/128 мс=7.8 Гц

Соответственно помехи от 7.8 до 1000 Гц находятся за пределами работы и 1-го и 2-го фильтра.

Как то попытаться их задавить может только 2-й фильтр. Таким образом фильтр с fd=7.8 Гц должен давить помехи до 1кГц(бред но поехали дальше).
Сделали превдорандомный опрос каналов (см. рисунок) чтобы частично подавить зеркальные частоты для 2-го фильтра - сильно помоглло но не достаточно.
Чтобы подавить переодическую помеху 250Гц(например) до допустимого уровня приходится фильтровать 4 с и то раз на раз по понятным причинам ибо аналитическому расчету подавление помех за рамками fд да еще и с рандомным опросом каналов не поддается - проверяю в маткаде пропуская сигнал через фильтр.

Обычно в таких системах ставят отдельный аналоговый НЧ фильтр на каждый канал который давит помехи до частоты дискретизации 2-го фильтра, но тут это не прокатит:

1) Как описано выше опрос каналов ведется пропусканием тока через датчик при подключении к нему. Соответственно аналоговый фильтр не может иметь постоянную времени больше чем время опроса одного датчика т.е. больше 1 мс (на практике аналоговый фильтр имеет постоянную времени раз в 10 меньше).

2)По ТЗ время опроса датчика не должно превышать 2 мс(т.е. время измерения и пропускания тока через него). Опять упираемся в ограничение на постоянную времени аналогового фильтра.

3)Как описано выше необходимо давить импульсную помеху. Аналоговым фильтром она размажется на его постоянную времени. Амплитуда у нее может превышающую полезный сигнал в 10 раз! Ее не отфильтруешь ее надо вырезать(вырезаем медианным фильтром на рис он входит в окно 1-го фильтра).
Тут вообще ограничение на постоянную времени аналогового фильтра не больше 10-20 мкс!



Итак, м.б. я как ни старался все равно много написал. Я ни в коем случае на прошу за меня построить систему! Вопрос, как бы глупо он не звучал и не противоречил теории, собственно только один:

Есть способы подавления помех за пределами частоты дискретизации НЧ фильтра(любого) при невозможности их подавления до этого фильра???????
spooki
Видимо много букв.

Вынесу вопрос отдельно.


Есть ли способы подавления помех частотой выше частоты дискретизации?
ivan219
Есть!
Ставьте НЧ фильтр перед тем как оцифровываете сигнал т.е. перед АЦП.
spooki
ivan219

Спасибо конечно wink.gif
Но если бы вопрос был из ряда открыть учебник на нужной страницы - я бы его не задавал.

Почему так не канает читайте в первом посте со слов:

Обычно в таких системах ставят отдельный аналоговый НЧ фильтр ..... (выделено жирным)
ivan219
spooki в тех же учебниках так же написано что все частоты кратные частоте дискретизации попадают в туже полосу так что если нет НЧ фильтра то у вас получится бесконечное наложение.
Вам может помочь только АЦП с большей частотой дискретизации при этом входной НЧ фильтр можно свести к простой RC цепочке. А дальше у же цифровой фильтр и децимация.
DRUID3
Цитата(spooki @ Apr 3 2012, 09:56) *
Соответственно аналоговый фильтр не может иметь постоянную времени больше чем время опроса одного датчика т.е. больше 1 мс...

...так на каждый канал - свой...

А вообще даже не так. Какая разница опрос это датчиков через мультиплексор или поток с одного ADC? Фильтруйте себе. Если статистически они как-то там разделимы (помеха и сигнал) то вперед.
spooki
Цитата
spooki в тех же учебниках так же написано что все частоты кратные частоте дискретизации попадают в туже полосу так что если нет НЧ фильтра то у вас получится бесконечное наложение.


Цитата
Вам может помочь только АЦП с большей частотой дискретизации при этом входной НЧ фильтр можно свести к простой RC цепочке. А дальше у же цифровой фильтр и децимация.


Цитата
...так на каждый канал - свой...

А вообще даже не так. Какая разница опрос это датчиков через мультиплексор или поток с одного ADC? Фильтруйте себе. Если статистически они как-то там разделимы (помеха и сигнал) то вперед.




Про это все я в курсе.



В первом посте все проблемы описаны. Датчики параметрические!

Процес измерения.

1) Подключаемся к 1 датчику
2) Пропускаем через него ток (допустим 2 мА) в течении 1 мс.
3) За эту 1 мс измеряем значение.
4) Отключаем источник тока от датчика.

1`) Подключаемся ко 2 датчику
2`) Пропускаем через него ток (допустим 2 мА) в течении 1 мс.
3`) За эту 1 мс измеряем значение.
4`) Отключаем источник тока от датчика.

.....

Поробуем поставить на каждый канал отдельный фильтр на 280 Гц(например). На 1 кГц мне не надо у меня с этим и цифровой фильтр справляется - опрос 1 мс.

Моделируем и рисуем:

Рис.1 Схема измерения
Рис.2 Измерение с фильтром 280 Гц
Рис.3 Измерение с фильтром 2800 Гц


Как видно из рисунка 2 при пропусканнии тока через параметрический датчик (резистор) на выходе фильтра мы не получаем нужного значения напряжения 2мА*1кОм=2В за 1 мс ибо постоянная времени фильтра равна 1/280 Гц = 3,5мс, а для точного измерения она должна быть раз в 10 меньше чем время опроса!
С фильтром на 2800 Гц(рис.3) жить уже можно, но мне он уже не поможет.


Ставить 128 генераторов тока - на каждый канал отдельно чтобы опрос током был не импульсным а постоянным просто недопустимо при заданных габаритах потребленнии и цене и требовании ТЗ на время опроса 1 датчика.

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

У нас задана точность измерения 0.1 % от измеряемой величины.
fontp
QUOTE (spooki @ Apr 3 2012, 10:56) *
Есть способы подавления помех за пределами частоты дискретизации НЧ фильтра(любого) при невозможности их подавления до этого фильра???????




Нет.Вообще-то наложения спектра при дискретизации с недосэмплингом в цифре отфильтровать невозможно, поезд как бы ушел. Мудрить нужно в аналоге (или цифровать на высокой частоте - сами скачки напряжения, но это как-то не очень, не для того мультиплексор чтобы палить быстродействие АЦП). Помнится, для примерно таких дел существует схема выборки и хранения. Отрывать конденсатор от датчика, когда ток не течет
http://www.gaw.ru/html.cgi/txt/doc/switch/switch_6_1.htm
_4afc_
Импульсная помеха больше сигнала на 20дБ, но находится в диапазоне возможных амплитуд датчика?.
Фильтр до АЦП какую АЧХ имеет и сколько давит Дб на октаву?

Частота АЦП - 10МГц,
время измерения 1мс => 10000точек.
время импульсной помехи 10мкс => 100точек.

Медианный фильтр - зачем? Вы размазываете помеху, а говорите надо вырезать.
Вам надо брать среднее значение 10000 точек и не учитывать аномальные всплески длиной 100 точек.
А уже полученные после этого 10000 точек (N3) можете кидать на стандартные фильтры или раскладывать в Фурье.

PS: Не люблю интегралы и дифференциальные уравнения, я сторонник проверки любых теорий осциллографом sm.gif



Цитата(fontp @ Apr 5 2012, 12:06) *
Помнится, для примерно таких дел существует схема выборки и хранения.


Только она тогда должна тогда выполнять все требования ТС, например по фильтрации помех.
Мне кажется АD684 импульсную помеху добавит к уровню, и её уже не отфильтруешь.
fontp
QUOTE (_4afc_ @ Apr 5 2012, 12:21) *
Только она тогда должна тогда выполнять все требования ТС, например по фильтрации помех.
Мне кажется АD684 импульсную помеху добавит к уровню, и её уже не отфильтруешь.


Я ссылку привел не для рекламы AD, как пример, как принцип. Конечно есть ограничения. Но ПЗС-камеры как-то работают - двойная коррелированная выборка, то-сё.... Изображение ПЗС камер не поражены импульсной помехой, несмотря на то что НЧ сигнал промодулирован тактовой
spooki
Цитата
Помнится, для примерно таких дел существует схема выборки и хранения. Отрывать конденсатор от датчика, когда ток не течет


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




Цитата
Импульсная помеха больше сигнала на 20дБ, но находится в диапазоне возможных амплитуд датчика?.
Фильтр до АЦП какую АЧХ имеет и сколько давит Дб на октаву?

Частота АЦП - 10МГц,
время измерения 1мс => 10000точек.
время импульсной помехи 10мкс => 100точек.

Медианный фильтр - зачем? Вы размазываете помеху, а говорите надо вырезать.
Вам надо брать среднее значение 10000 точек и не учитывать аномальные всплески длиной 100 точек.
А уже полученные после этого 10000 точек (N3) можете кидать на стандартные фильтры или раскладывать в Фурье.

PS: Не люблю интегралы и дифференциальные уравнения, я сторонник проверки любых теорий осциллографом


Прикиним.

Меряем сигнал 1 В. 10мкс помеха 6В (сделал не в 10 раз а в 6). Все это в диапазоне АЦП и датчика.

итак (1*9900+6*100)/10000=1.05 В
Погрешность измерения в этом цикле 5 % (и это при том, что мы взяли одну помеху 10 мкс за 1 мс. По ТЗ(не указал в первом посте) она мб с периодом 250 мкс т.е. 4 раза за 1 мс)
Требуемая точность 0.1 %!
DRUID3
biggrin.gif Вам посоветовали брать не медиану, а отбрасывать максимальное - есть и такой порядковый фильтр. Сортировкой делается.
spooki
Цитата
Вам посоветовали брать не медиану, а отбрасывать максимальное - есть и такой порядковый фильтр. Сортировкой делается.


Цитата
Медианный фильтр - зачем? Вы размазываете помеху, а говорите надо вырезать.
Вам надо брать среднее значение 10000 точек и не учитывать аномальные всплески длиной 100 точек.
А уже полученные после этого 10000 точек (N3) можете кидать на стандартные фильтры или раскладывать в Фурье.



Господа, видимо, мы друг друга недопоняли.

Я делаю предварительную медианную фильтрацию для вырезания импульсных помех.
Погуглим!

http://gendocs.ru/v29265/лекция_-_медианные_фильтры
http://jurnal.org/articles/2008/izmer3.html


Цитата
Медианные фильтры достаточно часто применяются на практике как средство предварительной обработки цифровых данных. Специфической особенностью фильтров является явно выраженная избирательность по отношению к элементам массива, представляющим собой немонотонную составляющую последовательности чисел в пределах окна (апертуры) фильтра, и резко выделяющихся на фоне соседних отсчетов. В то же время на монотонную составляющую последовательности медианный фильтр не действует, оставляя её без изменений. Благодаря этой особенности, медианные фильтры при оптимально выбранной апертуре могут, например, сохранять без искажений резкие границы объектов, эффективно подавляя некоррелированные или слабо коррелированные помехи и малоразмерные детали. Это свойство позволяет применять медианную фильтрацию для устранения аномальных значений в массивах данных, уменьшения выбросов и импульсных помех.


Медианный фильр импульсных помех это и есть фильтр который выкидывает максимальные и минимальные всплески в заданном окне. Наверное вы перепутали с усреднением.

П.С. Ну ладно все это не решает проблем фильтрации периодических помех ниже 1000 Гц(для моей системы).
_4afc_
Цитата(spooki @ Apr 6 2012, 09:46) *
Господа, видимо, мы друг друга недопоняли.
Я делаю предварительную медианную фильтрацию для вырезания импульсных помех.
Медианный фильр импульсных помех это и есть фильтр который выкидывает максимальные и минимальные всплески в заданном окне. Наверное вы перепутали с усреднением.

Тогда почему вы прибавляете 6*100, а не МФ(1*9900,6*100)=1*9900+1.хх*100
Цитата(spooki @ Apr 5 2012, 13:01) *
Прикиним.
Меряем сигнал 1 В. 10мкс помеха 6В (сделал не в 10 раз а в 6). Все это в диапазоне АЦП и датчика.
итак (1*9900+6*100)/10000=1.05 В
Погрешность измерения в этом цикле 5 % (и это при том, что мы взяли одну помеху 10 мкс за 1 мс. По ТЗ(не указал в первом посте) она мб с периодом 250 мкс т.е. 4 раза за 1 мс) Требуемая точность 0.1 %!

???
spooki
Цитата
Тогда почему вы прибавляете 6*100, а не МФ(1*9900,6*100)=1*9900+1.хх*100


Вот я и говорю произошло недопонимание.

Цитата
Медианный фильтр - зачем? Вы размазываете помеху, а говорите надо вырезать.


Эта фраза мне не понятна.

Цитата
Вам надо брать среднее значение 10000 точек и не учитывать аномальные всплески длиной 100 точек.
А уже полученные после этого 10000 точек (N3) можете кидать на стандартные фильтры или раскладывать в Фурье.


Я подумал вы предлагаете. забить на эти 100 точек (не учитывать аномальные всплески длиной 100 точек - не обращать на них внимание).

В своей медианной фильтрации я как раз вырезаю импульсные помехи.
_4afc_
Цитата(spooki @ Apr 6 2012, 13:06) *
Эта фраза мне не понятна.

Возможно она не корректна с моей стороны.

Цитата(spooki @ Apr 6 2012, 13:06) *
Я подумал вы предлагаете. забить на эти 100 точек (не учитывать аномальные всплески длиной 100 точек - не обращать на них внимание).

Я плохо выразил мысль в тексте, но на приведённой мной выше картинке то, что я имел в виду.

Цитата(spooki @ Apr 6 2012, 13:06) *
В своей медианной фильтрации я как раз вырезаю импульсные помехи.

Насколько я понимаю амплитуда помехи не имеет значения для подобной фильтрации пока не перегружает АЦП и прочую входную часть по уровню. Важна лишь её длительность и количество таких помех в одном измерении.

У вас 100 точек из 10000 могут иметь помеху уровнем 6В которую надо обработать фильтром.
Т.е. надо получить (1*9900+1.1*100)/10000=1.001 В
Значит ваш фильтр должен ваши 6В урезать до 1В с точностью 10%. Вам это не удаётся?
spooki
Цитата
У вас 100 точек из 10000 могут иметь помеху уровнем 6В которую надо обработать фильтром.
Т.е. надо получить (1*9900+1.1*100)/10000=1.001 В
Значит ваш фильтр должен ваши 6В урезать до 1В с точностью 10%. Вам это не удаётся?


Возможно опять нарвемся на непонимание.
Если вы говорите про подавление импульсной помехи входным аналоговым фильтром до нужного значения то вот результат.

Рис. 1 Схема

Рис. 2 Сигнал на входе АЦП без аналогового RC фильтра.

Рис. 3 Синал на входе АЦП с аналоговым фильтром все на те же 280 Гц.

Из рис.3 видно, что ничего хорошего с таким сигналом уже не выйдет. Без RC фильтра (рис.2) вырезать проблем нет
DRUID3
Цитата
Таким образом, медианная фильтрация осуществляет замену значений отсчетов в центре апертуры медианным значением исходных отсчетов внутри апертуры фильтра.


??? Ну и зачем это все? Захватить фрейм. В отдельном массиве отсортировать по-возрастанию. Старшие отбросить. На их место вставить интерполяции по соседним. Вот такой порядковый фильтр применяется против "промахов"(из метрологии).

Цитата(spooki @ Apr 6 2012, 12:06) *
В своей медианной фильтрации я как раз вырезаю импульсные помехи.

Нет. Размазываете. Промах влияет на медиану.

P.S.: spooki с чего Вы взяли, что RC-цепочка это хороший фильтр?
P.P.S.: ...и прекратите все моделировать, это убивает физическое понимание на корню.
spooki
Цитата
??? Ну и зачем это все? Захватить фрейм. В отдельном массиве отсортировать по-возрастанию. Старшие отбросить. На их место вставить интерполяции по соседним. Вот такой порядковый фильтр применяется против "промахов"(из метрологии).


Допустимая частота появления 10мкс-ой помехи 250 мкс.


Мой алгоритм получения постоянной составляющей в первом фильтре таков. (без лишних тонкостей, цифры могут отличаться)

делим 250 мкс на 8 отсчетов (это 8 усредненных отсчетов в своих 31.25 us окнах) и кладем в медианный фильтр

2 верхних и 2 нижних отбрасываем 4 средних усредняем и на выход.

Проводим операцию 4 раза и получаем 4 отсчета за 1 мс - их усредняем - все.


Есть более простой и быстрый способ поления постаянной состовляющей сигнала налету?
У меня 8 элементный медианный фильтр пашет налету(упорядочивается параллельно без дополнительного времени на сортировку по возрастанию).
Вы сделаете медианный фильтр на 10 000 отсчетов без сортировки после сбора данных? Сомневаюсь.


Цитата
P.S.: spooki с чего Вы взяли, что RC-цепочка это хороший фильтр?


А я говорю что хороший? Она там стоит для примера - смотрим как влияет фильтр с определенной постоянной времени на импульсный скачок.




И вообще, все это не так важно - разница между Вашим и моим алгоритмом - крохи.

Меня больше интрересует подавление переодических помех.
DRUID3
Цитата(spooki @ Apr 6 2012, 16:41) *
А я говорю что хороший. Она там стоит для примера - смотрим как влияет фильтр с определенной постоянной времени на импульсный скачок.

...так этА... идеальный фильтр != идеальный интегратор.

Цитата(spooki @ Apr 6 2012, 16:41) *
Меня больше интрересует подавление переодических помех.

Вот и я говорю. Тут можно фильтровать в общем потоке. Нейквисту это не противоречит.

Кстати, тут пугали Калманом недавно... rolleyes.gif АПшибки, Гинерция, мноХа каналаФФ... самАе Ано...
spooki
Цитата
Вот и я говорю. Тут можно фильтровать в общем потоке. Нейквисту это не противоречит.


Дык я так и делаю получаю в определенном окне отсчеты(32.5 мкс - 1 мс) далее их на второй НЧ фильтр сплошной ( в общем потоке) .
Поверьте, что отдельный отсчеты фильтровать в общем потоке, что их группировать (усреднять) по группам -сильно не влияет для данной реализации.


Цитата
Кстати, тут пугали Калманом недавно... АПшибки, Гинерция, мноХа каналаФФ... самАе Ано..


Встречал такой. Врать не буду не разбирался. Но по реализации тяжелый.
Если его делать сквозным(т.е. не в 1 цикле опроса каналов, а больше) не знаю влезет ли у меня такой на 128 каналов в 1 ПЛИС.
Определенныйе блоки расчета, конечно можно использовать одни и те же(если скорость позводит).
Но у меня по хранению хотя бы 100 байт по каждому сигналу (20-30 отсчетов + 10-20 коэффициентов фильтра) уже проблемы - внутренней памяти не хватат. За внешнюю чую за одно место меня повесят.

Но на досуге надо посмотреть конечно.
DRUID3
Цитата(spooki @ Apr 6 2012, 17:08) *
Но на досуге надо посмотреть конечно.


Хабр не читаете? biggrin.gif Кто-то видимо писал по нему диплом. И накатал такую статью, что не понял под конец сам... Потом пошла целая серия "введений"...
Pavel_SSS
1. Скажите, а какой спектр у измеряемой величины без помех? Как быстро меняется напряжение на этом терморезисторе если на него подать ток постоянно?
2. Как реализован аналоговый мультиплексор на 128 входов?
3. Известно откуда помеха 10 кгц?
spooki
Цитата
1. Скажите, а какой спектр у измеряемой величины без помех? Как быстро меняется напряжение на этом терморезисторе если на него подать ток постоянно?



Система должна быть универсальна. Спектр полезного сигнала конкретного канала от 0 до 200Гц, скорость нарастания может быть любой. В зависимости от этого пользователь сам будет настраивать фильтры по каждому каналу.

Поэтому требования к системе очень широкие: фильтрация помех в диапазоне от 0.05 Гц - 70 МГц. Типо если им надо будет, наше система должна это уметь.

Цитата
2. Как реализован аналоговый мультиплексор на 128 входов?


М.б. ответ туфтологический, но реализован с помощью 32 (канал + и -) 8-ми канальных аналоговых мультиплексоров.

Цитата
3. Известно откуда помеха 10 кгц?


Нет. На самом деле 128 каналов это только 1 модуль. Всего в системе будет порядка 700 датчиков (аналоговые датчики с выходом- напряжение + параметрические) не считая цифровых. Все стоят в разных местах на разных узлах. Меряют освещенность, температуру, напряжение, ток и прочее прочее.
Короче система должна быть универсальна. Так что нет таких понятий что откуда берется.

Pavel_SSS
Цитата(spooki @ Apr 8 2012, 15:47) *
Система должна быть универсальна. Спектр полезного сигнала конкретного канала от 0 до 200Гц, скорость нарастания может быть любой. В зависимости от этого пользователь сам будет настраивать фильтры по каждому каналу.

Поэтому требования к системе очень широкие: фильтрация помех в диапазоне от 0.05 Гц - 70 МГц. Типо если им надо будет, наше система должна это уметь.



М.б. ответ туфтологический, но реализован с помощью 32 (канал + и -) 8-ми канальных аналоговых мультиплексоров.



Нет. На самом деле 128 каналов это только 1 модуль. Всего в системе будет порядка 700 датчиков (аналоговые датчики с выходом- напряжение + параметрические) не считая цифровых. Все стоят в разных местах на разных узлах. Меряют освещенность, температуру, напряжение, ток и прочее прочее.
Короче система должна быть универсальна. Так что нет таких понятий что откуда берется.


Если я правильно понял, то полоса сигнала от датчика - 200 герц, тогда Вам надо удвоить количество аналоговых ключей, включить 2 ключа последовательно, а в точке их соединения конденсатор на землю. И так для каждого канала. Соответственно, постоянная времени системы сопротивление ключа - выходное сопротивление датчика - конденсатор должна быть 5 миллисекунд.

..................................SW1......................... SW2
In o________________/ _________________/ __________________o ADC
...................................................|
...................................................|
...................................................|
.................................................___
.................................................___ C
...................................................|
...................................................|
...................................................|
.................................................___
...................................................-
.................................................GND

Соответственно, получите антиалиасинговый фильтр, который "помнит" состояние канала в промежутках между измерениями. Идею можно совершенствовать, например, добавить цепь компенсации тока утечки, или увеличивать порядок фильтра - вместо одного конденсатора поставить 2 с резистором...
spooki
Pavel_SSS

Цитата
Если я правильно понял, то полоса сигнала от датчика - 200 герц, тогда Вам надо удвоить количество аналоговых ключей, включить 2 ключа последовательно, а в точке их соединения конденсатор на землю. И так для каждого канала. Соответственно, постоянная времени системы сопротивление ключа - выходное сопротивление датчика - конденсатор должна быть 5 миллисекунд.


Этот вопрос затрагивался на 1 странице темы. (аналог устройства выборки зранения)
Читайте мои ответы - Сообщение № 7 и 11.

В кратце. Этот фильтр также работает с частотой дискретизации подключения его к каналу (SW1 на вашей схеме). И также пропускает диапазон частот.
В целом иметь аналоговый фильтр для подавления НЧ, который подключается на то же самое оно что и АЦП - смысла не имеет(если только давить помехи от частоты дискретизации АЦП). С помехами в окне опроса одного датчика я и так справлюсь.

Пример подключения аналогового фильтра во время опроса канала на вложенном рисунке(1В - полезный постоянный сигнал , синус ампл. 1 В - помеха, прямоугольники - окна опроса)

Цитата
И так для каждого канала. Соответственно, постоянная времени системы сопротивление ключа - выходное сопротивление датчика - конденсатор должна быть 5 миллисекунд.


См. мое сообщение № 17. Импульсную помеху смажем донельзя и вся точность измерения в 0.1% в урну.
Pavel_SSS
Цитата(spooki @ Apr 9 2012, 10:04) *
Pavel_SSS



Этот вопрос затрагивался на 1 странице темы. (аналог устройства выборки зранения)
Читайте мои ответы - Сообщение № 7 и 11.

В кратце. Этот фильтр также работает с частотой дискретизации подключения его к каналу (SW1 на вашей схеме). И также пропускает диапазон частот.
В целом иметь аналоговый фильтр для подавления НЧ, который подключается на то же самое оно что и АЦП - смысла не имеет(если только давить помехи от частоты дискретизации АЦП). С помехами в окне опроса одного датчика я и так справлюсь.

Пример подключения аналогового фильтра во время опроса канала на вложенном рисунке(1В - полезный постоянный сигнал , синус ампл. 1 В - помеха, прямоугольники - окна опроса)



См. мое сообщение № 17. Импульсную помеху смажем донельзя и вся точность измерения в 0.1% в урну.

Этот фильтр не работает с частотой дискретизации, а работает как фильтр с постоянной времени RC, которая может быть и больше частоты дискретизации.
Вообще, попытки создать систему сбора данных без какого-либо аналогового фильтра обречены на провал, как и попытки поставить аналоговый фильтр после мультиплексора (если постоянные составляющие входных сигналов не равны). Этот фильтр предназначен не для подавления НЧ, а для подавления ВЧ - обрезания полосы до рабочей полосы частот датчика. Кстати, Вы зря полагаете, что измеряя сигнал в течении 1 миллисекунды с частотой 128 миллисекунд, вы получаете истинное значение величины. Вы всего лишь получаете дискретную последовательность с периодом 128 миллисекунд сигнала, который не отфильтрован должным образом для выполнения условий теоремы Котельникова, т.е. эта последовательность не отражает в полной мере входной сигнал. Вдруг у Вас моменты измерения попадают на импульсную помеху, и Вы измеряете не сигнал, а помеху. Тот факт, что Вы измеряете сигнал 10000 раз ничего не меняет, это логичнее трактовать как увеличение эффективного количества бит на примерно 12 бит.

т.е. если Вы хотите оцифровать какой-либо сигнал, то сначала отфильтруйте его так, чтобы убрать составляющие спектра за пределами половины частоты дискретизации. А частота дискретизации у Вас равна не частоте, на которой работает АЦП, а частоте, с которой опрашиваются датчики.
spooki
Pavel_SSS

Все что Вы говорите правильно. Это все мне известно.
Я не просто так создал тему. Вы как будто через строку читаете мои ответы.
Я уже раз 5 писал в этой теме причины, почему мы не можем поставить аналоговый НЧ фильтр ниже, скажем, 100кГц.

В 1 сообщении темы читайте со слов:

Цитата
Обычно в таких системах ставят отдельный аналоговый НЧ фильтр на каждый канал который давит помехи до частоты дискретизации 2-го фильтра, но тут это не прокатит:


Мы не только опрашиваем датчики раз в 128 мс, мы через него пропускаем ток опроса раз в 128 мс. Следовательно,

1) если аналоговый фильтр мы от него не отрубаем то на фильтре будут прямоугольные(в идеале) импульсы напряжения с частотой повторения 1/128 мс.

Что при этом будет выдавать фильтр показано здесь:
http://electronix.ru/forum/index.php?act=a...st&id=67283

(сверху импульс опроса тока, снизу напряжение на фильтре)

ФИЛЬТР С ПОСТОЯННОЙ ВРЕМЕНИ 5МС НЕ УСТАКАНИТСЯ ЗА 1 МС!!!!

2) если отключать фильтр от канала при прекращении подачи тока через датчик то получается что фильтр мы подключаем к каналу раз в 128 мс. При этом постоянная времени нпикуда не девается но уже меньше влияет.

НО ПОДКЛЮЧАЯ АНАЛОГОВЫЙ ФИЛЬТР С ПОСТОЯННОЙ ВРЕМЕНИ 5 МС К КАНАЛУ РАЗ В 128 МС ВЫ НЕ ПОЛУЧИТЕ ФИЛЬТРАЦИЮ ВЫШЕ 1/128 МС. Эта ситуация описана на вложенном рисунке
Пожалуйста, помеха частотой 24 Гц(Частота может быть и другая кратная 24 например 24 кГц - картина таже самая) на фоне постоянного сигнала 1 В. Че вы получите на аналоговом фильтре подключая его каждые 128 мс - правильно 2 В. Ну и че мы намерили, че отфильтровали. Хотя частота помехи мб намного выше частоты среза фильтра 200Гц в данном случае!




Цитата
Вдруг у Вас моменты измерения попадают на импульсную помеху, и Вы измеряете не сигнал, а помеху.


Ну по ТЗ импульсная помеха не может превышать 10 мкс и я ее прекрасно отбрасываю за 1 мс, так что она тут не причеми а вот нарваться на пик переодической помехи - безусловно.



Цитата
Вообще, попытки создать систему сбора данных без какого-либо аналогового фильтра обречены на провал, как и попытки поставить аналоговый фильтр после мультиплексора (если постоянные составляющие входных сигналов не равны)


Цитата
т.е. если Вы хотите оцифровать какой-либо сигнал, то сначала отфильтруйте его так, чтобы убрать составляющие спектра за пределами половины частоты дискретизации. А частота дискретизации у Вас равна не частоте, на которой работает АЦП, а частоте, с которой опрашиваются датчики.


Ваши предложения, как это сделать при описанных НЕОДНОКРАТНО мною проблемах постановки этого фильтра?
Pavel_SSS
Цитата(spooki @ Apr 10 2012, 12:40) *
Pavel_SSS

Все что Вы говорите правильно. Это все мне известно.

1) если аналоговый фильтр мы от него не отрубаем то на фильтре будут прямоугольные(в идеале) импульсы напряжения с частотой повторения 1/128 мс.

Что при этом будет выдавать фильтр показано здесь:
http://electronix.ru/forum/index.php?act=a...st&id=67283

ФИЛЬТР С ПОСТОЯННОЙ ВРЕМЕНИ 5МС НЕ УСТАКАНИТСЯ ЗА 1 МС!!!!

2) если отключать фильтр от канала при прекращении подачи тока через датчик то получается что фильтр мы подключаем к каналу раз в 128 мс. При этом постоянная времени нпикуда не девается но уже меньше влияет.


Ваши предложения, как это сделать при описанных НЕОДНОКРАТНО мною проблемах постановки этого фильтра?

А почему не хотите сделать каждому каналу свой источник тока на ОУ?
spooki
Цитата
А почему не хотите сделать каждому каналу свой источник тока на ОУ?


Сами так хотим. Но:

Жесткие ограничения на габариты. Итак еле в блок влезаем.

Жесткие ограничения на мощность. Жрет генератор тока 2мА на 1800 Ом около 15 мВт, если на 128 каналов уже 2 Вт. У нас весь 128 - канальный модуль должен жрать не более 5 Вт в импульсе(при старте). Постоянное потребление вообще желательно меньше 3 Вт.

В ТЗ есть ограничения на пропускание тока через параметрический датчик не более 2 мс за 128 мс. Щас разбираемся откуда они это взяли и можно ли это убрать. Предположение такое, чтобы не увеличивать погрешность измерения. Ибо пропуская ток через, скажем датчик температуры (терморезистор), мы его подогреваем током опроса, м.б. это где-то и допустимо, но не для нашей точности 0.1 %.

mihalevski
Цитата(spooki @ Apr 3 2012, 13:56) *
Здравствуйте.

Постараюсь убрать лишнее и упростить вопрос.

Краткое описание задачи
Если многоканальная измерительная система параметрических датчиков с кол-вом каналов N=128.
Параметрические датчики представляют собой терморезисторы. Подключаемся к датчику пропускаем через него ток, измеряем напряжение.

Все каналы последовательно опрашиваются через один АЦП (мультиплексирование) по средствам ПЛИС.См. поясняющий рисунок. Частота работы АЦП 3-10 МГц(это не так важно).

Необходимо за 128 мс опрашивать все датчики и получать с них постоянную составляющую сигнала. Таким образом, максимальный период опроса всех датчиков Топр= 128 мс. При этом допустиму фильтровать сигнал больше чем 128мс (см. рисунок 2 фильтр) но в допустимых пределах(не 20 с).


Необходимо давить гармонические помехи всей полосе частот(есть таблица)! И импульсные помехи определенной длительности (до 10 мкс).

Описание проблемы:
Грубо разобьем фильтрацию на 2 каскада.
Возьмем время опроса одного датчика tопр=128мс/128 датчиков = 1 мс.
1-ый НЧ фильтр вполне нормально давит помехи в своем окне т.е. от 1/1мс=1000 Гц.
2-ой НЧ фильтр частично помогает первому и хорошо давит помехи до 1/128 мс=7.8 Гц

Соответственно помехи от 7.8 до 1000 Гц находятся за пределами работы и 1-го и 2-го фильтра.

Как то попытаться их задавить может только 2-й фильтр. Таким образом фильтр с fd=7.8 Гц должен давить помехи до 1кГц(бред но поехали дальше).
Сделали превдорандомный опрос каналов (см. рисунок) чтобы частично подавить зеркальные частоты для 2-го фильтра - сильно помоглло но не достаточно.
Чтобы подавить переодическую помеху 250Гц(например) до допустимого уровня приходится фильтровать 4 с и то раз на раз по понятным причинам ибо аналитическому расчету подавление помех за рамками fд да еще и с рандомным опросом каналов не поддается - проверяю в маткаде пропуская сигнал через фильтр.

Обычно в таких системах ставят отдельный аналоговый НЧ фильтр на каждый канал который давит помехи до частоты дискретизации 2-го фильтра, но тут это не прокатит:

1) Как описано выше опрос каналов ведется пропусканием тока через датчик при подключении к нему. Соответственно аналоговый фильтр не может иметь постоянную времени больше чем время опроса одного датчика т.е. больше 1 мс (на практике аналоговый фильтр имеет постоянную времени раз в 10 меньше).

2)По ТЗ время опроса датчика не должно превышать 2 мс(т.е. время измерения и пропускания тока через него). Опять упираемся в ограничение на постоянную времени аналогового фильтра.

3)Как описано выше необходимо давить импульсную помеху. Аналоговым фильтром она размажется на его постоянную времени. Амплитуда у нее может превышающую полезный сигнал в 10 раз! Ее не отфильтруешь ее надо вырезать(вырезаем медианным фильтром на рис он входит в окно 1-го фильтра).
Тут вообще ограничение на постоянную времени аналогового фильтра не больше 10-20 мкс!



Итак, м.б. я как ни старался все равно много написал. Я ни в коем случае на прошу за меня построить систему! Вопрос, как бы глупо он не звучал и не противоречил теории, собственно только один:

Есть способы подавления помех за пределами частоты дискретизации НЧ фильтра(любого) при невозможности их подавления до этого фильра???????



Есть вопрос по импульсной помехе. Если эта помеха является наведенной в пространстве то усредненная площадь сигнала помехи (интеграл) будет равен нулю. Тогда оцифрованный сигнал длительностью в 1мс пропущеннай через цифровой фильтр нижних частот освободится от этой помехи. Если эта помеха описывается как сумма к сигналу то тогда бороться с ней необходимо по другому поскольку отделить ее вместе с гармоническими наводками от полезного сигнала на временном интервале 1мс трудно. Если бы еще знать вероятность появления импульсной помехи в течение допустим 128мс в одном канале и связь с импульсными помехами в других каналах. Если вероятность появления импульсной помехи в течение 128мс в одном канале мала то я бы предложил опрашивать датчики поочередно в течение 128мс. На счет наложения спектров можно не волноваться так как необходимо только знание постоянной составляющей, а не спектра помех. Если конечно частота опроса датчика будет неудачно сочетаться с частотой помехи то получится эффект синхронного детектирования гармонической помехи а это плохо. Но здесь можно предложить проводить опрос датчиков с интервалами определяемыми случайным образом. Тогда при усреднении все эффект синхронного детектирования гармонической помехи наблюдаться не будут.
spooki
Цитата
Есть вопрос по импульсной помехе. Если эта помеха является наведенной в пространстве то усредненная площадь сигнала помехи (интеграл) будет равен нулю. Тогда оцифрованный сигнал длительностью в 1мс пропущеннай через цифровой фильтр нижних частот освободится от этой помехи.


Импульсная помеха не факт что симметричная. Интеграл не равен 0.

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

Допустимы период повторения имп помехи 250 мкс. В окне 1 мс с импульсной помехой успешно справляемся.


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


Итак опрос идет рандомно. Картина, конечно, улучшается, но для точности 0.1% этого оказалось недостаточно. Удовлетворительное подавление помех в диапазоне частот 50-1000 Гц удается получить лишь за 30 секунд!
mihalevski
Цитата(spooki @ Apr 10 2012, 18:50) *
Импульсная помеха не факт что симметричная. Интеграл не равен 0.


Допустимы период повторения имп помехи 250 мкс. В окне 1 мс с импульсной помехой успешно справляемся.




Итак опрос идет рандомно. Картина, конечно, улучшается, но для точности 0.1% этого оказалось недостаточно. Удовлетворительное подавление помех в диапазоне частот 50-1000 Гц удается получить лишь за 30 секунд!



Есть идея. Где-то дома в кладовке валялась старая советских времен книга автора Гутникова (помню точно) с названием "Измерение и борьба с помехами..." (нихера не помню) если найду завтра сообщу.
Там предлагался метод борьбы с помехами спектр которых известен. Идея такая: есть постоянный сигнал значение которого необходимо определить и гармоническая помеха частота которой точно известна. Для подавления этой гармонической помехи необходимо взять всего лишь два мгновенных отсчета отстоящих на периобе помехи и их просуммировать. В результате получим удвоенное значение полезного сигнала, а помеха будет исключена. Если помеха представляет собой сумму гармонических колебаний с разными амплитудами но спектр помехи известен то для борьбы с этой помехой необходимо взять ОГРАНИЧЕННОЕ количество мгновенных выборок из исходного сигнала в определенные моменты времени и подставить эти значения в полином правила формирования которого описаныв этой книге. Естественно для определения спектра сигнала с частотами помех от 50Гц придется потратить миллисекунд 40 на каждый канал для проведения FFT но потом имея быстрый мультиплексор за 20 миллисекунд можно опросить в нужные моменты все каналы (ОГРАНИЧЕННОЕ количество мгновенных выборок) и просчитать.
spooki
Цитата
Идея такая: есть постоянный сигнал значение которого необходимо определить и гармоническая помеха частота которой точно известна.


Жаль, но в моем случае точная частота помехи не известна.
mihalevski
Цитата(spooki @ Apr 13 2012, 17:11) *
Жаль, но в моем случае точная частота помехи не известна.


Импульсная помеха не факт что симметричная. Интеграл не равен 0.
Допустимы период повторения имп помехи 250 мкс. В окне 1 мс с импульсной помехой успешно справляемся.
Итак опрос идет рандомно. Картина, конечно, улучшается, но для точности 0.1% этого оказалось недостаточно. Удовлетворительное подавление помех в диапазоне частот 50-1000 Гц удается получить лишь за 30 секунд!

Книга Гутников В.С. "Фильтрация измерительных сигналов. - Л.: Энергатомиздат. 1990"

Получается что усреднением всетаки можно вытянуть необходимую точность измерения. Но 30 секунд! это слишком много. Что помеха такая большая?. Для того чтобы что-то предпринять необходимо знать суммарную мощность и спектральный состав помехи. Может есть какой контрольный канал на выходе мультиплексора подключиться туда и посмотреть (померить) что с источника сигнала поступает. Дальше может включить мультиплексор только на один канал и провести измерения исключив влияние мультиплексора. Мультиплексоры на МОП ключах для высокой точности требуют больших защитных интервалов в 100 раз больших времени выключения указанного в документации (наблюдал сам но не мог объяснить). Выборки сделать равномерными (без рандомизации) и частыми чтобы обработать 1000 Гц, а время накопления сделать кратным 20 мс периоду сетевой частоты. Посмотреть как изменятся результаты при наращивании времени накопления. Одна надежда на то что это всетаки это промышленная частота и ее гармоники. Тогда с помощью помехоподавляющих ВФ путем применения циклотомических (словцо то какое) полиномов можно побороться. Нули подавления там формируются в окрестностях частоты и ее гармоник пологие плюс основную частоту сетевой помехи можно легко измерить и учесть.


Цитата(spooki @ Apr 13 2012, 17:11) *
Жаль, но в моем случае точная частота помехи не известна.


Еще некоторую погрешность могут давать переходные процессы при запитывании датчика. Может делать измерения с некоторой поправкой на установление этих процессов.
spooki
Цитата
Получается что усреднением всетаки можно вытянуть необходимую точность измерения. Но 30 секунд! это слишком много. Что помеха такая большая?. Для того чтобы что-то предпринять необходимо знать суммарную мощность и спектральный состав помехи. Может есть какой контрольный канал на выходе мультиплексора подключиться туда и посмотреть (померить) что с источника сигнала поступает. Дальше может включить мультиплексор только на один канал и провести измерения исключив влияние мультиплексора. Мультиплексоры на МОП ключах для высокой точности требуют больших защитных интервалов в 100 раз больших времени выключения указанного в документации (наблюдал сам но не мог объяснить). Выборки сделать равномерными (без рандомизации) и частыми чтобы обработать 1000 Гц, а время накопления сделать кратным 20 мс периоду сетевой частоты. Посмотреть как изменятся результаты при наращивании времени накопления. Одна надежда на то что это всетаки это промышленная частота и ее гармоники. Тогда с помощью помехоподавляющих ВФ путем применения циклотомических (словцо то какое) полиномов можно побороться. Нули подавления там формируются в окрестностях частоты и ее гармоник пологие плюс основную частоту сетевой помехи можно легко измерить и учесть.


Система будет работать там где о 50 Гц и не слышали (Спутник).

Цитата
Еще некоторую погрешность могут давать переходные процессы при запитывании датчика. Может делать измерения с некоторой поправкой на установление этих процессов.

Задержка измерения после подключения датчика, само-собой присутствует.

Цитата
Что помеха такая большая?

Нет. В указанной полосе 50-1000 Гц помеха мб 50 мВ амплитудой.
Но вы попробуйте какими-либо методами подавить ее в 10 раз при дискретизации 15-50 Гц. Тут только статистика уже работает, а статистика начинает устаканиваться как раз начиная с 500 отсчетов(как известно).

mihalevski
Цитата(spooki @ Apr 13 2012, 19:42) *
Система будет работать там где о 50 Гц и не слышали (Спутник).


Задержка измерения после подключения датчика, само-собой присутствует.


Нет. В указанной полосе 50-1000 Гц помеха мб 50 мВ амплитудой.
Но вы попробуйте какими-либо методами подавить ее в 10 раз при дискретизации 15-50 Гц. Тут только статистика уже работает, а статистика начинает устаканиваться как раз начиная с 500 отсчетов(как известно).


Побороться с сетевой помехой всеже можно. В той книге, которую я преводил выше, описаны множество методов борьбы с сетевой помехой и ее гармониками.
В качестве примера для возможного испытания на практике (не углубляясь в дебри) использовал синтез помехоподавляющих весовых функций путем применения
циклотомических полиномов. На основе приведенного примера синтезировал функцию, описывающую КИХ фильтр и проверил полученный результат в МАТКАДЕ.
Все получилось как и писал автор. Конечно, полученный фильтр имеет режекцию только в узких полосах частот на частотах сетевой помехи и ее гармониках. Но с
другой стороны, для получения результата, требует только 15 мгновенных выборок с частотой следования выборок 600 Гц (25мс на одно измерение). Подавление
основной частоты помехи 50Гц +/- 1% составляет -74 децибела. Все коэффициенты фильтра равны 0 или 1 и следовательно, для реализации необходимы только
15 регистров и сумматор. Функция, описывающая фильтр, имеет вид: Z+1+Z^5+Z^4+Z^9+Z^8+Z^7+Z^6+Z^11+Z^10+Z^15+Z^14. Реализация такого фильтра программным
или аппаратным методом простая: формируется сдвигающий регистр из 15 регистров с отводами куда последовательно продвигаются 15 выборок входного сигнала.
Отводы с выходов 15, 14,11, 10, 9, 8, 7, 6, 5, 4, 1 и входа 1 регистров суммируются - результат получен. Попробую прикрепить маткадовский файл в виде рисунка.
Там видно что 12 гармонику этот фильтр не давит. Но попробовать можно.
Так как используется 15 + 1 мгновенных выборок то может добавить тока на датчики если от этого возрастет их чувствительность (не перегреются). Имея быстрый
мультиплексор и АЦП можно параллельно брать выборки с большого количества датчиков. Импульсная помеха, если попадет в выборку, конечно внесет ошибку
так как фильтр с такими помехами не борется. Но так как одно измерение длится 25мс томожно провести несколько измерений и результаты усреднить поборов
импульсную помеху. Необходимо учитавать что для сигнала 0 частоты усиление фильтра составляет +21.58 dB.
Может конечно чтото напутал ну примерно так.

Цитата(mihalevski @ Apr 14 2012, 23:27) *
Побороться с сетевой помехой всеже можно. В той книге, которую я преводил выше, описаны множество методов борьбы с сетевой помехой и ее гармониками.
В качестве примера для возможного испытания на практике (не углубляясь в дебри) использовал синтез помехоподавляющих весовых функций путем применения
циклотомических полиномов. На основе приведенного примера синтезировал функцию, описывающую КИХ фильтр и проверил полученный результат в МАТКАДЕ.
Все получилось как и писал автор. Конечно, полученный фильтр имеет режекцию только в узких полосах частот на частотах сетевой помехи и ее гармониках. Но с
другой стороны, для получения результата, требует только 15 мгновенных выборок с частотой следования выборок 600 Гц (25мс на одно измерение). Подавление
основной частоты помехи 50Гц +/- 1% составляет -74 децибела. Все коэффициенты фильтра равны 0 или 1 и следовательно, для реализации необходимы только
15 регистров и сумматор. Функция, описывающая фильтр, имеет вид: Z+1+Z^5+Z^4+Z^9+Z^8+Z^7+Z^6+Z^11+Z^10+Z^15+Z^14. Реализация такого фильтра программным
или аппаратным методом простая: формируется сдвигающий регистр из 15 регистров с отводами куда последовательно продвигаются 15 выборок входного сигнала.
Отводы с выходов 15, 14,11, 10, 9, 8, 7, 6, 5, 4, 1 и входа 1 регистров суммируются - результат получен. Попробую прикрепить маткадовский файл в виде рисунка.
Там видно что 12 гармонику этот фильтр не давит. Но попробовать можно.
Так как используется 15 + 1 мгновенных выборок то может добавить тока на датчики если от этого возрастет их чувствительность (не перегреются). Имея быстрый
мультиплексор и АЦП можно параллельно брать выборки с большого количества датчиков. Импульсная помеха, если попадет в выборку, конечно внесет ошибку
так как фильтр с такими помехами не борется. Но так как одно измерение длится 25мс томожно провести несколько измерений и результаты усреднить поборов
импульсную помеху. Необходимо учитавать что для сигнала 0 частоты усиление фильтра составляет +21.58 dB.
Может конечно чтото напутал ну примерно так.

spooki
mihalevski

Спасибо. Потестим.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.