АВТОКОРРЕЛЯЦИОННАЯ ФУНКЦИЯ

Нежное введение в автокорреляцию и частичную автокорреляцию

АВТОКОРРЕЛЯЦИОННАЯ ФУНКЦИЯ

Дата публикации 2017-02-06

Графики автокорреляции и частичной автокорреляции широко используются при анализе и прогнозировании временных рядов.

Это графики, которые графически суммируют силу взаимосвязи с наблюдением во временном ряду с наблюдениями на предыдущих временных шагах. Разница между автокорреляцией и частичной автокорреляцией может быть трудной и запутывающей для новичков в прогнозировании временных рядов.

В этом руководстве вы узнаете, как рассчитать и построить графики автокорреляции и частичной корреляции с помощью Python.

После завершения этого урока вы узнаете:

  • Как построить и просмотреть функцию автокорреляции для временного ряда.
  • Как построить и просмотреть функцию частичной автокорреляции для временного ряда.
  • Разница между автокорреляционными и частичными автокорреляционными функциями для анализа временных рядов.

Давайте начнем.

Набор данных минимальных суточных температур

Этот набор данных описывает минимальные дневные температуры за 10 лет (1981-1990) в городе Мельбурн, Австралия.

Единицы измерения — градусы Цельсия, 3650 наблюдений. Источник данных зачисляется в Австралийское бюро метеорологии.

Узнайте больше и загрузите набор данных с Dara Market,

Загрузите набор данных и поместите его в текущий рабочий каталог с именем файла «ежедневно минимальной temperatures.csv«».

Заметка: Загруженный файл содержит несколько знаков вопроса («?»), Которые необходимо удалить, прежде чем вы сможете использовать набор данных. Откройте файл в текстовом редакторе и удалите символы «?». Также удалите любую информацию нижнего колонтитула в файле.

В приведенном ниже примере будут загружены минимальные дневные температуры и график временных рядов.

from pandas import Series from matplotlib import pyplot series = Series.from_csv('daily-minimum-temperatures.csv', header=0) series.plot() pyplot.show()

Выполнение примера загружает набор данных как серию Pandas и создает линейный график временного ряда.

Корреляция и автокорреляция

Статистическая корреляция суммирует силу взаимосвязи между двумя переменными.

Можно предположить, что распределение каждой переменной соответствует распределению Гаусса (кривая колокола). Если это так, мы можем использовать коэффициент корреляции Пирсона, чтобы суммировать корреляцию между переменными.

Коэффициент корреляции Пирсона представляет собой число от -1 до 1, которое описывает отрицательную или положительную корреляцию соответственно. Нулевое значение указывает на отсутствие корреляции.

Мы можем вычислить корреляцию для наблюдений временного ряда с наблюдениями с предыдущими временными шагами, называемыми лагами. Поскольку корреляция наблюдений временного ряда рассчитывается со значениями того же ряда в предыдущие моменты времени, это называется последовательной корреляцией или автокорреляцией.

График автокорреляции временного ряда по лагу называетсятокоррекцияСorrelationFUnction, или акроним ACF. Этот график иногда называют коррелограммой или автокорреляционным графиком.

Ниже приведен пример расчета и построения графика автокорреляции для минимальных дневных температур с использованиемplot_acf ()функция из библиотеки statsmodels.

from pandas import Series from matplotlib import pyplot from statsmodels.graphics.tsaplots import plot_acf series = Series.from_csv('daily-minimum-temperatures.csv', header=0) plot_acf(series) pyplot.show()

При выполнении примера создается двухмерный график, показывающий значение задержки по оси X и корреляцию по оси Y между -1 и 1.

Доверительные интервалы нарисованы в виде конуса. По умолчанию это 95-процентный доверительный интервал, что позволяет предположить, что значения корреляции вне этого кода, скорее всего, являются корреляцией, а не статистической случайностью.

По умолчанию печатаются все значения запаздывания, что делает график зашумленным.

Мы можем ограничить число лагов по оси X до 50, чтобы сделать график более удобным для чтения.

Функция частичной автокорреляции

Частичная автокорреляция — это сводка взаимосвязи между наблюдением во временном ряду с наблюдениями на предыдущих временных этапах с удалением взаимосвязей между промежуточными наблюдениями.

Частичная автокорреляция при лаге k — это корреляция, возникающая после устранения влияния любых корреляций, связанных с членами с более короткими лагами.

— стр. 81, раздел 4.5.6 Частичные автокорреляции,Вводный временной ряд с R,

Автокорреляция для наблюдения и наблюдения на предыдущем временном шаге состоит из прямой и косвенной корреляций. Эти косвенные корреляции являются линейной функцией корреляции наблюдения с наблюдениями на промежуточных временных шагах.

Именно эти косвенные корреляции стремится устранить частичная автокорреляционная функция. Не вдаваясь в математику, это интуиция для частичной автокорреляции.

В приведенном ниже примере вычисляется и строится график частичной автокорреляционной функции для первых 50 лагов в наборе данных «Минимальные дневные температуры» с использованиемplot_pacf ()из библиотеки statsmodels.

from pandas import Series from matplotlib import pyplot from statsmodels.graphics.tsaplots import plot_pacf series = Series.from_csv('daily-minimum-temperatures.csv', header=0) plot_pacf(series, lags=50) pyplot.show()

Выполнение примера создает двухмерный график частичной автокорреляции для первых 50 лагов

Интуиция для участков ACF и PACF

Графики функции автокорреляции и функции частичной автокорреляции для временного ряда рассказывают совсем другую историю.

Мы можем использовать интуицию для ACF и PACF выше, чтобы исследовать некоторые мысленные эксперименты.

Авторегрессия Интуиция

Рассмотрим временной ряд, который был сгенерирован процессом авторегрессии (AR) с задержкойК,

Мы знаем, что ACF описывает автокорреляцию между наблюдением и другим наблюдением на предыдущем временном шаге, который включает в себя информацию о прямой и косвенной зависимости.

Это означает, что мы ожидаем, что ACF для временного ряда AR (k) будет сильным с запаздыванием k, и инерция этого отношения продолжится к последующим значениям запаздывания, отступая в некоторой точке, когда эффект будет ослаблен.

Мы знаем, что PACF описывает только прямую связь между наблюдением и его отставанием. Это предполагает, что не будет корреляции для значений запаздывания за пределамиК,

Это точно ожидание графиков ACF и PACF для процесса AR (k).

Скользящая средняя интуиция

Рассмотрим временной ряд, сгенерированный процессом скользящего среднего (MA) с запаздываниемК,

Помните, что процесс скользящего среднего представляет собой модель авторегрессии временных рядов остаточных ошибок из предыдущих прогнозов. Другой способ думать о модели скользящего среднего состоит в том, что она корректирует будущие прогнозы на основе ошибок, допущенных в последних прогнозах.

Мы ожидаем, что ACF для процесса MA (k) покажет сильную корреляцию с недавними значениями вплоть до запаздывания k, затем резкое снижение до низкой или без корреляции. По определению, именно так и был создан процесс.

Что касается PACF, мы ожидаем, что график покажет сильную связь с отставанием и отставание корреляции от отставания и далее.

Опять же, это в точности ожидание графиков ACF и PACF для процесса MA (k).

Дальнейшее чтение

Этот раздел предоставляет некоторые ресурсы для дальнейшего чтения об автокорреляции и частичной автокорреляции для временных рядов.

Резюме

В этом руководстве вы узнали, как рассчитать графики автокорреляции и частичной автокорреляции для данных временных рядов с помощью Python.

В частности, вы узнали:

  • Как рассчитать и создать автокорреляционный график для данных временных рядов.
  • Как рассчитать и создать график частичной автокорреляции для данных временных рядов.
  • Разница и интуиция для интерпретации графиков ACF и PACF.

Источник: https://www.machinelearningmastery.ru/gentle-introduction-autocorrelation-partial-autocorrelation/

Основные принципы цифровой беспроводной связи. Ликбез

АВТОКОРРЕЛЯЦИОННАЯ ФУНКЦИЯ

Всем привет. В этой статье я хотел бы рассказать немного об основных приемах и идеях современной цифровой беспроводной связи — на примере стандарта IEEE 802.11. В наше время очень часто люди живут на довольно высоких уровнях абстракции, плохо представляя как именно работают окружающие нас вещи.

Ну что ж — попытаюсь принести в массы свет просвещения. В статье будут использоваться вещи и терминология, объясненные в этой статье. Так что людям, далеким от радиотехники рекомендуется сначала прочитать её.

DANGER: в статье присутствует матан — особо впечатлительным не нажимать на эту кнопку:

Аналоговые сигналы

До развития компьютеров — посредством радиоволн передавались обычно аналоговые сигналы — то есть сигналы, множество значений которых непрерывно.

Например — звук — зависимость давления от времени. Полученный с приемника сигнал (напряжение) поступает на усилитель звуковой частоты и заставляет колебаться динамик.

Или видеосигнал для кинескопа. Уровень сигнала определяет значение мощности, бегающего по экрану лучика, который в нужные моменты времени засвечивает люминофор, формируя изображение на экране

Основной минус такого способа передачи информации — низкая помехоустойчивость — передающая среда всегда вносит в наш сигнал какую то случайную составляющую — изменение формы видеосигнала меняет цвета отдельных пикселей(все мы помним шумы радиоприемника и рябь на экране телевизора).

Цифровые сигналы

Цифровые сигналы — то есть сигналы, имеющие дискретное множество значений — по этому параметру значительно лучше аналоговых, так как нас интересует не непосредственно значение сигнала, а диапазон в котором находится это значение и помеха нам не страшна(например в диапазоне напряжений 0В — 1.6В мы считаем, что это лог 0, а в диапазоне 3.3В — 5В лог 1).

Расплата за это — увеличение требуемой скорости передачи и обработки информации.
Первое, что люди научились делать — естественно передавать такие сигналы по проводам, просто переключая состояние линии данных и синхронизации из единицы в ноль. На этом небольшой ликбез закончен — далее речь пойдет о том — а как же передается цифровой сигнал при помощи радиоволн.

Как работает WiFi.

Спектр единичного импульса

В радиосвязи нас часто интересует спектр сигнала — цифровой сигнал — последовательность прямоугольных импульсов — для начала рассмотрим спектр одного прямоугольного импульса.

Вспомним — что такое спектр(коэффициент перед интегралом опущен):
Спектр прямоугольного импульса длительностью T и амплитудой A:
Вывод Выносим константу за интеграл и делаем замену дифференциала
Считаем определенный интеграл
Далее делаем замену на синус по Формуле Эйлера

Таак — а как же быть с отрицательной амплитудой? Вспомним что в действительных числах спектр раскладывается на сумму синусов и косинусов с нулевыми фазами — в такой форме на самом деле удобней представлять в компьютере, но для анализа такая форма совершенно неудобна — при изменениях сигнала во временнОй области — спектры будут меняться совершенно непонятным для человека образом, поэтому два спектра синусных компонент и косинусных компонент преобразуют в полярные координаты, сворачивая пары синусов и косинусов с нулевой фазой в синус с ненулевой фазой, получая амплитудный спектр и фазовый, а теперь вспомним, что домножение сигнала на -1 — эквивалентно скачку фазы на 180 градусов, поэтому отрицательная часть отразится относительно горизонтальной оси, а в точках перегиба — фаза будет испытывать скачок на 180 градусов.

Также видим, что спектр одиночного импульса представляет собой sinc функцию, довольно часто встречающуюся в цифровой обработке сигналов и радиотехнике.

Почти вся энергия импульса содержится в центральном пике спектра — его ширина обратно пропорциональна длительности импульса. А высота — прямо пропорциональна — то есть — чем длиннее импульс — тем уже и выше его спектр, а чем короче — тем ниже и шире. Спектр последовательности импульсов с хорошей степенью точности можно считать совокупностью гармоник в спектральной полосе, ширина которой обратно пропорциональна длительности импульса T. Итак — вывод — уменьшая длину импульсов нашего цифрового сигнала мы можем размазывать сигнал по широкой полосе спектра — при этом пропорционально уменьшается его высота — при увеличении полосы в N раз — во столько же уменьшится высота спектра вплоть до уровня шумов. Широкополосная передача имеет довольно много плюсов — один из них — устойчивость к узкополосным помехам — так как информация размазана по спектру — узкополосная помеха портит только малую часть этой информации. Если тупо уменьшить длину импульсов нашего информационного сигнала — спектр, конечно, уширится, но ведь приемник не знает какую информацию мы ему передаем и не сможет выделить её из шумов. Поэтому необходим способ — преобразовать узкополосный сигнал в широкополосный шумоподобный — для передачи по радиоканалу, а после приема преобразовать обратно в узкополосный — нужно добавлять в сигнал избыточную информацию, то есть информацию, известную и приемнику и передатчику, при помощи которой приемник может отличить сигнал от шумов. Закодируем каждый бит информации известной и приемнику и передатчику последовательностью.

Автокорреляционная функция. Коды Баркера

Наша задача — найти в длинной последовательности входных данных заранее известную короткую последовательность.

Автокорреляция — статистическая взаимосвязь между случайными величинами из одного ряда, но взятых со сдвигом.

Особое значение данный параметр имеет в локации — вот сгенерировали мы какой то сигнал и засекли время — скорость распространения сигнала нам известна, значит зная время, которое потребовалось сигналу, чтобы сбегать до препятствия и обратно — мы можем вычислить расстояние для препятствия. Но вот незадача — идеальных условий в жизни не бывает — как правило вокруг очень много шумов и вместе с отраженным сигналом на вход приемника поступает всякий мусор. А мы во-первых не должны спутать наш сигнал ни с чем другим, во вторых — достаточно точно определить момент времени, когда он вернулся назад. Математически — автокорреляция определяется так:
То есть мы накладываем функцию на саму себя, но со сдвигом — перемножаем и вычисляем интеграл, отмечаем точку, затем опять сдвигаем, опять вычисляем интеграл и так для всех возможных сдвигов. Если мы прикладываем функцию не к самой себе, а к какой то другой, то это называется просто корреляция.
На приведенной ниже картинке демонстрируются операции свертки, корреляции и автокорреляции. Отличие свертки и корреляции — в направлении — свертка функций f(x) и g(x) — это та же корреляция, только функций f(x) и g(-x), автокорреляция — корреляция функции с самой собой
То есть в момент времени, когда входной сигнал наиболее похож на нужную нам функцию — корреляционная функция будет иметь пик. Ширина этого пика, если не брать во внимание шум — будет равна удвоенной длине зондирующего импульса и будет симметричной относительно центрального пика — даже если исследуемый сигнал не является симметричным. К слову — пиков может быть несколько — центральный пик и так называемые боковые лепестки — зависит от функции. Корреляционный метод является самым оптимальным методом определения сигнала известной формы на фоне белого шума — другими словами метод имеет наилучшее отношение сигнал/шум. Зондирующий импульс должен удовлетворять следующим требованиям — иметь как можно более узкий центральный пик и при этом иметь минимальный уровень боковых лепестков, то есть функция похожа сама на себя только в очень коротком интервале времени — чуть сдвинуть и она становится совершенно непохожа. В локации этим требованиям удовлетворяет ЛЧМ сигнал. Имеющий минимальный уровень боковых лепестков, автокорреляционная функция ЛЧМ сигнала имеет следующий вид:
Аналогом ЛЧМ сигнала в дискретных системах является последовательность Баркера Например — известная последовательность длинной 11 бит: 11100010010. Найдем автокорреляционную функцию этой последовательности, циклически сдвигая её и считая сумму попарных произведений, при этом заменив 0 на -1 11100010010 11100010010

11

11100010010 01110001001

-1

11100010010 10111000100

-1

11100010010 01011100010

-1

11100010010 00101110001

-1

11100010010 10010111000

-1

… И так далее — в общем автокорреляционная функция имеет значение 11 только при полном совпадении, во всех остальных случаях — -1. То же самое справедливо и для инверсии последовательности, то есть для 00011101101. Плюс ко всему — прямая и инверсная последовательности слабо коррелируют между собой — мы их не спутаем.

Получается, что мы можем каждый бит информации кодировать 11 битами последовательности Баркера — прямой для единиц и инверсной для нулей. Элементы последовательности Баркера называют чипами.На практике кодирование происходит примерно так:

Приемник просто может считать корреляцию последовательностей Баркера(прямой и инверсной) и входного сигнала и по пикам корреляционной функции определять — где во входном сигнале закодированы нули, а где — единицы

Модуляция

В общем — как сделать из узкополосного информационного сигнала — широкополосный шумоподобный, а потом его восстановить — разобрались. Теперь поговорим немного о способах передачи данных через среду — средой может быть вакуум, воздух, оптоволокно, провод и т.д.

Для того чтобы передавать сигнал при помощи радиоволн нам нужна несущая частота, промодулировав её — мы насаживаем нашу информацию на несущую. Есть 3 основных типа модуляции — амплитудная, частотная и фазовая.

Можно наш готовый к передаче сигнал направить на переключатель и просто включать-выключать передачу несущей — тем самым промодулировав амплитуду

Достоинства и недостатки амплитудной модуляции рассматривались в этой статье, так что подробно здесь останавливаться на ней не будем — в настоящее время амплитудная модуляция почти не применяется.

Следующий тип модуляции — частотная, когда сигнал данных управляет частотой несущей — либо напрямую (ГУН), либо переключаясь между двумя разными генераторами(при этом происходит скачок фазы)

Тут тоже есть что сказать, но как нибудь в другой раз — иначе статья получится слишком уж большой.

Фазовая модуляция

Несложно догадаться — что тут мы кодируем информацию в фазе сигнала — например нуль соответствует нулевому сдвигу по фазе, а единица — сдвигу на 180 градусов — такой способ кодировки легко реализовать технически — например умножая сигнал на 1 — имеем нулевой фазовый сдвиг, а умножая на -1 — сдвиг на 180 градусов.

Такая модуляция называется Binary Phase Shift Key или BPSK А что если мы хотим иметь больше фазовых сдвигов? Для начала объясню логику инженеров, которые придумали следующие танцы с бубном — у вас всего 2 управляющих сигнала — 1 и -1 и при помощи них нужно наиболее простым способом закодировать произвольное число фазовых сдвигов — можно конечно поставить какой нибудь супер ЦАП и управлять генерируемой частотой напрямую, но математика предлагает нам кое что получше. А именно вот эту формулу:

К слову — на ее основе мы произвели переход от спектров синусоид и косинусоид с нулевыми фазами к спектру синусоид с ненулевыми фазами и фазовому спектру — теперь мы просто делаем обратное преобразование.

На этом основана Квадратурная Модуляция

— вместе с несущей мы генерируем еще один сигнал, который сдвинут относительно несущей на 90 градусов, то есть находится с ней в квадратуре. Теперь — управляя амплитудой каждого сигнала(In phase и Quadrature) — умножая на 1 или -1, а затем суммируя — мы можем получить уже 4 возможных фазовых сдвига.

Теперь за раз мы можем кодировать 2 бита. То есть скорость передачи возрастает вдвое. Но и вероятность ошибки при тоже неизбежно возрастет. Аналогичным образом можно получить большее число фазовых сдвигов. Возможные состояния сигнала обычно показывают на векторной диаграмме или на плоскости сигнального созвездия
Обратите внимание, что последовательность бинарных слов на диаграмме представляет собой Код Грея, что минимизирует вероятность ошибки. Кроме того — есть дополнительный сдвиг на 45 градусов — это делается для того, чтобы уменьшить паразитную амплитудную модуляцию при скачках фазы на 180 градусов На практике синхронный способ передачи не используется — потому что есть привязка к какой то начальной фазе, а со временем набегает ошибка и фаза уплывает, нужно постоянно переустанавливать начальную фазу — синхронизировать приемник и передатчик. Поэтому носителем информации в реальных системах является не фаза, а изменение фазы — дифференциальный способ передачи сигнала позволяет избавиться от синхронизации. Например при каждом появлении нуля — фаза делает скачок на 180 градусов (BPSK).

Далее уже можно начать говорить о тонкостях реализации — как всегда — на практике все оказывается сложнее, чем в теории, данная статья — скорее небольшой ликбез для расширения кругозора.

  • никто не читает теги
  • радиосвязь
  • wifi
  • DSSS
  • 802.11

Хабы:

Источник: https://habr.com/ru/post/192120/

Все термины
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: