Это второй учебник из нашей серии, посвященной спектральному анализу временных рядов. В этой записи мы продолжим разговор о дискретном преобразовании Фурье в Excel, его интерпретации и применении во временной области.
ДПФ - это, по сути, математическое преобразование, и, возможно, оно немного суховато, но мы надеемся, что этот учебник поможет вам глубже понять и проникнуться интуицией благодаря использованию функций и мастеров NumXL.
Фон
С тех пор как мы опубликовали нашу первую запись о DFT, поступило несколько запросов, особенно об использовании компонентов DFT для представления набора входных данных в виде суммы тригонометрических функций синус-косинус. Запросы были мотивированы использованием такого представления для интерполяции промежуточных значений и возможной экстраполяции (она же прогноз) за пределы набора входных данных.
В принципе, ДПФ преобразует дискретный набор наблюдений в ряд непрерывных тригонометрических (т.е. синусоидальных и косинусоидальных) функций. Таким образом, исходный сигнал можно представить в виде:
$$x(t)=\frac{1}{N}\left ( A_o+\sum_{i=1}^N A_i\times cos(\omega\times i \times t + \phi_i)\right )$$
Где:
- $x(t)$ значение наблюдения в момент времени $t$.
- $t$ дискретное время, в которое было сделано наблюдение.
- $t \in \left \{ 0,1,2 \cdots N-1 \right \}$.
- $N$ количество наблюдений в наборе входных данных.
- $\omega = \frac{2\pi}{N}$ основная или принципиальная частота.
- $A_i\angle \phi_i$ амплитуда и фаза i-й дискретной компоненты Фурье.
Анализ
Рассматривая компоненты преобразования Фурье (т.е. амплитуду и фазу) более близкого конечного ряда, мы обнаруживаем следующие наблюдения:
- Серия амплитуд симметрична относительно компоненты $N/2$.
- Фаза компоненты $k$ равна отрицательной величине компоненты $N-k$.
По сути, нам нужна только первая половина компонентов DFT для восстановления исходного набора входных данных. Исходное время представлено следующими компонентами:
$$x(t)=\frac{1}{N}\left( A_o+2\times\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
Доказательство
$$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_i\times cos(\omega\times i \times t + \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=N/2+1}^N A_{N-i}\times cos(\omega\times i \times t - \phi_{N-i}) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) +\sum_{i=1}^{N/2} A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(\omega\times (N-i) \times t - \phi_i) \right)$$ $$x(t)=\frac{1}{N}\left( A_o+\sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i) + A_i\times cos(2\pi\times t -(\omega\times i \times t + \phi_i)) \right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2} A_i\times cos(\omega\times i \times t + \phi_i)\right)$$
ВАЖНО: Для набора входных данных четного размера последнюю компоненту ДПФ не нужно умножать на 2. Таким образом, косинусное представление входных данных выражается следующим образом:
$$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\omega\times \frac{N}{2} \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\pi \times t + \phi_{N/2})\right)$$ $$x(t)=\frac{1}{N}\left( A_o + 2\times \sum_{i=1}^{N/2-1} A_i\times cos(\omega\times i \times t + \phi_i)+ A_{N/2}\times cos(\phi_{N/2})cos(\pi \times t)\right)$$
Заключение
Используя дискретное преобразование Фурье, мы представляем дискретный набор входных данных в виде суммы детерминированных непрерывных тригонометрических функций.
В отличие от исходных данных, которые определяются в дискретные моменты времени, представление Фурье является непрерывным и, таким образом, определяется во все времена. Используя это непрерывное представление, мы можем интерполировать любые значения в этом диапазоне (но не для экстраполяции/прогнозирования).
Комментарии
Статья закрыта для комментариев.