vs_lab2x

advertisement
Нижегородский государственный технический университет
им. Р. Е. Алексеева
Кафедра «Вычислительные системы и технологии»
Вычислительные системы
Лабораторная работа №2
Настройка дискретного прогнозирующего фильтра по алгоритму LMS
Выполнил студент группы М14-ИВТ-3:
Сидоренко О.О.
Проверил:
Саладаев Е. Н.
г. Нижний Новгород
2014
Задание.
Вариант №13
Количество гармоник в прогнозируемом процессе (наблюдаемом сигнале) m = 5.
Частота первой гармоники f1 = 5 кГц.
Амплитудный спектр наблюдаемого сигнала Um(i), i=1,2,…….m.
i
Um(i)
1
1
2
0,8
3
0,5
4
0,3
5
0,1
Среднеквадратичное значение помехи SQE = 0,01.
Длительность интервала (количество отсчетов сигнала) настройки М = 1000.
Частота дискретизации прогнозируемого процесса Fd = 500 кГц.
Время (интервал) прогнозирования Т = 1.
Длительность интервала проверки качества прогнозирования L = 1000.
1. Формирование прогнозируемого процесса.
Формируем информативный сигнал X(t) по заданным выше параметрам.
Помимо этого необходимо вычислить амплитуды гармоник сигнала и их фаз. Все
пять гармоник сформированы случайным образом при использовании
амплитудного спектра.
Код вычисления амплитуды и фазы:
Модель информативного сигнала при формировании прогнозируемого
процесса представим в виде:
m
S (t )   A(i ) * Cos[2f it  faz(i )]
i 1
где: A(i) – амплитуда i-ой гармоники, faz(i) – фаза i-ой гармоники, а fi- частота iой гармоники.
Вычислим массив отсчетов информативного сигнала S(t) следующим образом:
2
Массив отсчетов наблюдаемого процесса вычисляется по формуле X(k) =
S(k) + E(k), где E(k) – случайная величина с мат.ожиданием равным нулю и
дисперсией DE = SQE^2.
Вычислим этот массив отсчетов:
Выведем на графике получившиеся сигналы:
Здесь среднеквадратичная помеха заметно мала, поэтому зашумленный сигнал
практически не отличается от истинного.
3
2. Реализация алгоритма прогнозирования.
Необходимо задать два вектора размерностью N+1, где N – порядок фильтра.
W 0 
 W 1 
 – вектор цифрового фильтра, где на начальном этапе все значения
W 




W N 
равны 0.
Затем нужно организовать цикл от N до Km, в котором будут производиться
следующие вычисления..
Вычислим выходной сигнал фильтра:


Y k   U T k  * W , где U(k) – вектор сигнала размерности N+1и представляется как
 X k 

 X k  1 





U k   

 X k  j  




 X k  N 
Таким образом, выходной сигнал фильтра можно записать как
N
Y k    W  j * X k  j 
j 0
Далее необходимо подсчитать ошибку по формуле ek   X k   Y k  .
И в конце
цикла пересчитать коэффициенты W фильтра по формуле:

W  W   * ek *U k 
W i   W i    * ek * X k  i 
В методе LMS прогнозирование и настройка вектора W производятся
одновременно в каждый момент дискретного времени k. Параметр настройки μ
подбирается экспериментально при моделировании прогнозирующего фильтра
LMS. При большом значении μ нарушается устойчивость настройки
(коэффициенты W устремляются в бесконечность). При малом значении μ падает
скорость настройки. Поэтому находится значение μ (порядка 0,01 – 0,04), при
котором сохраняется устойчивость и скорость настойки будет достаточно
большой. В данном случае использовался параметр настройки со значением 0,03.
Так же необходимо предварительно задать Km – время моделирования и N –
порядок фильтра. В данном случае они заданы значениями 40000 и 15
соответсвенно.
Код функции, выполняющей эти действия представлен ниже:
4
Отобразим на графике первые 200 отсчетов прогнозируемого значения Y:
Заметно, что прогнозируемое значение расходится с идеальным, это говорит о
том, что происходит постепенная настройка фильтра и значения ещё не сошлись к
необходимому.
Отобразим последние 250 отсчетов значения Y:
5
Очевидно, что значения прогнозируемого фильтра сошлись к нужному
значению, и можно заметить совпадения прогнозируемого значения с идеальным
значением.
Настраиваемые значения вектора параметров фильтра W(0), W(l),
W(2),..,W(N+1) выводятся с некоторым коэффициентом децимации Kd в пределах
100 - 1000, т.е. из Kd значений вектора W(k) выводится одно. Было взято значение
Kd=100.
Настройка параметров фильтра LMS W(0), W(l), ... W(N). График
настройки:
Из графика видно, что каждые Kd отсчетов значения фильтра сходятся к
оптимальному значению. Проанализировав график, видим, что устойчивость
начинается чуть середины графика.
6
3. Оценка качества прогнозирования.
На основе полученных значений Y(k-T) и S(k) вычисляется ошибка
прогнозирования значения S(k):
dY(k) = Y(k-T) - S(k).
Отобразим первые 250 отсчетов ошибки прогнозирования:
Отобразим последние 250 отсчетов ошибки:
Видно, что по мере настройки фильтра, значение ошибки прогнозирования
уменьшаются и в конце концов сводится к значению в области [-0,04;0,04]
После расчёта ошибки прогнозирования, необходимо определить значение
текущей оценки среднеквадратичной погрешности на интервале Kd по формуле:
1 Kd 1
dY k  i 2
SQdYKd k  

Kd i 0
Отобразим график для значений оценки:
Видно, что среднеквадратичная оценка ошибки сводится к значению, близкому
к 0.02.
7
4. Вывод.
Достоинством алгоритма LMS для настройки дискретного прогнозирующего
фильтра является простота реализации и относительно не высокая трудоёмкость.
Недостатком алгоритма является большое время настройки фильтра.
8
Download