Дискретный прогнозирующий фильтр Лабораторная работа №2 Настройка дискретного прогнозирующего фильтра по алгоритму LMS Порядок выполнения работы 1.Формирование прогнозируемого процесса. При формировании прогнозируемого процесса модель информативного сигнала представим в виде: m S (t ) C (i ) * i (t ) i 1 (1) где { i (t )} - набор базисных функций, m – размерность пространства сигналов.. При исследовании алгоритмов прогнозирования будем пользоваться методами спектрального анализа. В этом случае в качестве базисных функций используются гармонические функции вида: i (t ) Cos[2fit phi ] , где f i - частота i –ой гармоники сигнала, гармоники. Тогда информативный сигнал представляется в виде: phi - фаза i –ой m S (t ) A(i ) * Cos[2f i t ph(i )] (2) i 1 где: A(i) – амплитуда i-ой гармоники, ph(i) – фаза i-ой гармоники. Наблюдаемый процесс Х(t) есть информативный сигнал, зашумленный аддитивным шумом (t): X(t)=S(t) + (t). (3) Амплитуды и фазы гармоник информативного сигнала являются случайными величинами. A(i ) [0,Um(i )] , ph(i ) [0,2 ] . (4) Um(i) – максимальное значение i-ой гармоники. Для формирования информативного сигнала задаются следующие параметры: Количество гармоник сигнала m, Частота первой гармоники f1, Амплитудный спектр сигнала Um(i), i=1,2,….m, Среднеквадратичное значение помехи SQE, Длительность интервала (количество отсчетов сигнала) моделирования МLk. Выбирается частота дискретизации Fd > 2*f1*m. Определяется период дискретизации Td = 1/Fd. Время прогнозирования Т Вычисляется реализация случайного информативного сигнала. Для этого вычисляются амплитуды гармоник случайной реализации сигнала A(i) = RN*Um(i) и фазы гармоник ph(i) = 6.28*RN, i =1,2,….m, где RN – случайное число с равномерным распределением в диапазоне [0,1]. Массив отсчетов информативного сигнала S(k) (k=1,2,….M) вычисляется по формуле m S (k ) A(i ) * Cos[2f i t k ph(i )] i 1 (5), где t k k * Td . Массив отсчетов наблюдаемого процесса вычисляется как X(k) = S(k) + E(k), где E(k) – случайная величина с математическим ожиданием равным нулю и дисперсией DE = SQE^2. 2.Обработка сигнала и настройка адаптивного прогнозирующего фильтра LMS. Вычисляются дисперсия информативного сигнала Ds, а также дисперсия Dx, среднеквадратичное значение SQX Dx сигнала X(k). Определяется отношение сигнал/шум SN=Ds/DE в наблюдаемом процессе Х. Реализуем прогнозирующий фильтр в виде цифрового фильтра (ЦФ) N Y (k ) W ( j ) * X (k j ) (1) j 0 где W(j) – коэффициенты ЦФ, k – номер отсчета дискретизированных сигналов. W W (0) W (1) (2) W (N ) Введем вектор сигнала X (k ) X (k 1) U (k ) X (k j ) (3) X (k N ) Выходной сигнал фильтра N Y (k ) W ( j ) * X (k j ) . j 0 где W(j) – коэффициенты фильтра АКФ, N+1 – размерность прогнозирующего фильтра, к – номер отсчета сигнала. В матричной форме можно записать T Y (k ) U (k ) * W (4) Считаем, что M{(k)}=0. Желаемый сигнал d(k) =S(k+T)=M(S(k+T) + (k+T)}=M{X(k+T}, где Т – время прогнозирования. Ошибка прогнозирования e( k ) d ( k ) Y ( k T ) S ( k ) U T ( k T ) * W X ( k ) Y ( k T ) M {e(k )} M {S (k ) Y (k T )} M { X (k ) Y (k T )} (5) Введем матрицу U наборов отсчетов помехи в памяти АКФ . U U (0), U (1), U (2),..........U ( Km 1) Один из наиболее распространенных адаптивных алгоритмов основан на поиске минимума целевой функции (1.9) методом наискорейшего спуска. При использовании данного способа оптимизации вектор коэффициентов фильтра w(k) должен рекурсивно обновляться следующим образом: W (k 1) w(k ) 2 grad ( J )(W (k )) W (k ) P RW (k ), где - положительный коэффициент, называемый размером шага. Показано, что алгоритм сходиться если 0 2 / max , где max - максимальное собственное число корреляционной матрицы R. Скорость сходимости при этом зависит от разброса собственных чисел корреляционной матрицы R – чем меньше отношение max/ min , тем скорее сходится итерационный процесс. Однако для расчета градиента необходимо знать значение матрицы R и вектора P. На практике могут быть доступны лишь оценки этих значений, получаемых по входным данным. Простейшими такими оценками являются мгновенные значения корреляционной матрицы и вектора взаимных корреляций, получаемые без какого-либо усреднения: T Rˆ (k ) U (k )U (k ), Pˆ (k ) d (k )U (k ) При использовании оценок формула принимает следующий вид : W (k 1) w(k ) d (k )U (k ) U (k )U T (k )W (k ) W (k ) U (k )(d (k ) U T (k )W (k )) Выражение, стоящее в скобках представляет собой разность между образцовым сигналом и выходным сигналом фильтра на k-м шаге, то есть ошибку фильтрации e(k). С учетом этого выражение для рекурсивного обновления коэффициентов фильтра оказывается очень простым: W (k 1) w(k ) e(k )U (k ) , e( k ) X ( k ) Y ( k T ) где Алгоритм адаптивной фильтрации, основанный на формуле (1.14), получил название LMS (Least Mean Square, метод наименьших квадратов). Можно получить ту же формулу и несколько иным образом: использовав вместо градиента статистически усредненного квадрата ошибки e 2 ( k ) градиент его мгновенного значения e 2 (k ) . данном случае является меньшей, чем при использовании истинных значений градиента. Эта граница примерно равна max 2 k 2 ( N 1) k2 k где k — собственные числа корреляционной матрицы , R а x2 — средний квадрат входного сигнала фильтра. Скорость адаптации, а также составляющая шума вектора весовых коэффициентов зависит от значения параметра μ. Чем меньше μ, тем ближе вектор коэффициентов фильтра приближается к оптимальному но и тем больше времени на это затрачивается. Следовательно размер шага должен находиться в следующих пределах: 1 / max 0 . В общем случае собственные числа корреляционной матрицы неизвестны. Но для вычисления длины шага можно заменить его верхней границей trace( R) ( p 1) E{| x(n) | 2 } Eˆ {| x(n) | 2 } 0 1 p | x(n k ) | 2 p 1 k 0 1 x ( n) H x ( n) Для прогнозирующего адаптивного фильтра LMS итерационный алгоритм настройки коэффициентов W представляется в виде: W j (k 1) W j (k ) * EY (k ) * X (k j ) , j 0, R , EY (k ) X (k ) Y (k T ) , N Y (k ) W ( j ) * X (k j ) , j 0 где Y(k - T) – оценка (прогноз) значения S(k), -EY(k) – зашумленная оценка погрешности прогнозирования значения S(k), произведенная в момент дискретного времени к-Т, т.е. Y(k-T). В методе LMS прогнозирование и настройка W производятся одновременно в каждый момент дискретного времени к. Параметр настройки μ подбирается экспериментально при моделировании прогнозирующего фильтра LMS. При большом значении μ нарушается устойчивость настройки ( коэффициенты W устремляются в бесконечность). При малом значении μ падает скорость настройки. Поэтому находится значение μ (порядка 0,01 – 0,04), при котором сохраняется устойчивость и скорость настойки будет достаточно большой. Время настройки фильтра LMS порядка нескольких сотен тысяч отсчетов сигнала и время моделирования Мк должно быть порядка Е5 – Е6 (100 000 – 1 000 000). Отсчеты сигналов S(k), E(k), X(k), Y(k), зашумленная оценка погрешности EY(k) и ошибка прогнозирования значения S(k) dY(k) = Y(k-T) – S(k) выводятся в начале моделирования (несколько сотен отсчетов) и в конце моделирования (тоже несколько сотен отсчетов). Настраиваемые значения вектора параметров фильтра W(0), W(1), W(2),……..W(R) выводятся с некоторым коэффициентом децимации Kd в пределах 100 – 1000, т.е. из Kd значений вектора W(k) выводится одно. При этом определяется и выводится значение текущей оценки SQdYKd(k) среднеквадратичной погрешности прогнозирования на текущем интервале Kd. SQdYKd (k ) 1 Kd Kd 1 (dY (k i)) 2 i 0 Результаты моделирования прогнозирующего фильтра LMS выводятся в виде таблиц и графигов. Пример. Сигнал S(k) и его прогнозируемое значение Y(k-T) 1,5 1 0,5 0 1 24 47 70 93 116 139 162 185 208 231 254 277 300 323 346 369 392 415 438 461 S(k) 484 Y(k-T) -0,5 -1 -1,5 -2 Настройка параметров фильтра LMS W(0), W(1), W(R) W(0) 1,6 W(1) W(2) 1,4 W(3) 1,2 W(4) W(5) 1 W(6) 0,8 W(7) W(8) 0,6 W(9) 0,4 W(10) W(11) 0,2 W(12) W(13) 0 -0,2 1 25 49 73 97 121 145 169 193 217 241 265 289 313 337 361 385 409 433 457 481 W(14) W(15) W(16) -0,4 W(17) W(18) Погрешность прогнозирования dY(k) в начале настройки фильтра dY1(k) 0,2 0,15 0,1 0,05 dY1(k) 0 -0,05 -0,1 -0,15 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 401 426 451 476 Погрешность прогнозирования dY(k) в конце настройки фильтра dY2(k) 0,01 0,005 0 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 401 426 451 476 dY2(k) -0,005 -0,01 -0,015 Значение текущей оценки SQdYKd(k) среднеквадратичной погрешности прогнозирования на текущем интервале Kd SQdYKd(k1) 0,0007 0,0006 0,0005 0,0004 SQdYKd(k1) 0,0003 0,0002 0,0001 0 1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419 441 463 485