{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9edbe57b",
   "metadata": {},
   "source": [
    "# Fourier transform\n",
    "- Börge Göbel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "64684100",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a912bea",
   "metadata": {},
   "source": [
    "## Recall integrals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "25dafcb2",
   "metadata": {},
   "outputs": [],
   "source": [
    "def integralTrapezoidal(data):\n",
    "    a = 0\n",
    "    for i in range( len(data[0]) - 1 ):\n",
    "        a = a + ( data[1,i+1] + data[1,i] ) / 2 * ( data[0,i+1] - data[0, i] )\n",
    "    return a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5a25565c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x20f5416c6a0>]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABYJklEQVR4nO29eZQs2V3f+b2ZGZGRe2btb+v3elOrW63ulrobtWhJFkIgWWgkBiwWY4GP7RHYeAb7AMNmzDY6xtYchvEBG2RgzLBjgxhAoM2ohWhJLb2WelV3q5fX/bZ6r7bcl1gy7/xx48Z6I7Ley8iqzKz7Oeedl5UVFRVZEfGL3/0t3x+hlEIikUgk80vqsA9AIpFIJJMhDblEIpHMOdKQSyQSyZwjDblEIpHMOdKQSyQSyZyTOYxfurKyQs+cOXMYv1oikUjmlkcffXSHUroafP9QDPmZM2dw9uzZw/jVEolEMrcQQl4RvS9DKxKJRDLnSEMukUgkc4405BKJRDLnSEMukUgkc4405BKJRDLnSEMukUgkc4405BKJRDLnSEMukUgkAvrGEL//yHmYw9FhH8pYpCGXSDx88qtX8ZmvbR/2YUhmgD/60nn85EeexK899OJhH8pYpCGXSDz8L//vWXzfb30Rux39sA9Fcsg8v9UBAPzVU1cO+UjGIw25RGJT7xrO688+v3OIRyKZBZ642AQAXKz3DvlIxiMNuURi8/TllvP6UqN/iEcimQVe2mYeeXtgoTUwD/lo4pGGXCKxeWGr7by+WJeG/CjTN4boGkPceaIMALg049eDNOQSic1Ox0CKAHccK+Oy9MiPNDt2juTuk1UA0pBLJHPDblfHUiGLU0s5GVo54mwHDPlmc7avB2nIJRKb7baBlaKKY5UcrjYHh304kkNkp80M+S3rRQBAvSdj5BLJXLDb1bFSzKKWV9HWrbloBJFMh50Oq2DaKGsoZTPY81Q0zSITG3JCiEYI+SIh5HFCyNOEkJ9L4sBmFWs4wseeuoKBOTzsQ5EkzG7HwHJRRTWvAABa/dn2wiTTg8fIl4sqqgUFjd6CG3IAOoC3UUrvBnAPgHcSQh5IYL8zyc/+xdP4gd99FL/zeeHEJckcs9NhHjk35A1pyI8sjZ6JYjaDbCaNWl6d+dDKxDM7KaUUQMf+UrH/0Un3O6t88dweAODJS81DPhJJkgzMIXrGEEsFFZWcbchn3AuTTI/WwERJY+axmldn/lpIJEZOCEkTQh4DsAXgk5TSRwTbfIAQcpYQcnZ7ez61LEYjipd3WZeXNOSLBW/4KGsZVPMqAOaVSY4mbY8hX8orM++RJ2LIKaVDSuk9AE4C+DpCyJ2CbT5MKb2PUnrf6upqEr82EZ670sbrfv4T+PXPjBfGudzsw7BG2ChrOLfTlXHyBaI9sAAA5ZyCquORz/bNK5ke7YGFssaug2pe9ck3zCKJVq1QShsAHgLwziT3O00+9+IO6j0T/+6vnx277bmdLgDg629eBgBst6Ww0qLAE5slLSNj5BJfaGUeqpiSqFpZJYRU7dc5AG8HMN4qzgjPbrpt2e0xegpXW8xw33NDFQCw1Za1xouC45FrCsqaAkJkjPwo0x5YKNkeeTnHDHrHvkZmkSQ88mMAPk0IeQLAl8Bi5H+ZwH4PhGevuEJJr+zGq5ztdZkhv/0Y01+40pQe+aLAY+QlTUEqRVDMZhzjLjl6tAeWY8CL2Yzz3qySRNXKEwBel8CxHAqv7PVw/5kavvRyHS/tdHHniUrktntdE2o6hZtWCgCAqy3pkS8KbozcvXk7+uzeuJLpQSlFq286Hjn/f5YVEI90Z6dhjdDomXj96RqA8cI4e10dtYKCpYIKJU1wVYZWFgY3Rs5u2kI2g6405EeSgTmCNaJOjLyszb5HfqQN+a4dKjm9VICmpJzQSRR7XQNLhSwIIVgraTLZuUC0BiZSBCioaQDMkEuP/GjSHvgf6vz/cTm0w+RIG/KdNktmrRRVLOVV7HXjTxQz5LwkSUFTlqctDDy5RQgBABSz6cQ88ld2u/jdL7wC1jsnmXXa9nkv2bHx0hx45BPHyOeZ7Q4LjayUslgqqqiPqVLY6xp4ba0KgBnycdtL5gdmyN3boZjNOA/6Sfk3f/YUPvv8Dk7WcnjrbWuJ7FMyPXo66w8phAz57Dpu0iMHsGor3u2OKfqv90ws2TXG1Zwq64wXiK5uOdUJQLKhlfN7rBrqI1+5lMj+JNOla7DzzsNsbmhldj3yI23IuXj8aimL5UJ89xalFB3dQtHRX5ChlUWia1jI2zcusL+qlWbfxL//2LNoxjzQGz3DKWuV4+Pmg55tyPP2g13NpJDNpGY6Z3KkDXmzb0JTUtCUNGoFNVZzeGCOMBxRFLNujLzRN2Xcc0Ho6kNnKQ24VStx5/dH/9vj+M8PvYg/i/G0ufEua5mZHxcmYXR5aMXzYC9pClrSI59NWn3T0VNYLqjo6BZ0S6yfwp/GxSw7udWciuGIOokRyXwTDK0UsxlYIwrdim7LPvtKHQDw+Rd3I7fZtCcN3XdmCVfbAxgx+5PMBkGPHGAPYhkjn1FaAxPlHG/DjY+DOYbcE1oBEBleoZTO/Jw/iUtXt5BX/Yacvy+i0TOcFdyj5+uR++XXwH1naqB09mc/SqI88tnu9D3ahrxvOcX+/MaN0lPgN3RBdTWKAURWrvzkR57CG//d3+D8mLZ/yWzQNYbOagtwKxb4TR3kJVtA7e5TVWy39UglzM3mAEqa4LV2x/AVOQt05nE8cs+DvaQp0iOfVbweOc9MRyU0+NO46CiiRUudDswh/uCL5wEAD7+4k+xBSxKHUso8cl9ohRn1qOvh3DYz5G+5dQUAcKkh9rQ3G32slzUsFfiDf3aNgYTRNYZQ0gRqxjWP0iOfYbwx8nHCOF0nRu4PrYhKEF+yb3IAeOSl6PipZDYwhqwlO1h+CLilaEG44X7DjUzSOCqRud3RsVbKOiu4Zl/2Hsw6vUCYDUjGkF9tDfDLn/qaI4edJEfakDf7piOSxIv+ozywTsCQV3J8ikz4xnx+i0njHq9oeGG7E/q+ZLYQxUQLY0JtOx0dlZyCG1eZgFpUaeFe18RSQZXDKuaInjH0XQvA+NDKyzvdsaJar+z28Mufeh4X68mHW4+sIaeUouWZAuLEyHXxyQga8mpMaOW5K21kUgQP3LwspW7nAL7a8oZWStn4Bzsb1KxivZRFigBXIpKYjZ6BWl5FXk1DSRPZRHbIPHahgeevtmO36RlD37UAsPu+awwxHIXLUQfmEG/9Px/CXT/7iVhZBy7Mxm1OkhxZQ96zTwqPkRfH6CkEq1aUdArFbEZoyC81+jhW1XCqlsduV9/XZJFLjb4cVHFI8PCJMLQSZcjbBlaKWWTSKVRjuoLrPQO1ggpCCCq52R/iu8iMRhTf+qsP45v+r7/FyzHhja5hCTzy6BXaYxcazuvHPa+DtG0nkducJDmyhpwvg/jE9P3EyFMEyCnuCa7kFOGNud3WsVbSsFHRQCmwNUYlsW8M8eAv/g2+89e/cF2fRTIZPLSSF4VW4jzyUhYAsFRQsdsJXwd9Y4iBOXJWb9W8IkMrh8i5Xdd4P/pKdMloTx+GYuTlGE3yL3jyYM/FePutPp9ClbzE1dE15M4flZ2gbCYFJU1iq1YK2YyjjgcAtYIiXCpvtXWsFrPYKGsAxpec/cUTlwGwmaCyU/TgCSayATdeHlV+uN3RsWJXoixFdAXz0tQlO9FZzUlDfpg8dr7hvH5+Kzp31TUsFLJij1zk6L2w1cENS3nU8gq+FmvI/fK4SXJ0DfmAL3PYCSKEjfeKqyMvBuJm1Yil8lZrgLVyFuu2IR83ScibxX5Z1p0fOKK64Uw6BU1JCatWdGuI9sDCSpF55MsF1dG298KNO69YqebHK2xKpscL2x0oaYJb1op4YSva4PaMsEcep0l+qdHHqaUcbl0r4fmr0Q+I1oBJgnjLGpPi6BpyQeKhpCmxVStBQ17JK6G64IE5RGtgYa2UxUoxvmmI4y1de84zQ1RyMHRsrzt4fqOEs3g3b832yJeLYo+ce9+8hrykyWEVh8mV5gBrJQ2vWi/6SoSDdPVr88gv1vs4Uc3hWFWLnRrGGhCT98aBo2zIB+HEQ9zA3Y5u+USVALZkDhppPjVoraQ5+x63nL7U6OOWtaLv5yUHh9O1G7h5o1ZoXO2Q51eWClk0+maoooFfG7x5rJBNo2eIQzWS6bPZ7ONYRRs73UvskduGXA87btttHSdreayVsthq6ZHh0bZuTiXRCSRgyAkhpwghnyaEPEMIeZoQ8kNJHNi0ESUeilomtvww6LHV8gqagRuYJzZXS1loSho5JR0rcwoAF+s9vPZEBYQA24KkmWS6OPrTgfMbNbeTn09+Uy4XVFAaXnnxr3lopaBKj/wwudrSsVHRsFrKoq1bQlkFSmlE1YpYi+my3Rh2oprDWkmDbo0iVRK9kiBJk4RHbgH4YUrp7QAeAPCDhJA7EtjvVBElHkoxGtTCGHme3cAtj6HetpdWq3ZFA6tUiDbO5nCErbaOU7UclvIqdjrSIz9ourqFdIogG4hdRg2XCHvkzFAHwyt1e3Rg1fHIMzCs0b7KUSXJwkXsNsoaVu3chsgrH5gjUIpQHXlUaIU7bhsVDWtlvl9xeKU1MKeS6AQSMOSU0k1K6Zft120AzwA4Mel+p01rYCKnpH2Jh6IWnezsDAShlUI4Bs5PLD+plTGVCo2eCUqB5WIWK8UsdmRo5cDp6kPk1bSvIgngTSDh6yFYurpsXwfBEsR6z0BJy0BJs2uMlzf2IiphJNOj1bcwMEeORw64g2W8BKcDcTQlDTWdChlyfs6Xi6qz362W+B5u9Wc4tOKFEHIGwOsAPJLkfqdBq285FSuccTHykhb0yNlJ8Rry7baOFAGWCx5DHhNa4dob1byClZL0yA8D0WoL4KGVsNHlyU6+TF4qRnjkdlcnx5HGjdBvkUwPXlW0YjtMAIROU8/pKQhfDyWBJjm/X1eKWayV7Cq1CI+8PZjt0AoAgBBSBPAnAP4VpTRUekEI+QAh5Cwh5Oz29nZSv/a6aQ3MUAa5qGWEgyL4mLdgMozfpHwJDbCn8XIxi3SKeXfjRsLxqpdaXmUeuYyRHzg9YxhabQFMAVEcWrHzK6HQit8w1HumU9kCuMv1uDZuyXTg91k1r+zPIw/c64BYOGunwxy3Wl51VmaiFTiTBJlxj5wQooAZ8d+jlP6paBtK6YcppfdRSu9bXV1N4tdOBItXBeJgdgwzOCVoYI4wonDGvHHEoZUB1uwLBeBDmqONM58TWsurkY0lkunS0cPJLSC+aqWgpp2QCX+gB9v0613DqVhh+7ObjGTlyoHT6PnvMwDYEzhNop4Cjkg4a6djYKmgIp0isVVqA3MEc0hnt/yQsMDibwJ4hlL6S5Mf0sHAQiv+PypPRASX07zkqBh4SotCK1tt3W/Ix7RlNzyeQtmuYxcJ80imR88I5z8AFlrpm2GhpNbAdOLjANPdqeQUYYzcG1rhxkF65AePd+WrZlKR1WSOEuY1eOQ8VJNOEZS1jHC/PK8SdB6TIgmP/EEA7wfwNkLIY/a/dyWw36kiDK1ESJfyk1vUwjH1TIr4moK4zgqnpGWgW6PIWY0NT4ycP1hkidrB0hFoawDRMe2mIGm1LFhNMY9cECOX5zdxtloDfPVydDMd98irBXbeKjlFqJvC6/yjY+RhQ75cdM9xNS/u9m4FSlaTJomqlb+jlBJK6V2U0nvsf3+VxMFNk5ZHi5xTjCj654a9EDi5hBDUCu6JG44odjq6E4MD4lt7AeYpZFJMHoA/rVtS6nQswxHFBz/6VbwQo5nBeepSE//wv3wBz10Rt2WzZGfYA4tSQBQa8qI/UW1YI3SNoS+0wqtWZLIzeb73t76Id/3HzzqhyiD1noFMijjyxOWc2HN2JI0FoTZRaGW3YzgeOWCvwIUe+fQEs4Aj2tlJKbUzyIHQSoQCYlDC1kstrzjJzt2ujhF1Sw+B8aqKjZ6Bap7JnMYprEn8fPVyC//ls+fw9l/6zFihsZ/6yJP43Iu7+NMvXxR+n1UkhT2lKEPe6vtDKwCrUvJ65E5MtiDyyGWMPEms4QjP2g/p//6o+BzXeyaqecUpMa3kFKEh70U0hwHiqjZvaIXvVxRKFXWSJ8lCG/LhiApv8r45hDWioZs36sYNDpXwUs2r2LNvWrc93+uRxxvy1sBCJed6CYDbdSqJ5qnLTed13BzM0Yg6XvsXIsbuiXoEAO/cTr/hFRryol+TfM+TXOPIqpXp8NVNN6TybMSqiztMHGbIw+eh40yLCl8PZS2DjmFhZOdMeoaFnjEMhVaEMfIpDpUAFtiQ9wwLr/+FT+I/PfRi6HtOe35EaCUYoxbJnHKWPDExtz3fGyOPD610BhaK9jbSI98/T15yDfkrHp3pIJcafXSNIap5BU9dboW6KnVrCGM4EiahChHJyWY/nF9ZLmZR7xmw7P3zVZovtKLIqpVpwEXnyloGL0dcC/Wu6TsX5ZwiDGH2DDZ3QFPCprGkKaAU6NheO09u+0IrETMKZGjlOvnUM1to9k186OPPhTQVuFGNTHYGbtx2jCGvFVwFxO1WjEceo6rIQzrcy5vlad2zwrntrvN3O78XLf3L9aG/6fZ1DEc0pA3fjVA+BMRTo8whi30HPfKVItdbYddCXRBaSaUI8mpaeuQJc8WWiX7gpuXIwcb1gEde1sShFVaKmgl1+QLh1TWvQ18NxMibfdPx2jkzn+ycVR56bst5HUyIRcWroqoKujEx8mpeRb1r2FoO7ILyxsjLEWI7nM7A7SqUyc79s9vV8brTNQDAhRhDzociP3jLiu9rDk9kCw254Hrg57ESWM3xTl7eQVgXhFYAFr7ryWRnolxpDaCkCV5/uoa9riE00I2e3yOv5FiprxVYofV0cXMYEF5d885Qb2ilklMwomHHrT2woKZTIT2fpFhYQ35hr+d0WoUMuR1aCS6nmd5GuPywMwiPeeMsF1RYIzbIebPZx0oxi2zG3c59iseoKtrbcMMxTi1Rwpa1J2s5rJayuLAnHnwMsAatdIrgrpMVAAhNMOcVSlF15IC/yiSofMjhNzNfbnv7A3z7VNMy2ZkwWy1W8nu8mgMgHuQSrOmPWv12DAt5QQUTEPbIeU7EX7XCfkewm5t1dYo9/SRYWEN+sd7Hg7esIJMieD4wDaQVEVohhNhSo/4bjWuRi07CsQq7eDabfVxuDnC8qvm+P26oc3tgOgY8k04hr4rbwiUuwxHFXs/ASkHFajEbq09ztcXG7p2o5UAIi5l74Q9tUYxcFGoLKh9y+BARfiy7HQN5NQ0t8PCPksb1cqU5iB3iK/FzpTlgYlgRGip9YwjdGqES8MiBsNPUi9DdAcJOmcgjr/LuzkA3d0uQV0mShTTkhjXC1dYAZ1YKOL2cD41fchIPOfHNG9QkjxJVAuAY7suNPjYbTLjei5JmXWQij5xruHiNiFx6j6feMxzFyGC1SJCtto61MlslrRazjn40h3vbovObzaSQThGf4Y0y5E5oxfbIg/0EnIIqVlTkUErxlg99Gu/91YfxzKacFrUfuCzGaokZ1KCGiijMFWXIu8ZQWEMOhDXJdzo6SlrGtwLnK7BgCWJrYKE0pfg4MIeGfD/Dia80BxhR4GQthxuW8iEvLK4UqJANL31FQyU4J+zl3KXGAJvNgeOhexF1hAGsDJJpuHiGW2TDKwKJH6906Dh9mq2Wq32zVs46lUUcfl5E+Q+2QvNfD60IQ17JKUiniBMjD9YXc/KC68vLdkd3uoC9lTmSaJp9ViO+WmROVFBnPDipCXBDYyFDHnOv84oT7gjudA1fohPwGPLAftsDc2oVK8CcGfJf/8yL+J7feGSsMb/cZIb7eCWH49VcyJDHJR6KmhJKVIjGvHFWilkoaYInLjTQ0S2cWsoL9ik25B2BEWEPEumRx7HrkQ4da8jbOtbsIdirxWzoJudhk1LE+Q3O7YyKkadSBEsF1eeRrxT9iU7ADq3EeOQveFaPUZ2oEhdKqaObVM5loKZTIY/czVeEPfJgqa9ozBuHn3P+MN9phx/WlRyPkcvQSiQlTcHnXtzFpz0VKSJ4m+5yUcWJWg6NnukzjnGJh6LAkMZ55KkUwfFqDh97+goA4PZjJeFxi2rDRWWNchzYeLi3U80rWC6o6ESM7RqOKOp2LB1gc1SDHrkjvxBlyAPDRqJCKwBLfO84htwQeuSFMeWHvFxyo6xJQ74PBuYIxnCESo51ba4UVey0xSP39hNaEclVczQljWI24+RBgjor3v2KQiuiUG5SzJUhf999J1HKZvDQc/F65ryrbqmgOqEPb2w07ukoki6NW24BwN0nq47Hfcexcuj75Yjp6aJEW3EfybCjjjMsWc1gyY5Ni7zy9oBNX+Ke2Fo5i92O7lMz7OgWCBFrawBhD7o1MKFmUqEkJsBWCLtdHeZwxB4gIkOezcROCHplr4eCmsa9Z2qhlaQkTPDBulLKhmPkXCq6sL9kp6irk7NSdB/Wu93wOVYzKRTUdKjbWHrkHpR0CieX8k4nVxT8xFXzilOS5L0p2oPwtB+OaE5jVAs35403LwNg3WDVfHg5HRUjd1v/3RO8n6qGo46rUJeOnJcJhEsA10pZjKhb6w24q62osrBgaEXUns9ZLrLQyl6XJWPjkp1R4cGdjoHVUpZV48ixf2MJGnLR380rYcvRlBTUdMpnyEcjypKdMfc6H8eoW0M0eqbwYV3N+2cQ6BarmplWMxAwZ4YcYMnFcZ7KXpeV9GUzaU8y0uORx0zqCN64gHjMm5d3vmYD77n7OP74+98o/H4pG1ZNA9wyJl9oRSY7x8INeSGbcQy5SKjIG4IBIJyp2BlYkfFxwDa8gRh5VNJqvazhSmvg1KoHK5j4MY8oS3SL2O2wCVNxk94lLiGPXFCOutc1UMq6s1MBlsgu5zK+5jt+TkRKmByucsk7hIPlxvxYvHXk7ZgS16SYO0N+spYb75H3DGcZtVZiY9euJbTS1V2PKWrMm5daQcV//O7X4a6TVeH3ozxy0QkWxeglfrgeRjaTilwiA64CIU9AcQ0cb8IzLpENhOd2NmM88tPLeRjWCI+c23O+Du/PHsAcobfCk6Rxk94lLiGPvJTFbtfwtcg3eoZPKoFTDigguhK2Yzzyju44hidq4So1JtvheuTTFswC5tCQn6jm0Nat2O7HPY+gfyadwkZZw+WG2+0Vl3goZDOwRhS6XQIWNebtWihpCnrGMNQOLFJVjJpKI3Hp2oMgCCFuckkwTq/ZD4dWAFZ3zPF21ooIzu1s9a1IQ35muQAA+NuvbYMQ4GQtbMh5d3A/0pCzuCtfPchh3PGEPXLVSXJz9gLt+Zxq0JAb0bo7nJViFvWeifO7bNXFV/y+/eZV3woxrm8lKebOkK/by9UtQRsupxFoxz1Rdb14SikaPSMytMK9Y37zRo15uxaC++SIKiYcxT3ZFBRJ37Sc5GS8R24b8pw/tOL1ctuD+ER2yR6/x1dooqESnDMrzJB/4aU9bJQ1YUI0H3N+LU+S1Jn0LodxxxL0dp1Vl+cBGOWRBzXJ44ZKcHgo5Usv1wEAG4LwWS0vPfKx1Jw5mfGT6b0aFydqbly9rVswhxQrhXCSAghLl0aNebsWojTJO7qFbCYF1VPPHqWJLnHpeoSNREkrDjfk3NhrShplLeMrQeyOyX9UcgqGI+o8hIOaHV6OlTXH4755tSjchhsJUWiFJ0lXiipWeJeiDK3E4lQw2deDI5XgKUHc64rPWdBzjpOr5tyyxs7rp5/bwlrJr6vk7Den+hQQ245HLg25Az8hdYHmLyeYnDxeZUkoazhyJmcvCZ7QgHtB8D9+1Ji3a8FRNQwkPNsCI8JjqNKQR9MzLMdgsqSVWFu60WdJrownybVW1vzJzjGlpRVPy7U5HKE9sCINeSpF8PrTVQDAu157TLgNN+Si0IpTXVFQUbXj+lKbPp6eOYSSJo4ztMJXXR13xd4IOHackEdur5LiqlZuWWV9IntdA689URFuU83bCoi27Zj24GVgDg25q2UgNuRsjJvpm/5zoprHcESx1dad0rNgIT+H/7G5IY0b87ZfghoNnI5gWS/HgY2nZwx9yedKxPzFZs/0CSUBLE7ui5GPKS2tekI3DcfQRntWH/zW1+J9957Et77uuPD7PLQi8si9OvmakoKSJlLSeAw93fIlJ3lIinfYGtYIHd3CkuDhW8kpaA8sJx/latNHh1YqecV5aLzellEOEnQ2ZWhFgPtHEl/gujWCOaQ+A8njWpcafVenIyq0ElC8ixvztl+cGLkgtBJ8QMjQyni6gTbqqPmLjX7YE1vzNIxQStEx4ssPHVnSvhmpMe7lzEoBH3rf3ZGVDzkntBI+v16dfJ7IlZLG8XSNIQqemHZZ87fpc4evGhEjB1xDu5+qFQD46XffgZViFt94+5rw+/xB7xjygYm0PVRkWiTi6xNCfgvAuwFsUUrvTGKfUeTVNNR0KjK04sSjPAbyZM3t7uRL2qUIjzwoXRqMwV0PjkceUFWM88hlm340Pd3CcU+SqZJTQt18gD2nMec/z6ulLLZaOihlzR+Uxq+2vC3XmRRrGooKy+2HuBi5M4LQPp6ypjgVDxIxPcPyhUKCbfrc4YvyyAH2wK8VVKdqZVwY9f0PnMb7Hzgd+X1e7spXcK2+hbI2PS1yIDmP/L8CeGdC+4qFEIJqXkGjGz2oAYAvtMK7Oy/W+47k6XLEzRg0pFHa5ddCVLKzrVuhskbRMAOJn6CwUZxHHg6taNCtEVoDy9MBHG2YXTU7w3EeRPHW/VKICa0EJ1eVImL/Epeu7vfIARYn52WbvONXWH6Y91c89bhHPkGFmvd38ZLYViDUOw0S8cgppX9LCDmTxL72Qy2vxnjk4W7JvJpBLa/gcqOPTIqglM0IS8OAcLKRd2hNUgMaacgHJopZf3VDIWJyu8SlZ1i+ZWo1r4YmsgDs3FUDlQJ8DN92e+AYU5G3xvF65ASTe+Q5J9k5vkGsrGVksnMM7Frw35srxawzJYiHVqLKD73bdAwLaibl6wC9Hpzwb5fPbxXXsSfJgcXICSEfIIScJYSc3d6OF70aRzWvhPR+OVHtsMerOVxu9HGh3sdJgdQsp6BmkCLuMrc1MKEpKWGZ0X7JZtJQM6nQTcmqa/Y3N1TiwvQwPHHRHJMe9jZRUUqFMXLeMbnV1l1vLcYwa0oampLad4x8HGomhUyKRIRWTGQz7rUW7DyUhGGlqP57k6lQ2h55zDkLeuTj5Br2C8txuA+Iva4+0cN/PxyYIaeUfphSeh+l9L7V1dWJ9lXSlJjRaeIqE65Lfn6vhxuWwt1YnFSK+G6guE6+a6EcaNNn1TXh8sOcwuaGSkMuxhqOYFgjXxyzklNAqX8uasc27MEb2PXIdccwj7vJlgtMKOlKc4CyFr2a2y85NR0ZWvHWGldyiuNQSMT0zSFyAY98vaxhp2NgOKKRs1OBsL54nPzCtZBOEZQ1xYnP17tmrLOQBHNXtQJwoxjlkYtj2ry788JeDzfEeOQAKzlreE5uEmVDwYcPb8MPeuTu3FB5A4voma7yIUfU3RlsBuLwzr+tlu5UMMWFVgAmfrXZZBOgjgtasq+Vgioe58eTYpxyhI69xKWrW6EY+UZFw3BEsd3Wsd3WI0OpQe3wuK7da8Xb3bnb1SNzckkxvQr1KRIlQgVElwueqOacrLRoio+XSl51PfJBMk/pYtb/8IlTRJNTgqLpOxK2fo8c2J8hL2sZZDOsPE1JE6RTZGyjxrFqDk9ebKCQzQgVDa+VfIxH7n2wl3MZGNYIA3M48SpgURFN9OHlxpvNPi43+jgmUCgEWMgzp6Sd66bZNycKm3mp2jakbwwxMEeObv60SMQjJ4T8AYDPA7iNEHKREPJPk9hvFEH9Cy9RoZU7PV1Y90YU8nOqOcUZ1ZTUU7oUmDQTb8gzsiEoArccNN4jr0ckuQghdgniAHtdduOmUvFlYdwjZ0Zhco88p6aFnZ1MzM1jyDX/0v8oMTCH+MhXLkK3ou8DVkIaVibdKLNztNkc4HKzL5yjy/Hm25qCnMr1wsf+8QbEpZgmsiRIqmrlu5PYz34paRkMR9Tu8PN/hI7O2reDmecHblpCXk0jr6bxmuPi1lpONa/g5d0uAOYlvWo9PL7teo755Z2e83U7pm1XpIkuYXBPNqeMCa30+TCB8A3Eujt15NXhvpa8xyqsZFG3Rr769eslyiNv902c8siiOjHcgenMHT0qfP/vPIrPfG0b1pDiffedEm4zMEegNNzAw1dNm80BNhsDvPZENfL3eEtXk4qRAyxO//iFhlO5Mm2PfE5DK27Le9CQtwdm5ET0h3/sbdhPTX41p7hxs14y069ZjFwUWglfOMFhBhIX71AJjji04tci97JW0vDCdgcpouO0LT0bh1eONkoM61rIqxmhxIQo2QkAzSOY8Hz6chMA8NXNVuQ2vNci6JFX8wryahovbLWx2zViH758CMRoRGOnP10rxysadrsGLthDRqIkQZJiLpOdUSJU7L1oNbtaQY1t/uBUcizJZFgjtHULlQTiZsG4/tjQSoRe9VHHETYak+zknpBoqbxWZnXG5/d6OD0mXwIAX2+P8gOAB29dub4D9xAdI/dfu+WY63yR6eiWI9/71cvRhlyULwGY03bbRgkfe4oNRBcNf+Bwj7xjWBhR8VDt64GH4L5oDxk5JdCmT5I59ch5g034Ak+iFrSSV0EpcG6nC0rdgQSTUNIUdrGMKFIpgo5uOu8HkVOCouGDi703r0jKtt4Lj/fiHK/mnAfp6ZXxHnkhm8H3v+Um1HtGIhVMovLDgTmEYY18+w+Wxx0VXt5hYc2lgornrrYjt3M8coGGyWuOl/GV8w0AwOtuiM6J1fIqvnKh4TSUJeaR2wnWR87tIaekHXndaTGnhpzHDkXdcZO3w/IBBHx5l4QhL2sZUMq6x8qeUkSRGJccwBxNT+CRi6Rsm4L2fM79Z5ac1/vxyAHgJ951+/UcrpC8mg7N7Ay25wNHN9l5zjbkb7xpGR99chO6NRQ25PGCgJzAkN91ogrgPADgjGDkHme9zNr5uUZ9UlUrx+0E6zObLdy2Xpqqzgowp4a8HNHyDrBl2VppssQQT5Y8cdE25Akkmrxt+l4xJJEhl8nOaEQxcoCFUIIeedRNefdJN9n9dTcuCbeZJqI6cpHYG5eFOGrCWby9/q6TFXz0yU3sdAzhSLWeEyMP30Pvuec4vrrZwg1L+VgjulHJgVLgiYsN++tkksonazknnDqu3DkJ5tKQu8lO0WT6+Ikv+2HDNtyP2yd3NQGPnItjsWPO2TorGaQFpW95NQPdGsEajnxDESTiGDnAlsTeaS/BKVFeMukU/ugDD2AtYhzbtMmpaQzMEYYj6px/R7Pa45FnM0we4Kh55LtdA0qa4CY7sbzT1oWGvKuHm8M4mpLGz77nNWN/F3faHrvQ8H09KZl0CqvFLNoDy5djmRZzaSWiRKgAO0Y+YWhlvayBENcj5/ockxA85k7MA8cV7pIJzyB9Y4gUAbIZ/6UbVEBs9ozYxPYbblrGjfuIj08DZ0qQJ7zSEnjk7Oujp7ey12GrKdGMVS+ORz7B9K5122n7yvkG1EwqUU2Un3zX7XjgpiX8wzfckNg+o5hLQ55X00inSMgjH43YoIBJpvkATNhopZjFcESxXFB9MzWvl+BwibiVgyOlK6VsQzDZ0rC2c9CQH4Ti3PWSc6Rs3fPLve6gE1LOHb02/d2ugaWCa8h3BFrzgDv1fhLZWe6Bn9/r4VhFSzSW/fY71vGHH3jjgaz65tKQE0KEbfpdwwKlSETBjCfBXndDdeJ9Ad4ELbsp27oZOXVITgmKpmdYwuSW15APRxStgbmvUtPDoCCY28mvZZGkwFETztrr6lguqk6lR5RH3k/AI6/mFeeBvzHHTVdzacgBsd5KXG32tfKWVzGFxpsSaAABwgnadkwISE4JikbUzQvYUrb2/MVW3wSlCGmRzwo8tOINnUUNMGGf62h55HtdA0sFNqG+lM04w2CCOFUrE3i8hBCnKewNN00/lj0t5teQZ8MXeBKDkjn/+MEz+LbXn8A/efDGifcFhAcwx4VWpEceTc+whDduzaMt7eqszKYh56GVvukPrShpAk3x35JHcdzbbtdwpBPiBPL4gJFxWjnj+K77mQTAt7/+xET7OUzmsmoFYCc4eIHHtb1fK2VNwS99xz0T74ejKWygAH/4xHnkwSlFEhfRIAEAWHamp+vOdTHroZWgR17SlFCMtpzLHKmqFWs4QntgOaWjcSsSNoR78vjzd95/Ct9y17Gpj2ObJvPrkQuGS4jGvM0Kwbh+exCt4eKGVsJVK49faOAn/vQJWMPR9A52humZYdlSAFixPbjtju5OTp/R0ApfcfmTnZbweijZmuQipc9FxKmnt2voSzHj7np6eMzb9cDuzdm8VvbL3Bpy0XAJd/Dy7BlywBXOMmwlvXHJTtHwgff/5iP4gy9ewGe+Nn5c3me+to0f+J1HF8ros5s37IWtOBUOhlNPnlSXXtLw8+51RIKCWZyypsAcUgzM8Dm8sNfDwy/sTO9AD4HgqroscNg4SXnki8DcGvKSFl5ydhJMdk4DNlzCcqorolrIo5KdW+2BEzb4i8cvj/19//qPHsPHnr6Cv1ugm100SABgA3cB1jyybZerTVtx7noR5UBaEZOo3O5O/7VuDkd483/4NL7nNx4RPvDnlVZA3jmu/LJnhNVPjypzbMjDwyXi9EtmgZKWQVu3nLrYlYhGo2wmhZRgbucLVzsAgBQBXrL1KKIYjSgMi3lxH3/6yqSHPjP0BIMEABZGSacIdrs6Nht9lLKZmV0uOzmQQPkhN9peovRWuCAUAHzhpd0pHOXhEKw8K8WUX/akR+4wx4Y8gxEN3Ax8ekwCcbNpwOP6fFZk1FADQohwStAL28yQv+3V6zi/1xP9qMOlRt/x6C/W+5Me+szQNYbCOvJUimCpoGKnbWCzOYgc7zULZDNpqOlUKLRSysYMCA54pc9dceVdH3lpb0pHevAEZ+6W7XCkKEfQs5vDJHNtyMN6K1y/ZNJypGnB4/p8/NNyTOu/SDjr+asdlLIZ3H+mhkbPjG3d5sJDOSWNK81BAkd/+FjDEQxrFHnzHqtouNzs40prEDveaxYoaplAaCXKI8843/fy3NU2SloGZ5bzuNRYnAe1yCMPOmycrmFN1NW5SMyxIQ8njOL0S2YBXrXCRfPjNFxEUrav7PVwZqWA07Ys5/ndaK/8aos9LO4+VVkYQ94zo0WSAODGlQJe2u7icmOQmPjRtChk086D2rBG6JvDiBi52CP/2pUOblsv4Vglh80FOb+AdwSi7ZHnogXyZGjFZQEMuXuCO7o1s/FxwK1a2W7ryKSI0APjFAQe+dUmM1AnqsyQbzajPbErtkd+96kq2rq1EDXpoqESXm5cKeBSo4+djlgtb5YoqO75dcIJEVUrQFjK9mK9hxuW82ww9IJ75EB4RQKwHJIMrTASMeSEkHcSQp4jhLxACPnxJPY5DtFwifZgcsGsabJR0TCibA7hclGNFegRTQnabPZxrKI51Rh7Ea3LALDVGkDNpPDqDTY4mhv2eaYXMaOR45VTiJsKMwuUtIxTZdUK1E4HtwP8yc7hiOJqW8fxSg7HqhqutnUMR4tRZ97WLWhKypnsVNbEK5LhiEK3RonUkS8CExtyQkgawK8C+PsA7gDw3YSQOybd7zhEwyXa+uQSttOEh0QefmEHG2NiuGwAsxsX7OoWWgMLG5WcI7UZpUEBsBj5ejmLdXvIRpTw0Czx3x+9iF/862cjv9+LmNHIuedk1Xn9+tNV4TazApvLGvDIBdeupqShZlI+Q7bVHmA4ojhW1XCsksNwRLHVnv8HNcAeWN57OCq0Mu6hftRI4nH2dQBeoJS+BACEkD8E8F4AX01g35GITnBnYOLkDC+pz9jiPMMRxW3r8WJcwWQn96g3KlloShrFbCZS3hNgjTErxazzd5oHTesf+W+PA2DDjrlomRe+QomKi96wnMcvfcfdOLfTnXlPrZjNODkOHjaIckLKmuILLVxusGvheCUH3S4x3e0YM5/g3Q9BDaKo0Mq4h/pRI4nQygkAFzxfX7Tf80EI+QAh5Cwh5Oz29viuxHGIkp3twWzHyL0JuNs2yrHbej02AE7CcqPMbtblouqUMYpo9k1Ucopwwvws4o33P/yiuIFpXLITAL7t9Sfxw998W7IHNwW8WkHuvE7xtVvO+dvU+d9qo6I5YmHe6UhRPHGxMfO5Eq45wykLqtMA96EuPXJGEoZcFOgNBewopR+mlN5HKb1vdTXsbV0rOSU8XKKjz3bVSibtxqxfczzekBftGCqvn+WVCfxhsFxQY2Pk3JDPyyT2J+1pTIA7RT0IT3YuQjdfJafacrvUHfMW65G7548/1I9Xco4wWKMffS0AzEC+51cexnf8+ueTOPypwWbaCjzygfTI40jir3ARwCnP1ycBjO8fn5CgCNVwRNEzhjOd7ASAP/vBB3H25TreMGbobzWnwBpRdI0hitmMUxfOh8MuF7O4ENMU1BowQ17KZkDI7Bvyy3blxetvqDpT1IPwFcok+tOzQi2vwBiyssNWTNUKf9+7orrcGCCvplHOZaBb7GfqYzzyx+2ZlE9fbqHeNVBLcKRZkrQHJo57mrmcHEE/wiOX5YcAkvHIvwTgVkLIjYQQFcB3AfjzBPY7Fq8h78x4ez5HU9J4060rY0dKVZ0lM/O0Npt91PKKMzZqKR/tkY/s4QplTUEqRVDKZmY+tHK5yaps7j1dw8u7PWEVBp+oswgeedUTEmn1LaRItFGq5BQ0e+655tVLhBBHr8f7fRHelv5XxnQFHybtgRXqcC0LJKu5Ry7q8j2KTGzIKaUWgH8J4OMAngHwx5TSpyfd734oZd0lZ1v3i+3MO86S2fa0rjQHvkqXYNzUS8ewMKLu2LBKfvYH+F5u9HGimsMNS3kY1gi7gkQu98gXoQmkknPPb7PPlA+jHu5LecX30L7cHOC4ndTPZtLIq+mxHvkLWx3352e47lw0cKWshYWzuk7VymLc75OSSB05pfSvKKWvopTeTCn9YBL73A8+j1yPz/zPG7WAId9s+rsVKzkFA3ME3Qq3LjsxVzt5FhxMPItcbvRxvKo5QmLbAkPeN4ZIESYqNu84HnnfwE5Hj9TdAYClQhatgeWIoG02+r5roZZXxyY7t9oD3LbO8jOXZlR7x7RDTcEQUykXlrJ1Y+Tz/1BPgrm+I0qeJ/WsKx9eK/xG52PLmEfu3rxu+WW4CsGRyc25wkOzPi7sSnOAjXLOpysepGuLJCU56fyw8IZWdjq6MzFeBG8Aq/cMGNYI2x3dtzpjD+r40Mp2W8dNqwUUs5mZ1WaJkqEuCySrezMukHfQzLUhLwcm7gDJzOucBVyPzYRuDbHbNXCs7PfIAXFZYbPvT57Ng0e+1zOwXFQd/ZkdQQNTz7AWJiZa9YRWeM1/FNxb3+0YuNoagFLguOehXs0rYz3y7baOtVIWJ6q5mQ2tRI1qLAmGyHARLSmaxZhrQ+49wfUu+39pRqfCXCvOjd41sGULYK17PfIInWr2nuXbppDNOB7MLNI3hhiYI1TziscjFxny4cLERL0rru22HmvI3U5e3S1D9TS+iZQyvQzMIVoDC2tlJu8QV7Z6mASHSnDYoPVgaMVCJkWgpufahCXGXN8V3uESzuT0BTHkaiaFgprGXs8I1ZADbvxb5Gm3AqGVgpoWyoDOCt5zV1DT0JRUhCEXj3mbRzQljbKWwSu7XXR0a0xohX3Pa4C9Hvk4Q87lGVaLWVTzCp670p708KdCUDCL482Fcbo6Uz5chDBbEsy5IXe1ius9A+kUWZiqFYB54Fst3enkCyY7gXCjBIDQKLl8NjPT48BcQ84qN1aK2cgY+aIYcgA4Wcs7ZYFxksYrdox8p2M4CU+fR67FG3JnIlVJRTWvzmyYLUpzpqQp6JtDmMORI6Ylx7z5met1iXe4RL1noppTZnaoxPVwvJLDpUbf8cjXy/sMrQxMEAIU7URQQU3DHLqj32YNHt/lJZdRXas9Uzyvc145WcvhebssMG6iUSWnIK+mcanex2azj5KW8SX1uXa9aIoO4D7sKzkF1RyLp0dte5jEeeSAmwwFoidFHVXm2pA7g2n7Fhq92e1Wu16OVzVsNvt4eaeLpYIqVIWLSnbyZiDAbWOeVa88GBar5lWnEcpLTxfP65xXTtbyzuvbj0VLNhBCcMNSHuf3eji308UNS3nf94vZDMwhdQS0gniHNdTyKqwRjfXgr4WubuF7fuMLePSV+sT7cgoWAp52UaCr1DfkmDcvc23IlwtuYmyvazgCQovCsUoOW20dz1xp4xaP1jYgljflcJ0VjmjY70Hy2597Gd/+nz8XKdjEm1n4+avlFeyJDLkxRE5ZnJuXyxoD0YO4OaeW8riw18MLWx28yq4H53DDF/X39XY9V65BZGs//NWTm3j4hV188KOTi51G9YI44+4813pXX5x8SRLMtSFfL7OLf6s9QKNnOkvzReFENQdKmU7GzWth2dugmBKn1Td9SnqOR34IlSsd3cLP/PnTePSVuq9N3EvDDqNUvR55VzTaa7E88vfcfRwA8M13rI/d9oalPJ672sZmc4BbAxLI3JBHedn8/aKWQTWXrCH/1DNXE9tfe2Ahm0lBDTR8ccPu/XyLVMGUBHP9l1izY8ZXWzp2uwbuOVU93ANKmDs8Com3Cgx5JZcRjsCaJY/cq2T45fN1vOnWldA29Z6Jgpp2buBaXkVbt3zJLYAd/yLFyGsFFU//3DuQ3kde51Ue4/2qNb9HXhhjyHmMvKhmnPBjfYw2y365sMcS8S/tdO2qous/P62BeDCMSLK6a1g4reZD2x5V5tojL2YzyKtpXNjrYbutO/oTi4JX6vZdrz0W+n45F9agANwYOecwY+ReJcMnLjaE2wTzG0uFsNdoDUcwrNHCLacL2YwjhBbHO16z4bwOPgxFyUAvHVunP5UiievTX2kNHDVK3u9wvbQHpk/CllMSaJLLeZ1+5v4vsV7W8Jgt0XmytliGnBCCX3//vWgPLF97PqeSU4TVHa2B5ffIndDKwXvk53a6IAR48OYVXIzQ+NjrGb76f1cwzHDqq/czVGKRqeZV/Ptvfy1WS9mQ4R8fWjGdbcbF06+FgTnEXtfAG25cwiPn9rDV1nFmpRD7M5RSUAphdZlIMAsQe+SdiG2PKnPtkQPAaimLpy+3APirABaFd7xmA//g3pPC78XFyL2GPO+EVg7eI39lt4eNsoYbVwqRreH1nul0OgJu9YpX0W+RhkpcL995/w1426vD8fRxoRWvgRy37bXANfLvtkOa+5kb+p8eehH3/h+fFK4O24HpQBzXkLPrYch1+qUhd5h7Q+6NHZ9YMI98HOVcWGd8YA6hWyOft+J45IcQI9/tsvbz49UcWgNL6Ak2Qh65XzAMcMNCR9Ujj8MJrcQkO7nRG+e9Xwu8v+GukxUALFcVx3BE8aGPP4d6z8SffPlS6PtRHnk2w/In3CPnDsmiCOQlwdwb8ntP15zX6zFtzotIJcdUDb3NHfxiL4s88kOoWql3DSwVVGfqi3c2p3cbb+koj5c3fIZcjvaKojAmXNL2JBHTKYKcko6Mp18LvGP01rUS1HRqrEfu1UT/vGAua9zMXe9wiajGoaPM3Bvy+8+wkWnvu/ckMkdMQKesKc6IO05L0Oact2Oqh+ORG1guqM6E90sN/81uDUdoDSxf6Sg36ntdf3ILkKO9ROSVNAiJTna2ByZKHgNZ1DKJhNkanvr/laLqaLpEcd6eTLRayvqMuu84I+YJlDTFCa24dfGL1TcyCXNv+U4t5fGJf/0W/OK333XYh3LgiCoQgkMlADb0OZtJJRYj/9LLe/jNvzu3r2337PmQvOY/eLPzY/d65Dm72cnnkZtytFcUqRRBQc2gHRda8RjyUjYsQnU9eOWSK3l17FxYPmP2G25bxbmdLqyh24nK495RXrZ/iMxiTQNLgrk35ADwqvXSvmpxFw2RIXdCKwHPhknZTu6RU0rxvl/7PH7hL7+K+hg51IE5RM8YYqmgOgp+wRFuDW7IPeWHhBDU8oo/Ri6TnbEUbb0VEcHYcyFm22uh0TOgKSloShoVQb4myIV6D3k1jfvPLMEcUsdDB7xdnXGGPDBERhpyh4Uw5EcVoUceMZE9r6YT8ci9S+LPvbgbuy0vjVwuuPK0uwHjz5fnlcDx1vKqr2qFGx6Z7BRTyKaFCUweevMavXGyt/ul2Tcd3fz9DC+5sNfHqVoep5dZiaJ3UlGU8iHHq0nuxMjlQ91BGvI5pixotw4OleAU1GQ88pc8DT5fOR8vlMQNea2gghCC5UI2pDPOwydBeYVaQDjL8dhkXFRIUVPQEZxfpz0/oJaYRGil4SkbZaWw8fvcag+wXtEcOeZNT75kXAJTNJ9XeuQu0pDPMY4mudAj91/k+WwyHjlv6qnkFFxpxVcpcA+N63usFNWQznijF46RA0CtoPg8cn7zLpLWSpIUs2l0BF2+Ik+3lFSys29e0zjBPTvxzeWYefkiO8744eniZKc05JyJDDkh5H2EkKcJISNCyH1JHZRkf3Alu2CyM2OXmHkpqJlEqlYu1nsoqGnctlEa25LtlU8F2KSbqBg5X6JzglK2Hd1CTkkfucqk/cJi5DEeeTC0koBH3uqbzkO6kmPDH+I07/fsUlQ1k8JKMesrRW1HjHnjVPMKugbbf7NvIkXk4GUvk94VTwH4NgB/m8CxSK6RoppBioRj5CUtPGk+r6YTSXBdrPdxspbHRlkb65G3AsvllaKK3YBH3uwZICR8A7NkpzsAoT2w5FI6hmJWEca9Rd5rIcLoXyuNnttBXHYmVom9cm/iG+Ba+2GPPOocL3nEvrikwyINkZmUiQw5pfQZSulzSR2M5NrgIkjBqpVgohOwq1YS8Mg3m30cr2rYqGj2RPfoSTPBCprlYha7Xd33M3XbGARvylpexXBEnYdBR7dkciuGYjYdmjQPiGPPJS0DYziCbk12PbQ8dd/jxLh2PYlvANgoa9fkkfOf2+sarIFswYbITMqBrVMJIR8ghJwlhJzd3t4+qF+78FRyihOeAGwtckGcMa+mE1E/rHdNuy5cg26NYhNczsQX++ZcLqgwh9T3M42+KRyY7RXOAoDOwJQeeQyFbAZdYxh6sLYFZX28qWoSr3wUqIYZZ8h5qarrked8HrkzZ1bghHh/bq9rsBDNgs0emJSxhpwQ8ilCyFOCf++9ll9EKf0wpfQ+Sul9q6ur13/EEh9Bj7w1sEKJTiC55TQvOeOqhNud6PBKe2ChoKadGn8+BWen68bJGz1DePPWHL0VO8GlR7dvS9jDcjgKj3vrCJKIRT6oYYI4uat3krb3Hy+luxsw5BsVDe2B5YSD9rpMoTGbESez+c/tdg3UewZqBVm95GXsnUEpfftBHIjk+igHDXnfxFopPIQir6bRN4cYjuh1N0+ZwxE6uoVqXtmXrnWw5XrFaQoycLP9LG/2Tecm9VLN+wcgtAdWaFalxIU/5NoDyydzK5qDmYRwllvWyM7vOFXFuqcUFYCnBLGPW9dLqPcMnwJmEMcj7+io90zcK0MrPmQJwJxTySmh8kNRaIVn+Pvm9XvlTjmhx5DHjfgKdhQuF22vylO5Uu8ZTuWDl5ozW9IOregy2RkHP7/BhHZHt5Ai/kaqJAx5N1AO6uwzwiMPagBx7R0eXqn3DOEDnVPNqyDEEyOXoRUfk5Yf/s+EkIsA3gjgo4SQjydzWJL9Egqt9MWhFa5REhcnb/SM2PIxbxdmdV8eudiQe5uComatOlUKXTe0IpOd0UR5xFxR0FvFxB+Ik1Qx8eYjfn7HSekGk66OR24nPMcZ53SKYLmg4sWdLqwRjTX6R5FJq1Y+Qik9SSnNUkrXKaXvSOrAJPuDG3JKKczhCH1zGJnsBKKnBOnWEPf8/Cfxv/7BlyN/V7PvdmFeT2hlyfaqeFOQNRyhPbCES+qypiBF2MOFUirLD8cQNfnHK2HrbsuuhSiRrf3APW++Ehg/N9SEmk45YZ/1sgZCXI98b4xHDjCBvIdfYPK33KOXMGRoZc6p5pmUbUe3Ytuc82OGS3z62S0AwMefvuprxPHCPfJqThHKAwRpB8IhmXQKtbyKXTvZyUsLRaEVXlpZ75loDSwMR1Qup2NwvGwjGFoxQ0liHteeJNnpdtqyfSvpFDQlFeuRe1eKTlOQ3aZf74qrl7zcuFxwrreb1+JHyh01pCGfc7yesVdWNEh+TGjFK4D11KWWcBvHkOcVpFMEpWy84l1PH6IY6L5bLrhNQfUInRVOLa9ir2eEStckYbiXHdRbEU3dSSK00hWUNRY9wlZBRCuDYxUNm60BdGuIjm6FZBqC3OiZB3pmWRpyL9KQzzleQ75ne7pcMtaLa8jFHvn5vZ7TdHFutyvcJthOX8nH62t0DcuZTsRZLqpOjNyJuUfcwNW8gobdyQdANoHEUIhINoqSxHzQyEShlYBHDth6L5EeuRl6oByraNhs9HG1ya6HdcGAcS8322Mds5lUaAD1UUca8jmn7DHkPPa8LDB440Ir5/d6uO9MDZqSwss7YkMebKePE0qilKKrWyE9DKa3YtjHbHvkEU0gtbyKetd0PXIZWokkatxbR+AJp1JkYr0VkapiUcsIhbsA8crgWCWHK80BLjaYLvnJanzc+xtvX8O/+Zbb8X9/1+uu+7gXFZk9mnO4d9zomY6HuxLrkYdv3tGI4uJeH2+/fR1nlnuRhrzR97fTl7VoQ65bI4woQh75SsH1yHfaRuTxAizk8sxmy5XDlYY8Ev7ADHrErYg5mIXsZNo7Xd1CJkWQzbi+YJRwF8A88tWiv7/hZC2Htm7hqUtNAOOHp2czafyzN9903ce8yEiPfM5Zs0eobbUGTn22KJYcF1rZauswhiOcquVwainvSNUGafRMn/dc1KInzXQFHhvAjHZrYMGwRrhqi26tRgzN5sJZdSe0Irv5okiniFAYraOHQxrA5MMlOrqFQrCsMatEhmtEHvmr1ksAgL+xE+0bY0IrkmikIZ9zlvIqMimCrbaO3a6BspaBmgmf1rxtUPsCQ87naK6VNayVstjuiOVpG30TFY9XXIoxBlFT752Rb10dW20dlZwSGe+sFVT0zSGuNHUoaSJb9MfA9Fbc82EORxiYI2H9PRtEIT53V1sDvOdX/g5/8+zVyN8lkkwoaRlnnmYQUbLztg1myL/w0h7WStnI9nzJeKQhn3NSKYK1UhZXW8yQixKdABx9ctFAAcfjzTMNlb2uuDGoGejCLMQYcv57glPvNyrs+DabA2y1B1iL8MYBJnsLAE9cbGCtpIWkeSV+mJftPqgdCVuhRx6dmPwPH3sOT1xs4v95+OXI39UVGPKouDsvjw165GulLMr2e3efqkb+Lsl4pCFfANbKGrbaA2y3B8JEJ8CW3tlMSuiRu4ZcwVqJLW93u2GvvNE3fc07PLQikrLlsdJ84GY/WWN6KRfrfWy1dSc0JOKmVRZTPftKHTetynKzcQTj3qKEJCduWPMTFxsAgMcvNDAciWWKu/owNK0p6sEeNViZEIK3vXoNAPD229eEv0eyP6QhXwCYRz7A+d1erLAUk7ING3JXQ8VVNRRN/wnFyLMZmMOw4h7g0eIIeOQn7MqEi/Uetlq68+AQceuamxy7aUUa8nEUVL9H3ApMaPISVfOtW0O8tNN1chmXG+J8CWv28u+3pPHrIVjLHj1Y+Re+9U782Dtfjffec2LMp5PEIQ35AnCsouHF7S4uNwe+pokgeVU8q5HrmVTziitP2/YbcjbkwR8jj2oLB9zqmGCMvJDNoJZXcG67iyutAU7GVCpU8yq4UOPNa8XI7SQMFqP2eOQxnb5RoZUXt7oYjqjjIUclvlloxf+QjhLO4vrzouMoaQr++VtvlnXhEyIN+QLwmuMVZwl8Y0wIIq+mI0MrpWwGSjrlxKy3Aoa8PTBBKUIxckCsr8FDK6JhySdqOTz0tW0MRxS32pULUfzzt96MV2+U8PU3r8RuJwknO6NCGkB0WOz8HqvpftOt7O99KcIjj4qRe38vJzi7VZI8sgxgAfAmiuI9cnFopdEzULVL+9xJLIEhyZ72fI5XAzsI98gLgvjsnccreOrSBQDAbWMM+Y++49X40Xe8OnYbCaMQiHs7czCFdeQZWPYgCq83vN1mJaH3nKqCEBYCE9EZWKFzy5OqweshTgNIkgzSI18Ablkr4nhFw9fduITbN8qR2+XVjLAhqN4zncYiTUmjmM04E104jX7YkJdiNDu69gNDNOn8jTcvO6/jHjySayNYG85rukVVK6WIh/BWW0eKsK7L9ZImDK1QStE1rsEj1+PncUomR/5lF4B0iuChH/0GYf24l7yaxpVWuM63EZjOslRQnW5K7zYAUMm5MfK40EpPt0AIoCnhY3rzrau4/VgZ73/g9NhjluyfgprBwBzBGo6QSaecWLUoyegVzvI2ZG21dCwXs0inCNbL2VCuBGDDSUY07OnHSekCMrQyTaQhXxD2YxBzkTFyE6c9anJLHoVCTlPgkcdNmunoQxTUjLD2e6mg4q9/6M1jj1dybfB8RFcfopJPoT0wQ230zrYRLf3e2v6a4IEOeLTII0IrouEWgPTIp4l0h44QhaiqlZ7hkxBdKarh0IpHi5wTZ8h7huUbLyaZPs6UHvscc+VD0cM0Kp693dEdQ76UDz/Q+X6BsEceFa4JDpWQJI805EeInCDZ6U7pcUMmLLQiTnZWAlorQHSMXJTolEyPoAKiSN+EU7KHSwTPnbe2f6mgOs1iXqKqYeI8cumNTxdpyI8QvGrFW3LGQyY1X4yctel7t2v0WYliJu1eMlzXWtSW3dOlR37Q8Bg0H8bd6puOwQ5ScAZRuOduOKLY6ehOzLxWUNEzhhgEBnZ3IqphckoaKRK+Hth0IBkfnybSkB8hCtkMhiMKY+h2YtZtT9s7tGGlqMIcUmcUGwA0e2ZoAISjay2QLu0aYS1yyXQJzlFtBiQVvIi8592ujhF1FTXdUlS/V86rYYIrLkKIsE1fNFRCkiwTGXJCyIcIIc8SQp4ghHyEEFJN6LgkU4ALZ3kTng3BuDXRDRzUWeEwQx6uhOkZYS0OyXSpBgw5148XIcpvcFkGJ0YeYcjjOkZFipjtCE10SXJM6pF/EsCdlNK7AHwNwE9MfkiSacFDHV2PIXc88kD5IeBvCmr0DKfW3AsTagp75B3dCglmSabLtXjkojAILzVc9cTIgbAh5wlzoRiXFlZAlB759JnIkFNKP0Ep5WftCwBOTn5IkmnhapK7N5pXwpazXGAe2U7H75GLZmsWNfEwgZ4+DAlmSaYLj0M3eiYopWj2zMjYNCEk1EC0ZXd1OuWH9jURTHi2Y+VxxR65rCGfLknGyP8JgL+O+iYh5AOEkLOEkLPb29sJ/lrJfuHJyZ4wtOLeaMvFsCfWDCgfcorZtHBOY9ewQoJZkumSThGUshk0+yYG5gjGcCRcRXGCRtf1yJkhX44KregW1HRKOAhC9GCXVSvTZ6whJ4R8ihDylODfez3b/BQAC8DvRe2HUvphSul9lNL7VldXkzl6yTXhhFZ0f2glk/JP3wkuqSmlsTHyYGiFUipj5IdEJa+g1TfR6PNO3GhPOBgG2W7rKGsZp967nFOQIuIYucgbB1iMvBuohGFDJaRHPk3GPiYppW+P+z4h5PsAvBvAN1LRhAHJzMCrDLx6K6w9X/U1jWhKGgU17QxJ7ugWhiMaESMPL6V1a4ThiEqP/BCo5BQ0+qZQ5CxIyCP3lB4CzMOv5sPdnaIxb5xCNu17OPD9l6VHPlUm+usSQt4J4McA/D1KqVgmTTIziErO6l3Tl+jkLBezzg3sNAMJthNVKUQNlZBMn0pOQbNvOgnPOI+8pClOaA0AdtpGaBC2qCkorgqlmPXPAnUlbKUhnyaTxsh/BUAJwCcJIY8RQn4tgWOSTAlRC3Wjb/gSnRyvcJajsyKKkdvDDLyLMR5qCU6QkUyf5WIWOx3diXevRMxwBVilEq9aAphHHtxe1Kbf0c1oQ25fDyNbH18KZh0MEz0mKaW3JHUgkukj0tdo9EzheLjlgorNJqti4LorNcE8UN5k5NW15rKlwQkykumzUc7iE80BrrYG9tfRo/SqedXnkW+39ZBHXisoOLfT9b3X0a3IEX3cWegaLC4uBbMOBtnZeYRwaoc9DTz1gIQtZ7moOgOYd2K8O5GX704HkjfvQbNe1qBbIzx3pY1sJoVyLvocVHIKWgOW/+gbQ3QCkraAWNK4qw9jPXLADd/J6UAHgzTkRwindtg2upRS1HtmRGjF1VvhBn2lKPbIAb/4UjeihVsyfdZtD/yJi01sVDSh8iGH50ZafdNJbAcf1rW8irpdl85px1StBDXJpUd+MEhDfsQoeep8++YQhjXytedzlgtMb6WtW9jpGMhmUuJOPkGrt6OOJw35gbNRYYb8uattx6hHUfU0/GwFasg5SwXVHrztPb9m5LkNjv+Tyc6DQRryI0bJUzssas/n8Kag3Y6BnTZLggl1rYWhFemRHxbemHhcfBxwq5AaHo98VeCRA27jmDkcYWCO9h1a4Q8A0ZQiSXJIQ37E8NYO17thwSzOcpG36eusmqEkrn4QaZJ3pCE/NE5Uc87re0/XYrd1RLZ6Zqirk1Ozh3LzODk/z+NCK52BG1pR0uIpRZLkkH/dIwYvDwPc+nCRR84NwsV6DzsdAyuCihUgPrQi68gPnlSK4M4TbAD32169Frst7+Dd7RrYbusgxH2PE9Rb4SuvqIe0s0LzJDtLmhIbq5dMjnSZjhjFbAbnd1nvliOYJTDSJ2vMkF/Y6+NivYf7z4i9O5Eh7+oWNCXlG0IhOTh+43vvx6Ov1HFKUFbqhZcQXm0NsNPRsZRXoQTOmSvXwB764/IfJS2c7JTx8ekj77QjRtlu4QbEglkcTUljvZzF4xcaaA8snPEMZ/Yi6hbt6EMUIybTSKbPRkXDt9x1bOx2OTWNWl7BZrOPrXa4GQhwH/L8WumMCa0UQqEVKWF7EMi/8BFjyW4CGY2oZ6CyOGxyqpbHZ5/fAQDcuCI25Lw2PVh+KJuB5oONSg6bjQEu1vtCD76UzSCTIk6MPGrMG0dJp5DNpDx15FbkuDlJckiP/IhRzSsYUXaD1Xus1VqNSETdul50xsKdiTDkfLxXsGpFJjrng+MVDZcafZzb7eKm1fA5JoQJZzkxcj3ekAMsvMK3i1LNlCSLNORHDCfm2TNsbY1ovepvuM1Nlp2q5SK3KwakS9vSkM8NGxUNz15pw7BGkauupYLi6u4IRgMGKXoe7HtdI5RAlSSPvNuOGDWP1vh2exAqN/Py5ltX8ZrjZfyLt94Sm7gMyqF2dWtsDbNkNrj9WNl5HWXIa3kVdTvZWd+HPG7FDt8NRxT1nuEMqJBMD2nIjxhLngaPrbaO2zfKkdvm1DQ++r+9eew+vSWNgAytzBPf4ClRvOdUVbhNLa/ixe0OAOYAlLRMqLrFy2pRxeXGAM2+CUrFVVGSZJF32xGD1wXvdQ1st3S85dZoj3y/BD3yjj6UhnxOOFHN4XvfeBr3n1ly1CuD1Aoq6q9wbXqx7LGX5UIWT1xsOsO7ZWhl+si77YjBO/UuNwZoC9TurodiNoMrtuQtIKtW5o2ff++dsd9fKjDd8tGIYq9njvWwl4tMMZEP7+bDvCXTQyY7jxjFbAYFNY3HLzYAuBPTJ6HgSXZawxH6pvTIF4langlntQeW7ZHHV6EsF7OwRtTRMZce+fSRhvyIQQjBmZUCPvO1bQB+bY7rpZh1y826xtB5T7IY8FXbVnvAqlDGhFZ4JdSzmy0ArgCbZHpIQ34EObNSwNAexeWtWrheePkhpdQVVZKGfGE4bj/sLzcHqHeN2NJDwNU0f/R8HZqSCikqSpJHGvIjyE12mVkxm0mkoqCoZTCiTN9cStguHtyQP7PZQtcY4ng1vrSUjw586lILp5cKSKWkYNa0kYb8CPLW21YBAG951Uoi+/MKZ3WkR75wrJeySBHgkZd2AQAna/FiXCeqOef8n1mJ31aSDBPdbYSQXwDwXgAjAFsA/jGl9HISByaZHveeXsJXfvqbIlvzrxWvBrXUIl88MukU1ssaHjm3BwA4tRSfV0mlCNbKWXS2rUhpB0myTHonf4hSehel9B4Afwng305+SJKDoFZQEzO2fMBva2DFapxL5pcblvLo2YnscfK4APAP7j2JG1cK+EdvOD3tQ5NgQkNOKW15viwAoFHbShYXZ/hA14jVOJfML2+4aRkAoKTJvsa2/Yu33oJP/8hb92X0JZMz8dqaEPJBQsgFAN8D6ZEfSZY8+i1ck4OPEZMsBm+6heVTvuv+Gw75SCQixhpyQsinCCFPCf69FwAopT9FKT0F4PcA/MuY/XyAEHKWEHJ2e3s7uU8gOXS8Qlz1noGylpHTgRaM+8/U8Hv/7A34t//THYd9KBIBY4OklNK373Nfvw/gowB+JmI/HwbwYQC47777ZAhmgShlM1DSBHs9ZshlJ9/iQQjBg7ckU+UkSZ6J3CZCyK2eL98D4NnJDkcyjxBCbKlTA3v7aBiRSCTJMmnZwi8SQm4DKz98BcAPTH5IknlkqaA6oRU+1FcikRwMExlySum3J3Ugkvmmllex2zWw1zFw2/rkbf8SiWT/yIyUJBGOV3N4cbuDzdZgbMOIRCJJFmnIJYlw02oBjR6bCHNmWXbzSSQHiTTkkkS4ydOKLduyJZKDRRpySSLctFp0Xp9Zlt18EslBIpWNJIlwy1oR//RNN2K1lJXlhxLJASMNuSQR0imCn3637PqTSA4DGVqRSCSSOUcacolEIplzpCGXSCSSOUcacolEIplzpCGXSCSSOUcacolEIplzpCGXSCSSOUcacolEIplzCKUHP6yHELINpl9+PawA2EnwcOYB+ZmPBvIzHw0m+cynKaWrwTcPxZBPAiHkLKX0vsM+joNEfuajgfzMR4NpfGYZWpFIJJI5RxpyiUQimXPm0ZB/+LAP4BCQn/loID/z0SDxzzx3MXKJRCKR+JlHj1wikUgkHqQhl0gkkjlnrgw5IeSdhJDnCCEvEEJ+/LCPZxoQQn6LELJFCHnK894SIeSThJDn7f9rh3mMSUIIOUUI+TQh5BlCyNOEkB+y31/kz6wRQr5ICHnc/sw/Z7+/sJ+ZQwhJE0K+Qgj5S/vrhf7MhJCXCSFPEkIeI4Sctd9L/DPPjSEnhKQB/CqAvw/gDgDfTQhZxJE0/xXAOwPv/TiA/0EpvRXA/7C/XhQsAD9MKb0dwAMAftA+r4v8mXUAb6OU3g3gHgDvJIQ8gMX+zJwfAvCM5+uj8Jm/gVJ6j6d2PPHPPDeGHMDXAXiBUvoSpdQA8IcA3nvIx5Q4lNK/BbAXePu9AH7bfv3bAL71II9pmlBKNymlX7Zft8Fu8hNY7M9MKaUd+0vF/kexwJ8ZAAghJwF8C4Df8Ly90J85gsQ/8zwZ8hMALni+vmi/dxRYp5RuAszwAVg75OOZCoSQMwBeB+ARLPhntkMMjwHYAvBJSunCf2YAvwzgfwcw8ry36J+ZAvgEIeRRQsgH7PcS/8zzNHyZCN6TtZMLAiGkCOBPAPwrSmmLENHpXhwopUMA9xBCqgA+Qgi585APaaoQQt4NYItS+igh5K2HfDgHyYOU0suEkDUAnySEPDuNXzJPHvlFAKc8X58EcPmQjuWguUoIOQYA9v9bh3w8iUIIUcCM+O9RSv/UfnuhPzOHUtoA8BBYXmSRP/ODAN5DCHkZLCz6NkLI72KxPzMopZft/7cAfAQsRJz4Z54nQ/4lALcSQm4khKgAvgvAnx/yMR0Ufw7g++zX3wfg/zvEY0kUwlzv3wTwDKX0lzzfWuTPvGp74iCE5AC8HcCzWODPTCn9CUrpSUrpGbB7928opf8IC/yZCSEFQkiJvwbwzQCewhQ+81x1dhJC3gUWZ0sD+C1K6QcP94iShxDyBwDeCiZ1eRXAzwD4MwB/DOAGAOcBvI9SGkyIziWEkDcB+CyAJ+HGTn8SLE6+qJ/5LrAkVxrMmfpjSunPE0KWsaCf2YsdWvkRSum7F/kzE0JuAvPCARbG/n1K6Qen8ZnnypBLJBKJJMw8hVYkEolEIkAacolEIplzpCGXSCSSOUcacolEIplzpCGXSCSSOUcacolEIplzpCGXSCSSOef/BzicbOSBXQ8aAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tList = np.linspace(0,50,501)\n",
    "\n",
    "freq1 = 2.0\n",
    "freq2 = 0.3\n",
    "freq3 = 3.5\n",
    "\n",
    "yList = 0.5*np.cos(tList*freq1+0.3) + 2.0*np.sin(tList*freq2) + 1.0*np.cos(tList*freq3)\n",
    "\n",
    "data = np.array([tList,yList])\n",
    "\n",
    "plt.plot(data[0],data[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6793c950",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11.373146764083113"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "integralTrapezoidal(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45bf1402",
   "metadata": {},
   "source": [
    "## Fourier transform to find characteristic frequencies"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb90b2b3",
   "metadata": {},
   "source": [
    "\\\\(\n",
    "\\tilde{y}(\\omega) = \\frac{1}{\\sqrt{2\\pi}} \\int_{-\\infty}^{\\infty} y(t) e^{i\\omega t}\\mathrm{d}t\n",
    "\\\\)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d5b679a6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "420.16655955096377\n"
     ]
    }
   ],
   "source": [
    "omega = 0.3\n",
    "\n",
    "integrand = np.array([tList, 1/np.sqrt(2*np.pi) * yList * np.exp(1j*omega*tList)])\n",
    "\n",
    "print(abs(integralTrapezoidal(integrand))**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "db5defa6",
   "metadata": {},
   "outputs": [],
   "source": [
    "ft = np.array(\n",
    "    [[om,\n",
    "    integralTrapezoidal( np.array([tList, 1/np.sqrt(2*np.pi) * yList * np.exp(1j*om*tList)]) )] for om in np.linspace(0,10,1001)\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "5f73901b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.  +0.j,  0.01+0.j,  0.02+0.j, ...,  9.98+0.j,  9.99+0.j,\n",
       "       10.  +0.j])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ft[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2c8ee765",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x20f54291520>]"
      ]
     },
     "execution_count": 8,
     "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"
    }
   ],
   "source": [
    "plt.xlabel('Frequency omega')\n",
    "plt.ylabel('Intensity')\n",
    "\n",
    "plt.plot(ft[:,0].real, abs(ft[:,1])**2 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a37ac321",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.25+0.j, 0.26+0.j, 0.27+0.j, 0.28+0.j, 0.29+0.j, 0.3 +0.j,\n",
       "       0.31+0.j, 0.32+0.j, 0.33+0.j, 0.34+0.j])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ft[25:35,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "25ccdc69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([257.64250453, 314.4191087 , 363.06038133, 398.91013973,\n",
       "       418.53765769, 420.16655955, 403.87504871, 371.54322565,\n",
       "       326.56272101, 273.35955584])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "abs(ft[25:35,1])**2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b527740",
   "metadata": {},
   "source": [
    "## Use numpy module: Fast Fourier transform (FFT)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "76a944c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x20f542f4c40>]"
      ]
     },
     "execution_count": 11,
     "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"
    }
   ],
   "source": [
    "ft = np.fft.fft(yList)/len(yList)\n",
    "\n",
    "plt.plot(abs(ft)**2 ) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "334048a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x20f54363610>]"
      ]
     },
     "execution_count": 12,
     "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"
    }
   ],
   "source": [
    "frequencies = np.arange(len(yList)) / ( len(yList)*0.1 )\n",
    "\n",
    "plt.xlim([0, 10])\n",
    "plt.plot( frequencies*2*np.pi, abs(ft)**2 ) "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
