Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tatamiya/70ec2107d04a397b893e890250bc1ba5 to your computer and use it in GitHub Desktop.
Save tatamiya/70ec2107d04a397b893e890250bc1ba5 to your computer and use it in GitHub Desktop.
Fourier Transform and Spectral Analysis
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport matplotlib.pyplot as plt\n%matplotlib inline",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# このnotebookで行うこと\n\nHamilton時系列解析Chapter 6の補足として、以下をシンプルな例を見ながら解説する\n\n- 「Fourier変換は時系列を周波数成分ごとに分解する」の意味\n - Fourier係数が表しているものは何か\n - 時系列の共分散とFourier係数との間に成り立つ関係式(パーセヴァルの等式)\n- 自己共分散をFourier変換することの意味\n - 時系列のFourie係数の2乘和との対応関係(Wiener-Khinchinの定理)"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## サンプルとして扱うデータ\n\n$$\ny = 2.0 \\sin \\left(\\frac{2\\pi}{50}t\\right) + 1.0 \\cos \\left( \\frac{2\\pi}{10}t \\right) + \\varepsilon_t, \\quad t=0, 1, 2, ..., 99\n$$\n\n$$\n\\varepsilon_t \\sim N(0, 0.8) \\, , i.i.d\n$$"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "t = np.arange(100)\ny = 2.0 * np.sin(2*np.pi * t / 50) + 1.0 * np.cos(2 * np.pi * t / 10) + 0.8 * np.random.randn(t.shape[0])",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "plt.plot(t, y)\nplt.xlabel('$t$', fontsize=15)\nplt.ylabel('$y$', fontsize=15);",
"execution_count": 3,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# 時系列のFourier変換"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Fourier変換とその係数\n\n長さ$T$の系列データ$\\{y_0, y_1, y_2, ..., y_{T-1}\\}$は、以下のように三角関数の重ね合わせで表現することができる\n\n$$\ny_t = c_0 + c_{M+1} + \\sum_{k=1}^{M} \\alpha_k \\cos \\frac{2\\pi k}{T}t + \\sum_{k=1}^{M} \\beta_k \\sin \\frac{2\\pi k}{T}t\n$$\n\n$$\nM=\n\\begin{cases}\nT/2-1, \\, (T: even)\\\\\n(T-1)/2, \\, (T: odd)\n\\end{cases}\n$$\n\nこの時の係数$c_0, c_{M+1}, \\alpha_k, \\beta_k$は、以下のようにして計算する:\n\n$$\nc_0 = \\frac{1}{T}\\sum_{t=0}^{T-1} y_t, \\quad c_{M+1} = \n\\begin{cases}\n\\frac{1}{T}\\sum_{t=0}^{T-1} (-1)^ty_{t}, \\, &(T: even)\\\\\n0, \\, &(T: odd)\n\\end{cases}\n$$\n\n$$\n \\alpha_k = \\frac{2}{T}\\sum_{t=0}^{T-1}y_t \\cos \\frac{2\\pi k}{T}t, \\quad \\beta_k = \\frac{2}{T}\\sum_{t=0}^{T-1}y_t \\sin \\frac{2\\pi k}{T}t\n$$"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 実部はcosの係数、虚部はsinの係数に対応\n# numpyでは、係数2/Tがかかっていないので対応のため補正した\nyf = np.fft.rfft(y) / y.size * 2\nyf",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": "array([ 0.18059911+0.j , 0.10396953-0.00757903j,\n -0.03849237-2.02076207j, -0.0679861 -0.00817762j,\n 0.0454904 -0.25589123j, -0.0883162 +0.0124195j ,\n -0.06683965+0.12032389j, 0.11159412+0.06375398j,\n -0.1523118 -0.07368575j, 0.02252341-0.07138718j,\n 0.91001183-0.04327912j, -0.10428856+0.13783044j,\n -0.09189168+0.06238017j, -0.02724453+0.12722475j,\n -0.14360594-0.03949918j, -0.08542073-0.0358462j ,\n -0.18296643+0.08035063j, 0.02881636+0.19196212j,\n 0.05226073+0.01073943j, 0.07243005-0.14536253j,\n 0.08382898+0.06473318j, 0.06614577+0.08495204j,\n -0.04711651-0.089637j , -0.19023785-0.0410052j ,\n 0.12339523+0.00982955j, 0.18651936-0.15201428j,\n -0.05516709-0.17356378j, 0.01569451-0.04315234j,\n 0.14209794+0.07073299j, -0.17105718-0.09785153j,\n 0.02245824+0.1026622j , -0.04856312-0.02361507j,\n 0.07354499-0.08057258j, 0.22020152+0.15260758j,\n 0.10822291-0.06409199j, -0.14884669-0.1665994j ,\n 0.13581143-0.02349731j, 0.08032298+0.08215248j,\n 0.01130543-0.32187913j, 0.0751438 +0.04164563j,\n 0.06989875+0.11680401j, 0.07059373-0.01695799j,\n 0.15867103+0.09547384j, -0.21709173-0.02009347j,\n 0.16255796-0.15966532j, -0.06114243-0.07717474j,\n -0.00745531+0.21483949j, -0.02840374-0.00316436j,\n -0.17518548-0.04685909j, 0.07735924+0.09950429j,\n -0.12763861+0.j ])"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 虚部 k=2に大きさ約2.0のピーク → 2.0 * sin (2pi 2/100 t)と対応\n# 実部 k=10に大きさ約1.0のピーク → 1.0 * cos (2pi 10 / 100 t)と対応\nplt.plot(-yf.imag)\nplt.plot(yf.real)",
"execution_count": 5,
"outputs": [
{
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0x10cea0ac0>]"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## パーセヴァルの関係式\n- yの分散とフーリエ係数の大きさとの間には以下のような関係がある\n - $(\\alpha_k^2 + \\beta_k^2)/2$を、yの分散(エネルギー)に対する周波数k成分の寄与と捉えることができる。\n\n$$\n\\frac{1}{T}\\sum_{t=0}^{T-1}(y_t - \\bar{y})^2 = c_{M+1}^2 + \\frac{1}{2}\\sum_{k=1}^{M}(\\alpha_k^2 + \\beta_k^2)\n$$\n\n\nただし、$\\bar{y} = (1/T)\\sum_t y_t$とおいた。"
},
{
"metadata": {
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "y.var()",
"execution_count": 6,
"outputs": [
{
"data": {
"text/plain": "3.0468879093556422"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "(np.abs(yf[1:-1])**2).sum() / 2 + (yf[-1].real /2)**2",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "3.0468879093556427"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "以下のグラフを積分したものが分散に一致する、として理解することができる:"
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "plt.plot(np.abs(yf)**2 / 2)\nplt.xlabel('$k$', fontsize=15)\nplt.ylabel('$(\\\\alpha_k^2 + \\\\beta_k^2)/2$', fontsize=15);",
"execution_count": 8,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# 自己共分散のFourier変換とパワースペクトル\n\n自己共分散を以下のように定義する。\n\n$$\n\\hat{\\gamma}_\\tau = \n\\begin{cases}\n\\frac{1}{T}\\sum_{t=0}^{T-1-\\tau} (y_t - \\bar{y}) (y_{t+\\tau}-\\bar{y}) \\quad &(\\tau >= 0)\\\\\n\\hat{\\gamma}_{-\\tau} \\quad &(\\tau <0)\n\\end{cases}\n$$"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "y_res = y - np.mean(y)\ny_corr = np.correlate(y_res, y_res, mode='full')[y.size-1:] / y.size\nplt.plot(y_corr)\nplt.xlabel('$\\\\tau$', fontsize=15)\nplt.ylabel('$\\hat{\\gamma}_{\\\\tau}$', fontsize=15);",
"execution_count": 9,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## パワースペクトル\n- 自己共分散をフーリエ変換したものを、パワースペクトルと呼ぶ。\n - 自己共分散は原点(t=0)に対して対称なので、実部(cosの部分)のみが得られる\n \n$$\n\\begin{aligned}\n\\hat{S}_y(\\omega) &= \\frac{1}{2\\pi}\\sum_{\\tau=-T+1}^{T-1} \\hat{\\gamma}_\\tau e^{-i\\omega \\tau}\\\\\n&=\\frac{1}{2\\pi} \\left\\{ \\hat{\\gamma}_0 + 2\\sum_{\\tau=1}^{T-1} \\hat{\\gamma}_\\tau \\cos \\omega \\tau \\right\\}\n\\end{aligned}\n$$"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def sy_hat_omega(y_corr, omega):\n return (y_corr[0] + 2 * sum(y_corr[i] * np.cos(omega * i) for i in range(1, y_corr.size)))/(2 * np.pi)",
"execution_count": 10,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "特に、$\\omega_k = \\frac{2\\pi k}{T}, \\quad k=0, 1, 2, ..., T/2$ととった時、"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "sy_hat = np.array([sy_hat_omega(y_corr, 2*np.pi * k/y_corr.size) for k in range(0, int(y_corr.size/2)+1)])",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "plt.plot(sy_hat)\nplt.xlabel('$k$', fontsize=15)\nplt.ylabel('$\\\\hat{S}_y(\\\\omega_k)$', fontsize=15);",
"execution_count": 12,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Wiener-Khinchinの定理\n- 自己共分散をFourier変換したものと、原系列のFourier係数の2乘ノルム和との間には、下記のような関係がある:\n\n$$\n\\frac{4\\pi}{T} \\hat{S}_y(\\omega_k) =\\frac{1}{2}(\\alpha_k^2 + \\beta_k^2)\n$$"
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "plt.plot(sy_hat * 4 * np.pi / y.size, label='$\\\\frac{4\\pi}{T} \\\\hat{S}_y(\\omega_k)$')\nplt.plot(np.abs(yf)**2 / 2, label='$(\\\\alpha_k^2 + \\\\beta_k^2)/2$')\nplt.legend()\nplt.xlabel('$k$', fontsize=15)\nplt.ylabel('Power Spectrum', fontsize=15);",
"execution_count": 13,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# まとめ"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "- Fourier変換により、時系列がどのような周期成分を持っているかを調べることができる。\n- 時系列そのものをFourier変換しても良いが、共分散をFourier変換しても等価な情報を得ることができる"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "$$\n\\require{AMScd}\n\\begin{CD}\ny_t @>{\\rm Fourier Transform}>> \\begin{cases}\\alpha_k &= \\frac{2}{T}\\sum_{t=0}^{T-1}y_t \\cos \\omega_k t\\\\ \\beta_k &= \\frac{2}{T}\\sum_{t=0}^{T-1}y_t \\sin \\omega_k t\\end{cases} \\\\\n@V{\\rm autocovariance}VV @VV{\\rm Wiener-Khinchin Theorem}V \\\\\n\\hat{\\gamma}_\\tau = \\frac{1}{T}\\sum_{t=0}^{T-1-\\tau} (y_t -\\bar{y})(y_{t+\\tau} - \\bar{y}) @>{\\rm Fourier Transform}>> \\frac{2}{T}\\sum_{\\tau=-T+1}^{T-1}\\hat{\\gamma}_\\tau e^{-i\\omega_k \\tau} = \\frac{1}{2}(\\alpha_k^2 + \\beta_k^2)\n\\end{CD}\n$$"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# 参考文献\n- [J. D. Hamilton, Time Series Analysis, Princeton University Press(1994)](https://www.amazon.co.jp/dp/B08DL8TCSB/ref=cm_sw_r_tw_dp_x_v4D1FbZFMM2VM)\n- [金谷健一、これならわかる応用数学教室、共立出版(2003)](https://www.amazon.co.jp/dp/4320017382/ref=cm_sw_r_tw_dp_x_b3D1Fb31JQG03)"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.5",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "Fourier Transform and Spectral Analysis",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment