Laboratornaya_rabota_№2_2

реклама
Дискретный прогнозирующий фильтр
Лабораторная работа №2
Настройка дискретного прогнозирующего фильтра по алгоритму LMS
Порядок выполнения работы
1.Формирование прогнозируемого процесса.
При формировании прогнозируемого процесса модель информативного сигнала представим в
виде:
m
S (t )   C (i ) *  i (t )
i 1
(1)
где { i (t )} - набор базисных функций, m – размерность пространства сигналов..
При исследовании алгоритмов прогнозирования будем пользоваться методами спектрального
анализа. В этом случае в качестве базисных функций используются гармонические функции вида:
i (t )  Cos[2fit  phi ] , где f i - частота
i –ой гармоники сигнала,
гармоники. Тогда информативный сигнал представляется в виде:
phi - фаза i –ой
m
S (t )   A(i ) * Cos[2f 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[2f 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
Скачать