Нижегородский государственный технический университет им. Р. Е. Алексеева Кафедра «Вычислительные системы и технологии» Вычислительные системы Лабораторная работа №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[2f 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 Далее необходимо подсчитать ошибку по формуле ek X k Y k . И в конце цикла пересчитать коэффициенты W фильтра по формуле: W W * ek *U k W i W i * ek * 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