При измерении аналоговых величин возникает погрешность, которая в той или иной мере оказывает негативное влияние на результат измерения. Одним из простых методов подавления шумов, позволяющих свести к минимуму потери полезного сигнала, является применение фильтра Калмана [1–10]. Этот метод носит имя американского математика Калмана Р. и способен давать значение, максимально приближенное к реальному. Такие результаты достигаются благодаря тому, что система может учитывать управляющее воздействие на систему, если известны свойства этого воздействия [2, 3].
Имея модель динамической системы, фильтр Калмана может предугадывать, каким будет состояние системы в следующий момент времени. Именно это позволяет фильтру так эффективно устранять шум и оценивать параметры, которые не наблюдаются (не измеряются) напрямую [5].
В данной работе представлена реализация фильтра Калмана для искаженных и пропадающих сигналов, получаемых с двух датчиков, в среде моделирования MATLAB.
Определим начальные условия. Сначала нужно задать начальное состояние системы [5].
Состояние системы X. Примем за вектор состояния системы ноль. Если некоторые граничные условия уже известны, они могут быть переданы в фильтр
Определим временной интервал, на котором получаемый сигнал подается на фильтр, и шаг, с которым будет производиться цикл итераций.
Примем за идеальный (непрерывный и не искаженный шумами) сигнал — синусоиду.
Матрица системы A, элементы которой определяются структурной схемой системы и значениями ее параметров, характеризует динамические свойства системы, ее свободное движение. Динамическая матрица участвует в определении уравнений для прогнозирования [7].
Управляющая матрица B. Внешние переменные управления возможны через матрицу управления. Необходимо указать, как измеряемый сигнал соотносится с вектором состояния (через управляющую матрицу):
Для настройки фильтра нам потребуется заполнить несколько ковариационных матриц: P, Q и R.