С помощью конденсатора небольшой емкости, подключенного к суммирующему узлу, можно реализовать простейший ФНЧ первого порядка для ослабления высокочастотных составляющих, наводимых внешними источниками, такими как тактовый генератор микроконтроллера. Этот же ФНЧ выполняет роль фильтра, устраняющего эффект
1/2π
Чтобы еще больше снизить шумы, конденсатор фильтра должен иметь хорошие высокочастотные параметры (на высоких частотах конденсаторы становятся индуктивностями) и вместе с резистором должен быть размещен как можно ближе к входу, а рядом с ним не должно проходить никаких цифровых линий. Хорошей практикой является развязывание опорного напряжения и напряжения питания с помощью танталовых электролитических конденсаторов малой емкости и/или керамических конденсаторов емкостью 0.1 мкФ для уменьшения помех, вызванных работой микроконтроллера и других устройств, питающихся от того же источника. Используя отдельные линии питания и земли для подключения микроконтроллера к источнику питания, можно еще больше снизить уровень помех от этого источника.
Одной из задач интеллектуального биомедицинского монитора является периодическое измерение пикового напряжения сигнала ЭКГ. Значение, соответствующее данной точке R (см. Рис. 7.1 на стр. 208), должно выводиться через порт В, и при обновлении этого значения на выводе RA5 должен формироваться положительный импульс. Предполагая, что для реализации указанного устройства используется микроконтроллер PIC16F87X, а сигнал ЭКГ поступает на вход RA1, разработайте возможную методику решения указанной задачи. Для прерывания процессора 2000 раз в секунду мы будем использовать Таймер 0 (см. Программу 13.2 на стр. 461). Напишите процедуру обработки прерывания, соответствующую разработанному алгоритму.
Решение
Как и любой биомедицинский параметр, сигнал ЭКГ отличается от такта к такту амплитудой, формой и периодом. Даже если бы это было и не так, несовершенство элементов системы сбора данных, в особенности кожных электродов, может привести к медленному дрейфу базовой линии (постоянной составляющей сигнала). Поэтому величину порогового напряжения, начиная с которого мы будем отслеживать появление пикового (точка R) значения сигнала, необходимо во время каждого периода принимать равной некоторой части амплитуды предыдущего пика.
Один из возможных вариантов реализации этого метода приведен на Рис. 14.19. В данном случае после каждого импульса порог слегка уменьшается, чтобы исключить пропуск последующего пика с меньшей амплитудой. Примем минимальную частоту ЭКГ равной 40 ударам в минуту (период 1.5 с). Тогда если при каждой выборке мы будем уменьшать пороговое значение на 1/64 бита, то при частоте 2000 выборок/с максимальное уменьшение составит ~= 47. Для этого пороговое значение THRESHOLD в Программе 14.4 хранится как двухбайтное значение в формате целое: дробное, и после каждой выборки, в которой пиковое значение MAXIMUM не обновляется, из порогового значения вычитается 1/64 целого (т. е. дробное, равное Ь’00000100’). Изменяя вычитаемое, можно управлять скоростью изменения порогового значения.
Рис. 14.19.
Данная программа работает по следующему алгоритму:
1. ВЫПОЛНИТЬ преобразование для получения значения ANALOG.
2. ЕСЛИ (ANALOG > THRESHOLD)
• MAXIMUM = ANALOG
• THRESHOLD = ANALOG
• PORTB = ANALOG
• RA5 = 1
3. ИНАЧЕ
• THRESHOLD = THRESHOLD — 1/64
• RA5 = 0
При изменении порогового значения THRESHOLD (в случае, если ANALOG > THRESHOLD) в регистр, содержащий целую часть числа, заносится новое значение MAXIMUM, а регистр с дробной частью обнуляется. Если интерпретировать эту пару байтов как 16-битное слово, то пороговое значение можно вычислить как MAXIMUM х 256 или, иначе, THRESHOLD = MAXIMUM << 8. Предполагается, что значение THRESHOLD было обнулено фоновой программой на этапе инициализации и что мы используем 8-битное аналого-цифровое преобразование.
Если оцифрованное значение меньше порогового, то из младшего байта, расположенного в регистре THRESHOLD+1, вычитается h’04’ = Ь’00000100’, и, если при этом возникает заем, декрементируется старший байт THRESHOLD. При равенстве порогового значения нулю эта операция вычитания пропускается — таким образом, предотвращается потеря значимости.