Функции > Обработка сигналов > Анализ временного ряда > Пример. Методы линейного прогноза
Пример. Методы линейного прогноза
Используйте функции burg и yulew, чтобы создать коэффициенты для названной модели линейного прогноза. В этих функциях применяется метод Бёрга и алгоритм Юла - Уолкера соответственно. Описание этих алгоритмов и их математическое обоснование см. в книге Optimum Signal Processing (Оптимальная обработка сигналов), Sophocles J. Orfanidis, Macmillan (1989).
Прогноз Юла-Уолкера
1. Используйте функцию cos, чтобы определить косинусоидальный сигнал.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Постройте график сигнала.
Щелкните для копирования этого выражения
3. Используйте функцию rnd, чтобы добавить случайный шум к сигналу.
Щелкните для копирования этого выражения
4. Постройте график исходного и зашумленного сигналов.
Щелкните для копирования этого выражения
Из сигнала вычтено значение 0.2, чтобы центрировать случайный компонент вокруг нулевой амплитуды.
5. Сделайте короткую выборку из начальной части сигнала.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Установите порядок прогнозирования и используйте функцию yulew для вычисления коэффициентов.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Эти коэффициенты предназначены для полюсного фильтра, аппроксимирующего исходный сигнал. Как и ожидалось, фильтр имеет один большой полюс, представляющий косинус, и несколько полюсов поменьше, аппроксимирующих шум.
Порядок P определяет количество последовательных значений, используемых для прогнозирования следующего значения в ряду. Используются элементы вектора коэффициента с первого по шестой, а нулевой элемент, всегда равный 1, игнорируется. Это значение 1 нужно, когда y используется как фильтр ошибки прогнозирования для создания полного набора ошибок прогноза.
7. Сравните прогнозируемые точки, рассчитанные с помощью предыдущих P точек в сигнале, с исходными данными. Это позволяет увидеть, насколько хорошо функционировал бы фильтр при использовании вместо сигнала X.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
8. Постройте график исходного и спрогнозированного сигнала.
Щелкните для копирования этого выражения
Получена очень хорошая аппроксимация, даже если использовать только первые 20 точек данных.
9. Используйте функцию response, чтобы генерировать ошибки прогнозирования для коэффициентов Юла - Уолкера, используя массив коэффициентов как фильтр, а затем вычисляя отклик с выборкой в качестве входных данных.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Полный массив коэффициентов иногда называют фильтром ошибки прогнозирования.
10. Убедитесь, что эти ошибки действительно дают разницу между двумя предыдущими графиками.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Алгоритм Юла - Уолкера минимизирует сумму квадратов ошибок прогнозирования.
Щелкните для копирования этого выражения
11. Выполните выборочную проверку минимизации, возмутив y (добавляя небольшое случайное значение ко всем коэффициентам, кроме первого) и заново вычислив сумму (поместите курсор на функцию rnd ниже и нажмите клавишу [F5] несколько раз).
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Прогноз Бёрга
1. Постройте последовательность, для которой хорошо работает линейный прогноз: авторегрессионный процесс с известными коэффициентами.
Щелкните для копирования этого выражения
2. Инициализируйте временной ряд.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Создайте остальную часть ряда, используя сумму авторегрессии и шума.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Возьмите целый временной ряд в качестве выборки и вычислите коэффициенты для модели порядка 6, а затем используйте функцию burg для вычисления коэффициентов.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Сравните коэффициенты, фактически создавшие процесс, с помощью правила знаков для данного документа.
Щелкните для копирования этого выражения
Нулевой коэффициент не был учтен, так как он всегда равен единице.
Вычисленные элементы 1 и 5 для C различаются.
6. Используйте вектор коэффициента Бёрга C, чтобы создать ошибки прогнозирования.
Щелкните для копирования этого выражения
Метод Бёрга назначает нулевой вес первым P ошибкам, так что минимизация не затрагивается заполнением выборки нулями, как это происходит в случае минимизации с помощью алгоритма Юла - Уолкера.
Критерий Бёрга также использует как прямые ошибки FE, так и обратные ошибки BE.
7. Используйте функции response и reverse для вычисления обратных ошибок.
Щелкните для копирования этого выражения
8. Используйте ошибки прогнозирования FE и функцию авторегрессии b для вычисления актуальных прогнозов AP, а затем отобразите на графике участок прогнозируемого и фактического рядов, начиная с элемента Pth.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Спектральный анализ
Можно использовать коэффициенты, созданные при помощи методов линейного прогноза, для оценки спектра мощности моделируемого процесса. В этом контексте алгоритм Бёрга известен как система спектрального анализа максимальной энтропии (MESA), и в некоторых случаях он может определять спектры коротких временных рядов более точно, чем FFT.
Оцените спектр мощности процесса, представляющего собой сумму синусоид с добавлением гауссова шума.
1. Используйте функцию sin для определения сигнала с двумя синусоидальными компонентами.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию gaussn для добавления гауссова шума.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Функция gaussn возвращает n-мерный вектор случайных чисел, следуя гауссову распределению вероятностей со средним, равным 0, и среднеквадратическим отклонением, равным 1.
3. Определите два порядка для линейного прогнозирования.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. С помощью функции burg оцените спектр с авторегрессивными моделями двух порядков, используя в качестве выборки полную временную последовательность.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Используйте функцию gain, чтобы рассчитать соответствующие спектры мощности как квадратную величину амплитуды функции преобразования, определенной с помощью массивов коэффициентов F1 и F2.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Постройте график двух спектров мощности.
Щелкните для копирования этого выражения
Каждый спектр мощности имеет два пика.
Нижние и верхние пики частоты для обоих спектров возникают примерно на одной частоте.
7. Разделите каждую из кривых spec1 и spec2 на два сегмента, чтобы упростить поиск пиков приращения и частот, на которых они возникают.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
8. Используйте функцию if, чтобы определить функцию, возвращающую частоту, на которой данный сегмент имеет пик, а затем используйте ее для поиска левых и правых пиков каждой кривой спектра.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
9. Используйте функцию max для вычисления величины каждого пика.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
10. Постройте график каждой функции отдельно. Используйте горизонтальные и вертикальные маркеры, чтобы показать величину каждого пика и частоту, на которой он возникает.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Следите за двумя графиками при перерасчете документа.
Величина пиков изменяется при каждом перерасчете и они, как правило, имеют разные значения. Возможно, однако, что величины будут равными.
Пики возникают приблизительно на одних частотах.
Дополнительные сведения об этом методе спектральной оценки см. в книге Digital Spectral Analysis with Applications, написанной S. Lawrence Marple, Jr.
Было ли это полезно?