Цифровой фильтр для нестационарных сигналов
DIGITAL FILTER FOR NON-STATIONARY SIGNALS

Изобретение относится к области вычислительной техники и может быть использовано для цифровой обработки дискретных сигналов.
Известен адаптивный фильтр для оценивания нестационарных процессов (патент на изобретение 2110883, дата публикации 10.05.1998 г.), в котором для повышения точности и устойчивости фильтрации нестационарных процессов в структуру общеизвестного фильтра Калмана введены дополнительные элементы и связи, реализующие оптимальную коррекцию фильтра по среднеквадратическому критерию Красовского и включающий фильтр коррекции - фильтр оценивания «невязки», которая используется для настройки основного фильтра и фильтра коррекции с применением алгоритма нетерминального управления.
Недостатком такого фильтра является предположение, что в оцениваемых процессах присутствует влияние гауссового «белого» шума на их состояние, в то время как часто шум имеет более сложную структуру. Для применения фильтров Калмана [1] необходимо достаточно полное описание модели процесса/системы. Данное требование является недостатком фильтров, применяемых для работы в недетерминированных условиях. Для устранения этого недостатка требуется компенсация ошибки работы фильтров Калмана, вызванной влиянием систематической ошибки измерений и/или «цветного» шума на состояние оцениваемого процесса/оцениваемой системы и влиянием разного рода нелинейностей, не учтенных в модели процесса/системы.
Задача изобретения: усовершенствование фильтра Калмана с целью повышения качества оценивания нестационарных процессов/систем и обеспечение устойчивой работы фильтра в широком диапазоне условий изменения его входного сигнала для расширения области применения путем компенсации ошибки работы данного фильтра.
Задача решается тем, расширенный фильтр Калмана дополняется адаптивным цифровым фильтром с алгоритмом адаптации NLMS (нормализованных наименьших средних квадратов - англ. normalized least mean squares) [2], как эффективно действующим в условиях нестационарного входного сигнала и обладающим оптимальной вычислительной сложностью, и блоком вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, на вход которого поступают вектор априорной оценки состояния процесса/системы и вектор апостериорной оценки состояния процесса/системы, являющиеся выходными данными расширенного фильтра Калмана, причем выходом блока вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы является вектор разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, используемый в ходе компенсации ошибки расширенного фильтра Калмана, при этом в состав адаптивного цифрового фильтра вводится блок формирователя общей ошибки, позволяющий учитывать в алгоритме адаптации NLMS адаптивного цифрового фильтра не только текущую ошибку выхода адаптивного цифрового фильтра, но и текущую разность значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, полученных с помощью расширенного фильтра Калмана, а также предыдущую ошибку выхода адаптивного цифрового фильтра и предыдущую разность значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы с целью компенсации ошибки работы расширенного фильтра Калмана (фиг. 1, фиг. 2).
Расширенный фильтр Калмана, дополненный блоком вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, а также дополненный адаптивным цифровым фильтром, обладающим блоком адаптации, реализующим NLMS алгоритм адаптации, с введенными в данный адаптивный цифровой фильтр блоком формирователя общей ошибки для формирования вектора общей ошибки цифрового фильтра для нестационарных сигналов, блоком единичной задержки вектора ошибки выхода адаптивного цифрового фильтра для хранения предыдущей ошибки выхода адаптивного цифрового фильтра, и блоком единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы для хранения предыдущей разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, является цифровым фильтром для нестационарных сигналов.
Техническим результатом изобретения является то, что цифровой фильтр для нестационарных сигналов позволяет использовать нелинейную модель процесса/системы и компенсировать ошибку работы расширенного фильтра Калмана, входящего в состав цифрового фильтра для нестационарных сигналов, используя блок вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, на вход которого поступают вектор априорной оценки состояния процесса/системы и вектор апостериорной оценки состояния процесса/системы, являющиеся выходными данными расширенного фильтра Калмана, при этом данный блок входит в состав цифрового фильтра для нестационарных сигналов, причем выходом блока вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы является вектор разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, используемый в ходе компенсации ошибки расширенного фильтра Калмана, причем для компенсации ошибки расширенного фильтра Калмана используется адаптивный цифровой фильтр, входящий в состав цифрового фильтра для нестационарных сигналов, с введенными в данный адаптивный цифровой фильтр блоком формирователя общей ошибки для формирования вектора общей ошибки цифрового фильтра для нестационарных сигналов, блоком единичной задержки вектора ошибки выхода адаптивного цифрового фильтра для хранения предыдущей ошибки выхода адаптивного цифрового фильтра, и блоком единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы для хранения предыдущей разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, при этом результатом работы блока формирователя общей ошибки является вектор общей ошибки цифрового фильтра для нестационарных сигналов, при формировании которого учитываются: текущий вектор ошибки выхода адаптивного цифрового фильтра, текущий вектор разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, полученных с помощью расширенного фильтра Калмана, предыдущий вектор ошибки выхода адаптивного цифрового фильтра, предыдущий вектор разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, полученных с помощью расширенного фильтра Калмана, причем вектор общей ошибки цифрового фильтра для нестационарных сигналов поступает в блок адаптации, реализующего NLMS алгоритм адаптации в адаптивном цифровом фильтре, что повышает точность фильтрации нестационарных процессов, повышает скорость адаптации к входному сигналу у цифрового фильтра для нестационарных сигналов и обеспечивает устойчивую работу цифрового фильтра для нестационарных сигналов в широком диапазоне условий изменения входного сигнала для расширения области применения.
На фиг. 1 обозначены составные части цифрового фильтра для нестационарных сигналов:
1 - расширенный фильтр Калмана,
2 - адаптивный цифровой фильтр,
3 - блок вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы.
На фиг. 2 обозначены составные части адаптивного цифрового фильтра 2, находящегося в составе цифрового фильтра для нестационарных сигналов:
2-1 - блок буферной памяти,
2-2 - блок цифрового фильтра,
2-3 - блок вычисления ошибки выхода адаптивного цифрового фильтра,
2-4 - блок формирователя общей ошибки,
2-5 - блок адаптации, реализующий NLMS алгоритм адаптации,
2-6 - блок единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы,
2-7 - блок единичной задержки вектора ошибки выхода адаптивного цифрового фильтра.
Расширенный фильтр Калмана (РФК) 1 (фиг. 1) является субоптимальным алгоритмом фильтрации, применяемым при работе с нелинейными системами [1]. Отличие данного фильтра от фильтра Калмана состоит в возможности принятия нелинейной модели (например, модели движения цели, модели измерений) процесса/системы. Алгоритм РФК предполагает линеаризацию нелинейных функций в уравнениях состояния и наблюдений с последующим применением линейного фильтра Калмана.
Решением задачи компенсации ошибки работы РФК является использование адаптивного цифрового фильтра 2 (фиг. 1) совместно с РФК. Адаптивный цифровой фильтр (АЦФ) - самонастраивающийся фильтр, итеративно изменяющий свои переменные параметры (весовые коэффициенты) для достижения оптимального желаемого значения выходных данных [2]. Задача АЦФ - минимизировать разность (ошибку) между желаемыми выходными данными и фактическими выходными данными. АЦФ применяется в задачах, где спектры полезного сигнала и шума частично перекрываются. АЦФ также используется, когда полоса шумовых частот неизвестна или переменна.
Используемым в АЦФ 2 (фиг. 1) алгоритмом адаптации является алгоритм NLMS [3-5].
Работа алгоритма РФК 1 (фиг. 1) выполняется циклично, причем каждый цикл РФК состоит из 2 стадий: стадия 1 - «прогнозирование» и стадия 2 - «корректировка». Внутри цикла РФК стадии идут последовательно: сначала идет стадия 1 - «прогнозирование», затем следует стадия 2 - «корректировка». В стадии «прогнозирование» выполняется прогнозирование состояния некоторого процесса/некоторой системы в следующий момент времени. В стадии «корректировка» происходит получение новой информации (например, данных от датчика), далее с учетом новой информации выполняется коррекция спрогнозированных значений состояния некоторого процесса/некоторой системы.
Для РФК уравнение состояния и уравнение наблюдений некоторого процесса/некоторой системы имеют вид выражений (1) и (2) соответственно:
где:
k - некоторый текущий момент времени;
(k-1) - предыдущий момент времени;
х(k) - вектор состояния процесса/системы в некоторый текущий момент времени k, размерность вектора n;
х(k-1) - вектор состояния процесса/системы в момент времени (k-1), размерность вектора n;
z(k) - вектор измерений (наблюдений) процесса/системы в некоторый текущий момент времени k, размерность вектора m;
u(k-1) - вектор управляющих воздействий в момент времени (k-1), размерность вектора е;
w(k) - вектор шума процесса (случайного процесса) в некоторый текущий момент времени k, размерность вектора n;
v(k) - вектор шума измерения (наблюдаемого «белого» гауссового шума) в некоторый текущий момент времени k, размерность вектора m;
f(•) - нелинейная гладкая векторная функция процесса (изменения состояния), размерность функции n;
h(•) - нелинейная гладкая векторная функция наблюдений, размерность функции m.
Вектор шума процесса w и вектор шума измерения v независимы друг от друга.
1
n
Вектор х(k) состояния процесса/системы состоит из элементов х…x, каждый из которых является переменной, частично характеризующей состояние процесса/системы в некоторый момент времени k:
При этом весь вектор х(k) полностью характеризует состояние процесса/системы в момент времени k.
1
m
Вектор z измерений (наблюдений) процесса/системы имеет размерность m и состоит из элементов z…z, которые являются входными данными или входными сигналами (например, сигналами, полученными от датчиков физических величин) РФК 1 (фиг. 1) и цифрового фильтра для нестационарных сигналов. Вектор z измерений (наблюдений) процесса/системы в некоторый момент времени k имеет вид:
В уравнении состояния (1) и уравнении наблюдений (2) функции f(•) и h(•) - некоторые нелинейные векторные функции, дифференцируемые по вектору состояния х, такие, что:
где:
fx
J(k) - квадратная матрица Якоби n×n (n - размерность вектора состояния х) для уравнения состояния в момент времени (k-1) (в предыдущем состоянии системы);
hx
J(k) - прямоугольная матрица Якоби m×n (m - размерность вектора наблюдений z, n - размерность вектора состояния х) для уравнения наблюдений в момент времени k (в спрогнозированном состоянии системы);
- вектор априорной (прогнозируемой) оценки состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность вектора n;
- вектор оценки состояния процесса/системы в момент времени (k-1) с учетом наблюдений по момент времени (k-1) включительно, размерность вектора n;
u(k-1) - вектор управляющих воздействий в момент времени (k-1) размерность вектора е.
Нелинейная функция процесса (изменения состояния) f(•) используется для прогнозирования состояния (оценки состояния) процесса/системы исходя из предыдущего состояния (оценки состояния).
Нелинейная функция наблюдений h(•) применяется для прогнозирования наблюдений из спрогнозированного состояния (оценки состояния) процесса/системы.
fx
hx
Для получения частных производных первого порядка векторных функций f(•) и h(•) размерностями n и m соответственно (с целью линеаризации нелинейных векторных функций f(•) и h(•) и формирования матриц Якоби J(k) и J(k) (3)-(4)) необходимо, чтобы элементы этих функций являлись функциями таких аргументов, что:
где:
1
n
x, …, x - элементы вектора х состояния процесса/системы;
1
n
1
m
ƒ(•), …, ƒ(•) и h(•), …, h(•) - некоторые нелинейные функции одного или нескольких аргументов, n≤m.
Для алгоритма РФК 1 (фиг. 1) стадия «прогнозирование» описывается выражениями (5) и (6):
где:
- вектор априорной (прогнозируемой) оценки состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность вектора n;
- вектор оценки состояния процесса/системы в момент времени (k-1) с учетом наблюдений по момент времени (k-1) включительно, размерность вектора n;
Р(k|k-1) - ковариационная матрица априорной (прогнозируемой) ошибки (ошибки оценки) состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность матрицы n×n;
Р(k-1|k-1) - ковариационная матрица ошибки (ошибки оценки) состояния процесса/системы в момент времени (k-1) с учетом оценки состояния по момент времени (k-1) включительно, размерность матрицы n×n;
Q(k-1) - матрица ковариаций шума процесса в момент времени (k-1), размерность матрицы n×n;
f(•) - нелинейная гладкая векторная функция процесса (изменения состояния), размерность функции n;
fx
fx
T
J(k) и J(k) - исходная и транспонированная квадратные матрицы Якоби векторной функции f(•) соответственно в момент времени k.
Стадия «корректировка» РФК 1 (фиг. 1) описывается выражениями (7) и (8):
где:
- вектор апостериорной (обновленной) оценки состояния процесса/системы в момент времени k - результат работы РФК, размерность вектора n;
- вектор априорной (прогнозируемой) оценки состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность вектора n;
Р(k|k) - матрица апостериорной (обновленной) ошибки (ошибки оценки) состояния процесса/системы в момент времени k, размерность матрицы n×n;
Р(k|k-1) - ковариационная матрица априорной (прогнозируемой) ошибки (ошибки оценки) состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность матрицы n×n;
G(k) - матрица коэффициентов усиления, оптимальных по Калману в момент времени k, размерность матрицы n×m;
hx
J(k) - прямоугольная матрица Якоби векторной функции h(•) в момент времени k, размерность матрицы m×n;
z(k) - вектор измерений (наблюдений) процесса/системы в некоторый текущий момент времени k, размерность вектора m;
h(•) - нелинейная гладкая векторная функция наблюдений, размерность функции m;
1 - единичная матрица размерностью n×n.
Матрица G(k) коэффициентов усиления и матрица S(k) ковариаций отклонений в момент времени k находятся следующим образом:
где:
hx
hx
T
J(k) и J(k) - исходная и транспонированная прямоугольные матрицы Якоби векторной функции h(•) соответственно в момент времени k;
R(k) - матрица ковариаций ошибок измерения в момент времени k, размерность матрицы m×m;
Р(k|k-1) - ковариационная матрица априорной (прогнозируемой) ошибки (ошибки оценки) состояния процесса/системы в момент времени k с учетом оценки состояния по момент времени (k-1) включительно, размерность матрицы n×n.
В АЦФ 2 (фиг. 1) [6-9] кадры входного сигнала х(k) и весовые коэффициенты w(k) некоторого момента времени k являются матрицами размерностью n×N (n строк и N столбцов):
где:
k - некоторый текущий момент времени;
(k-1) - предыдущий момент времени;
(k-N+1) - самый ранний момент времени;
1,1
n,N
1,1
n,N
x(k), …, x(k-N+1) и w(k), …, w(k) - элементы матриц х(k) и w(k) соответственно.
j,i
Каждый элемент x(k) некоторой j-ой строки матрицы х(k) может содержать значение только одного элемента  вектора  оценки состояния, выполненной РФК 1 (фиг. 1) в соответствующий момент времени диапазона [(k-N+1), k], j∈[1, n]. Таким образом, каждая j-ая строка матрицы х(k) содержит оценки некоторого элемента вектора состояния  выполненные в разные моменты времени.
diff
Блок вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 3 (фиг. 1) вычисляет вектор разности X(k) значений априорной оценки  состояния процесса/системы и апостериорной оценки  состояния процесса/системы, являющихся выходами РФК 1 (фиг. 1):
где:
diff
j - индекс элементов векторов X(k),  и  j∈[1, n].
Входными данными АЦФ 2 (фиг. 1) в составе цифрового фильтра для нестационарных сигналов являются:
- вектор  значений апостериорной (обновленной) оценки состояния процесса/системы, подлежащих коррекции - компенсации ошибки, вызванной в ходе работы РФК (вектор  - результат работы РФК),
diff
- вектор разности X(k) значений априорной оценки  состояния процесса/системы и апостериорной оценки  состояния процесса/системы, являющийся выходом блока вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 3 (фиг. 1).
out
Выходными данными АЦФ 2 (фиг. 1) и цифрового фильтра для нестационарных сигналов является вектор X(k) скорректированных значений оценки состояния процесса/системы.
diff
out
Размерность n векторов  X(k), X(k) определяется задачей оценивания состояния процесса/системы.
Цифровой фильтр для нестационарных сигналов работает следующим образом.
Цифровой фильтр для нестационарных сигналов работает циклично. За один цикл работы цифрового фильтра для нестационарных сигналов выполняются один цикл работы РФК 1 и один цикл работы АЦФ 2 (фиг. 1). Текущий цикл работы цифрового фильтра для нестационарных сигналов выполняется в текущий момент времени k, предыдущий цикл работы фильтра выполнялся в момент времени (k-1).
Каждый цикл работы РФК 1 (фиг. 1) в составе цифрового фильтра для нестационарных сигналов состоит из последовательного выполнения операций:
hx
1) формирование функции h(•) и матрицы J(k),
fx
2) формирование функции f(•) и матрицы J(k),
3) вычисление матрицы Р(k|k-1) согласно выражению (6),
4) вычисление матрицы G(k) согласно выражению (9),
5) формирование вектора z(k),
6) вычисление вектора  согласно выражению (7),
7) вычисление матрицы Р(k|k) согласно выражению (8).
1
N
АЦФ 2 (фиг. 1) в составе цифрового фильтра для нестационарных сигналов имеет блок буферной памяти 2-1 (фиг. 2), предназначенный для накопления кадров апостериорной оценки состояния процесса/системы, каждый из которых является вектором  апостериорной оценки состояния процесса/системы, поступившим с выхода РФК 1 на вход АЦФ 2 (фиг. 1). В процессе работы АЦФ 2 блок буферной памяти 2-1 (фиг. 2) хранит кадры апостериорной оценки состояния процесса/системы для последующих фильтрации и последовательной настройки весовых коэффициентов АЦФ. Блок буферной памяти 2-1 (фиг. 2) является матрицей х(k) (11). Каждый столбец данной матрицы является одной ячейкой буферной памяти и имеет структуру вектора  апостериорной оценки состояния процесса/системы. Одна ячейка памяти может хранить один вектор  апостериорной оценки состояния процесса/системы, т.е. один кадр  сформированный РФК 1 в момент времени t, t∈[(k-N+1), k]. Новый кадр входного сигнала  помещается в первый столбец - первую ячейку буферной памяти, причем все хранившиеся в памяти предыдущие кадры смещаются на одну ячейку в направлении последней ячейки памяти, при этом удаляется из памяти самый «старый» кадр, располагавшийся в последней ячейке памяти. Блок буферной памяти 2-1 (фиг. 2) организован по принципу FIFO (англ. first in, first out - «первым пришел - первым ушел») [10]. Блок буферной памяти 2-1 (фиг. 2) состоит из N ячеек: х(k), …, x(k-N+1) (фиг. 3). Блок буферной памяти 2-1 (фиг. 2) должен содержать по меньшей мере 2 ячейки памяти.
Кадры апостериорной оценки состояния процесса/системы с выхода блока буферной памяти 2-1 поступают на вход блока цифрового фильтра 2-2 и на вход блока адаптации, реализующего NLMS алгоритм адаптации 2-5 (фиг. 2).
На вход блока цифрового фильтра 2-2 (фиг. 2) поступают:
1) с выхода блока буферной памяти 2-1 поступают кадры апостериорной оценки состояния процесса/системы, являющиеся матрицей х(k),
2) с выхода блока адаптации, реализующего NLMS алгоритм адаптации 2-5 поступают весовые коэффициенты, являющиеся матрицей w(k-1) и полученные на предыдущем цикле работы цифрового фильтра для нестационарных сигналов (фиг. 2).
out
Выходом блока цифрового фильтра 2-2 (фиг. 2) является вектор X(k) скорректированных значений оценки состояния процесса/системы, который поступает на выход цифрового фильтра для нестационарных сигналов.
out
Блок цифрового фильтра 2-2 (фиг. 2) вычисляет элементы вектора X(k) скорректированных значений оценки состояния процесса/системы следующим образом:
где:
k - некоторый текущий момент времени;
(k-1) - предыдущий момент времени;
j,i
j,i
x, w - элементы матриц x и w (11) соответственно;
out
j - индекс элементов вектора X и матриц х и w, j∈[1, n];
i - индекс элементов матриц x и w, i∈[1, N].
На вход блока вычисления ошибки выхода адаптивного цифрового фильтра 2-3 (фиг. 2) поступают:
1) с выхода РФК 1 (фиг. 1) поступает вектор  апостериорной оценки состояния процесса/системы,
out
2) с выхода блока цифрового фильтра 2-2 (фиг. 2) поступает вектор X(k) скорректированных значений оценки состояния процесса/системы.
X
Выходом блока вычисления ошибки выхода адаптивного цифрового фильтра 2-3 является вектор e(k) ошибки выхода адаптивного цифрового фильтра.
X
Блок вычисления ошибки выхода адаптивного цифрового фильтра 2-3 (фиг. 2) вычисляет ошибку выхода АЦФ e(k) в момент времени k, определяемой выражением:
где:
X
e(k) - вектор ошибки выхода АЦФ в момент времени k, размерность вектора n;
- вектор опорного (требуемого) входного сигнала в момент времени k, является вектором апостериорной (обновленной) оценки состояния процесса/системы в момент времени k, размерность вектора n;
out
X(k) - вектор скорректированных значений оценки состояния процесса/системы в момент времени k, размерность вектора n.
Блок единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 и блок единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 (фиг. 2) выполняют функцию ячеек памяти.
X
X
На вход блока единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 (фиг. 2) с выхода блока вычисления ошибки выхода адаптивного цифрового фильтра 2-3 поступает текущий вектор e(k) ошибки выхода адаптивного цифрового фильтра. Выходом блока единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 является предыдущий вектор e(k-1) ошибки выхода адаптивного цифрового фильтра.
X
X
В блоке единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 хранится предыдущий вектор e(k-1) ошибки выхода адаптивного цифрового фильтра, полученный на предыдущем цикле работы цифрового фильтра для нестационарных сигналов, причем данный вектор из блока единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 поступает на вход блока формирователя общей ошибки 2-4, а затем заменяется в блоке единичной задержки вектора ошибки выхода адаптивного цифрового фильтра текущим вектором e(k) ошибки выхода адаптивного цифрового фильтра.
diff
diff
На вход блока единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 (фиг. 2) с выхода блока вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 3 (фиг. 1) поступает текущий вектор X(k) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы. Выходом блока единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 является предыдущий вектор X(k-1) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы.
diff
diff
В блоке единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 хранится предыдущий вектор X(k-1) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, полученный на предыдущем цикле работы цифрового фильтра для нестационарных сигналов, причем данный вектор из блока единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 поступает на вход блока формирователя общей ошибки 2-4, а затем заменяется в блоке единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 текущим вектором X(k) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы.
На вход блока формирователя общей ошибки 2-4 (фиг. 2) поступают:
diff
1) с выхода блока вычисления разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 3 (фиг. 1) поступает текущий вектор X(k) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы,
diff
2) с выхода блока единичной задержки вектора разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы 2-6 (фиг. 2) поступает предыдущий вектор X(k-1) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы,
X
3) с выхода блока вычисления ошибки выхода адаптивного цифрового фильтра 2-3 (фиг. 2) поступает текущий вектор e(k) ошибки выхода адаптивного цифрового фильтра,
X
4) с выхода блока единичной задержки вектора ошибки выхода адаптивного цифрового фильтра 2-7 (фиг. 2) поступает предыдущий вектор e(k-1) ошибки выхода адаптивного цифрового фильтра.
Выходом блока формирователя общей ошибки 2-4 (фиг. 2) является вектор е(k) общей ошибки цифрового фильтра для нестационарных сигналов.
X
diff
X
diff
X
diff
Блок формирователя общей ошибки 2-4 (фиг. 2) вычисляет вектор е(k) общей ошибки цифрового фильтра для нестационарных сигналов, используя: текущий вектор e(k) ошибки выхода АЦФ, текущий вектор X(k) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы, предыдущий вектор e(k-1) ошибки выхода АЦФ, предыдущий вектор X(k-1) разности значений априорной оценки состояния процесса/системы и апостериорной оценки состояния процесса/системы (фиг. 2). Векторы е, e и X имеют размерность n.
Общая ошибка е(k) цифрового фильтра для нестационарных сигналов вычисляется, используя выражение:
где:
j
e(k) - j-ый элемент вектора е(k) общей ошибки цифрового фильтра для нестационарных сигналов, j∈[1, n];
X
j
X
e(k) - j-ый элемент вектора e(k);
X
j
X
e(k-1) - j-ый элемент вектора e(k-1);
diff
j
diff
X(k) - j-ый элемент вектора X(k);
diff
j
diff
X(k-1) - j-ый элемент вектора X(k-1);
j
diff
j
diff
j
X
j
ƒ - коэффициент, позволяющий масштабировать порядок значений элементов векторов X(k-1) и X(k) в соответствии с порядком значений элементов вектора e(k), j∈[1, n]:
1) при  больше, чем 0
2) при  равное 0
где:
операция  - возвращает абсолютную величину аргумента;
операция  - округление аргумента до ближайшего целого числа в меньшую сторону;
sign(x) - функция определения знака аргумента х:
diff
j
diff
j
diff
j
Значение X(k) должно быть ненулевым. Если X(k) равно 0, то переменной X(k) присваивается некоторое положительное, крайне малое число, служащее для исключения ситуаций деления на нуль.
На вход блока адаптации, реализующего NLMS алгоритм адаптации 2-5, (фиг. 2) поступают:
1) с выхода блока буферной памяти 2-1 (фиг. 2) поступают кадры апостериорной оценки состояния процесса/системы, являющиеся матрицей х(k),
2) с выхода блока формирователя общей ошибки 2-4 (фиг. 2) поступает вектор е(k) общей ошибки цифрового фильтра для нестационарных сигналов.
Выходом блока адаптации, реализующего NLMS алгоритм адаптации 2-5, являются весовые коэффициенты w.
Блок адаптации, реализующий NLMS алгоритм адаптации 2-5 (фиг. 2), вычисляет весовые коэффициенты w следующим образом:
где:
k - некоторый текущий момент времени;
(k-1) - предыдущий момент времени;
x - матрица кадров апостериорной оценки состояния процесса/системы (11);
w - матрица весовых коэффициентов (11);
е(k) - вектор общей ошибки цифрового фильтра для нестационарных сигналов (15) в момент времени k, размерность вектора n;
j - индекс элементов вектора е и матриц х и w, j∈[1, n];
i - индекс элементов матриц х и w, i∈[1, N];
μ - шаг сходимости, определяющий устойчивость и скорость сходимости алгоритма адаптации, μ больше 0; чем меньше μ, тем выше устойчивость и меньше скорость сходимости;
ε - некоторое положительное, крайне малое число, служащее для исключения ситуаций деления на нуль.
Эффективность предлагаемого цифрового фильтра для нестационарных сигналов подтверждается примером практической реализацией в виде программ для микроконтроллера TMS320F28379D компании Texas Instruments, написанных на языке программирования С, при этом:
- используются два аппаратных ядра микроконтроллера, работающие на частоте 200 МГц каждый;
- первое аппаратное ядро микроконтроллера используется программой, реализующей работу расширенного фильтра Калмана с размерностями векторов z и  равными 7;
diff
out
- второе аппаратное ядро микроконтроллера используется программой, реализующей работу адаптивного цифрового фильтра с размерностями векторов  X(k), X равными 7, при этом размер блока буферной памяти адаптивного цифрового фильтра равен 32 кадрам апостериорной оценки состояния процесса/системы;
- формат хранения данных float (число с плавающей запятой, длина числа - 32 бита).
Сочетание в цифровом фильтре для нестационарных сигналов расширенного фильтра Калмана и адаптивного цифрового фильтра делает возможным компенсацию ошибки работы расширенного фильтра Калмана с целью повышения точности оценивания нестационарных процессов. Расширенный фильтр Калмана, входящий в состав цифрового фильтра для нестационарных сигналов, позволяет использовать нелинейную модель процесса/системы, что является важным для цифрового фильтра для нестационарных сигналов при работе с нелинейными системами.
Алгоритм цифрового фильтра для нестационарных сигналов эффективно действует в условиях нестационарного процесса и обладает большей скоростью адаптации к входному сигналу на 5-20%, чем величина скорости адаптации к аналогичному входному сигналу при последовательной фильтрации входного сигнала сначала с помощью расширенного фильтра Калмана, а затем с помощью адаптивного цифрового фильтра с алгоритмом адаптации NLMS, аналогичного адаптивному цифровому фильтру, используемому в составе цифрового фильтра для нестационарных сигналов, и обладающему аналогичным количеством ячеек блока буферной памяти.
Таким образом, предложенные введения дополнительных блоков и новой схемы соединений в цифровом фильтре для нестационарных сигналов позволили повысить качество оценивания нестационарных процессов/систем и обеспечили устойчивую работу фильтра в широком диапазоне условий изменения его входного сигнала.
Литература
1. Bar-Shalom, Y., Li, X.R., Kirubarajan, Т. Estimation with Applications to Tracking and Navigation: Theory Algorithms and Software / John Wiley & Sons, 2001. - 584 p.
2. Haykin, S. Adaptive Filter Theory: 3rd edition / Prentice-Hall, 1996. - 989 p.
3. B. Widrow, M.E. Hoff. "Adaptive switching circuits" / Proc. IRE WESCON Conf. Rec., part 4, 1960. - p. 96-104.
4. Бычков, Б.И. Моделирование помехозащищенных речевых каналов для технических систем управления / Б.И. Бычков, А.С. Романовский, В.Я. Хартов // Радиооптика. 2016. - №5. - с. 11-25.
5. Dhiman, J. Comparison between Adaptive filter Algorithms (LMS, NLMS and RLS) / J. Dhiman, S. Ahmad, K. Gulia // International Journal of Science, Engineering and Technology Research, Vol. 2, Issue 5, 2013. - p. 1100-1103.
6. Takekawa, H. An efficient and effective variable step size NLMS algorithm / H. Takekawa, T. Shimamura, S. Jimaa // Conference Record of 42nd Asilomar Conference on Signals, Systems and Computers, USA, 2008. - p. 1640-1643.
7. Kumudini, S. Normalized Least Mean Square (NLMS) Adaptive Filter for Noise Cancellation / S. Kumudini, R. Sinha // International Journal of Progresses in Engineering, Management, Science and Humanities, 2015. - Vol. 1, Issue 1. - p. 49-53.
8. Ghauri, S.A. System Identification using LMS, NLMS and RLS / S.A. Ghauri, M.F. Sohail // IEEE Student Conference on Research and Development (SCOReD), 2013. - p. 65-69.
9. Ушенина, И.В. Реализация алгоритмов цифровой адаптивной фильтрации на ПЛИС // XXI век: итоги прошлого и проблемы настоящего плюс. - Пенза: Пензенская государственная технологическая академия, 2012. - №5. - с. 134-138.
10. Kruse, R.L. Data structures and program design in С++ / Robert L. Kruse, Alexander J. Ryba / Prentice-Hall, 1999. - 717 p.