{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1D Fourier series\n", "\n", "The $N$th order approximation of a continuous periodic function $f(t)$ in a trigonometric basis with complex coefficients is\n", "\n", "$$f_N(t)=\\sum_{n=-N}^{N} c_n e^{i n \\omega_0 t}$$\n", "\n", "where the Fourier coefficients\n", "\n", "$$c_n = \\frac{1}{T} \\int_{t_0}^{t_0+T} f(t) e^{-i n \\omega_0 t}$$\n", "\n", "are determined from quadratures over the period $T$. In the formula $\\omega_0$ denotes principal frequency ($\\omega_0 = \\frac{2 \\pi}{T}$).\n", "\n", "These can be defined in terms of the [SymPy](http://www.sympy.org) Python symbolic algebra library functions:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy\n", "sympy.init_printing()\n", "%matplotlib inline\n", "\n", "i2pi = sympy.I*2*sympy.pi\n", "exp = sympy.exp\n", "\n", "def fN(N):\n", " return sum(c(n)*exp(i2pi*n*t/T) for n in range(-N, N+1)).expand(complex=True).simplify()\n", "\n", "def c(n):\n", " return (sympy.integrate(\n", " f(t)*exp((-i2pi * n * t)/T), \n", " (t, t0, t0 + T))/T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sawtooth\n", "\n", "For example let us determine 1D Fourier series of the 'sawtooth' function.\n", "\n", "Define function `f(t)` and its period." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def f(t):\n", " return t\n", "\n", "T = 20\n", "t0 = 0\n", "\n", "t = sympy.Symbol('t', real=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us write its Fourier series up to $N=6$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{20 \\sin{\\left(\\frac{\\pi t}{10} \\right)}}{\\pi} - \\frac{10 \\sin{\\left(\\frac{\\pi t}{5} \\right)}}{\\pi} - \\frac{20 \\sin{\\left(\\frac{3 \\pi t}{10} \\right)}}{3 \\pi} - \\frac{5 \\sin{\\left(\\frac{2 \\pi t}{5} \\right)}}{\\pi} - \\frac{4 \\sin{\\left(\\frac{\\pi t}{2} \\right)}}{\\pi} - \\frac{10 \\sin{\\left(\\frac{3 \\pi t}{5} \\right)}}{3 \\pi} + 10$" ], "text/plain": [ " ⎛π⋅t⎞ ⎛π⋅t⎞ ⎛3⋅π⋅t⎞ ⎛2⋅π⋅t⎞ ⎛π⋅t⎞ \n", " 20⋅sin⎜───⎟ 10⋅sin⎜───⎟ 20⋅sin⎜─────⎟ 5⋅sin⎜─────⎟ 4⋅sin⎜───⎟ 10⋅s\n", " ⎝ 10⎠ ⎝ 5 ⎠ ⎝ 10 ⎠ ⎝ 5 ⎠ ⎝ 2 ⎠ \n", "- ─────────── - ─────────── - ───────────── - ──────────── - ────────── - ────\n", " π π 3⋅π π π \n", "\n", " ⎛3⋅π⋅t⎞ \n", "in⎜─────⎟ \n", " ⎝ 5 ⎠ \n", "───────── + 10\n", " 3⋅π " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = 6\n", "\n", "analytic_approx = fN(N).expand()\n", "analytic_approx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function was defined only as $y=t$ since Fourier series are always used for the analysis of periodic functions. If we plot this for an interval $t$ that is larger than the period $T$ we can see how it approximates the given function." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "interval = (t, t0-T, t0+2*T)\n", "p1 = sympy.plot(f(t), interval, show=False)\n", "p2 = sympy.plot(analytic_approx, interval, show=False)\n", "p2[0].line_color = 'red'\n", "p1.extend(p2)\n", "p1.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Insted of a symbolic solution a numerically equivalent approximation may also be given with SymPy's `mpmath` module." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import mpmath\n", "\n", "cs = mpmath.fourier(f, [t0, t0+T], N)\n", "\n", "def numeric_approx(t):\n", " return mpmath.fourierval(cs, [t0, t0+T], t)\n", "\n", "mpmath.plot([f, numeric_approx], [t0, t0+T])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The coefficients calculated with mpmath.fourier are the cosine and sine coefficients of the function $f_N$.\n", "\n", "$$f_N(t) = \\sum_{n=0}^N \\left(a_n \\cos\\left(\\frac{2\\pi nt}{T}\\right) + b_n \\sin\\left(\\frac{2\\pi nt}{T}\\right)\\right)$$\n", "\n", "We can see the connection by evaluating the symbolic expression obtained above and by comparing the two results:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 6.36619772367581 \\sin{\\left(\\frac{\\pi t}{10} \\right)} - 3.18309886183791 \\sin{\\left(\\frac{\\pi t}{5} \\right)} - 2.12206590789194 \\sin{\\left(\\frac{3 \\pi t}{10} \\right)} - 1.59154943091895 \\sin{\\left(\\frac{2 \\pi t}{5} \\right)} - 1.27323954473516 \\sin{\\left(\\frac{\\pi t}{2} \\right)} - 1.06103295394597 \\sin{\\left(\\frac{3 \\pi t}{5} \\right)} + 10.0$" ], "text/plain": [ " ⎛π⋅t⎞ ⎛π⋅t⎞ \n", "- 6.36619772367581⋅sin⎜───⎟ - 3.18309886183791⋅sin⎜───⎟ - 2.12206590789194⋅sin\n", " ⎝ 10⎠ ⎝ 5 ⎠ \n", "\n", "⎛3⋅π⋅t⎞ ⎛2⋅π⋅t⎞ ⎛π⋅t⎞ \n", "⎜─────⎟ - 1.59154943091895⋅sin⎜─────⎟ - 1.27323954473516⋅sin⎜───⎟ - 1.06103295\n", "⎝ 10 ⎠ ⎝ 5 ⎠ ⎝ 2 ⎠ \n", "\n", " ⎛3⋅π⋅t⎞ \n", "394597⋅sin⎜─────⎟ + 10.0\n", " ⎝ 5 ⎠ " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.N(analytic_approx)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([mpf('10.0'),\n", " mpf('0.0'),\n", " mpf('0.0'),\n", " mpf('0.0'),\n", " mpf('0.0'),\n", " mpf('0.0'),\n", " mpf('0.0')],\n", " [mpf('0.0'),\n", " mpf('-6.366197723675814'),\n", " mpf('-3.183098861837907'),\n", " mpf('-2.1220659078919377'),\n", " mpf('-1.5915494309189535'),\n", " mpf('-1.2732395447351628'),\n", " mpf('-1.0610329539459689')])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are only sine coefficients since our function is odd." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.5" } }, "nbformat": 4, "nbformat_minor": 1 }