daily pastebin goal
41%
SHARE
TWEET

Untitled

a guest Feb 19th, 2019 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {
  2.  "cells": [
  3.   {
  4.    "cell_type": "code",
  5.    "execution_count": 18,
  6.    "metadata": {},
  7.    "outputs": [],
  8.    "source": [
  9.     "def fft (a):\n",
  10.     "    n = len(a)\n",
  11.     "    if (n == 1):\n",
  12.     "        return a[:]\n",
  13.     "\n",
  14.     "    a0 = fft (a[0::2]) # берем четные и нечетные чиселки, считаем рекурсивно\n",
  15.     "    a1 = fft (a[1::2])\n",
  16.     " \n",
  17.     "    ang = 2 * pi / n   # угол на который будет домножать\n",
  18.     "    w = complex(1, 0)  \n",
  19.     "    wn = complex(cos(ang), sin(ang)) # фаза(сдвиг)\n",
  20.     "    \n",
  21.     "    b = [complex(0, 0)] * len(a) \n",
  22.     "    for i in range(n // 2): # считаем по формулке\n",
  23.     "        b[i] = a0[i] + w * a1[i]\n",
  24.     "        b[i + n // 2] = a0[i] - w * a1[i]\n",
  25.     "        w = w * wn;\n",
  26.     "    \n",
  27.     "    return b"
  28.    ]
  29.   },
  30.   {
  31.    "cell_type": "code",
  32.    "execution_count": 19,
  33.    "metadata": {},
  34.    "outputs": [],
  35.    "source": [
  36.     "def ifft (a): // тоже самое что и fft (почти)\n",
  37.     "    n = len(a)\n",
  38.     "    if (n == 1):\n",
  39.     "        return a[:]\n",
  40.     "\n",
  41.     "    a0 = ifft (a[0::2])\n",
  42.     "    a1 = ifft (a[1::2])\n",
  43.     " \n",
  44.     "    ang = -2 * pi / n\n",
  45.     "    w = complex(1, 0)  \n",
  46.     "    wn = complex(cos(ang), sin(ang))\n",
  47.     "    \n",
  48.     "    b = [complex(0, 0)] * len(a)\n",
  49.     "    for i in range(n // 2):\n",
  50.     "        b[i] = a0[i] + w * a1[i];\n",
  51.     "        b[i + n // 2] = a0[i] - w * a1[i];\n",
  52.     "        b[i] = b[i] / 2\n",
  53.     "        b[i + n // 2] = b[i + n // 2] / 2;\n",
  54.     "        w = w * wn;\n",
  55.     "    \n",
  56.     "    return b"
  57.    ]
  58.   },
  59.   {
  60.    "cell_type": "code",
  61.    "execution_count": 20,
  62.    "metadata": {},
  63.    "outputs": [],
  64.    "source": [
  65.     "import matplotlib.pyplot as plt\n",
  66.     "from math import *\n",
  67.     "\n",
  68.     "def paint_fft(f, title=\"\"):\n",
  69.     "    def gen_value(f):\n",
  70.     "        x = [i/10 for i in range(100)]\n",
  71.     "        y = [f(i/10) for i in range(100)]\n",
  72.     "        return x, y\n",
  73.     "\n",
  74.     "    x, y = gen_value(f)\n",
  75.     "    g = fft(y + [0]*28) #добиваем до 128\n",
  76.     "    plt.xlabel(\"x\")\n",
  77.     "    plt.ylabel(\"y\")\n",
  78.     "    plt.title(title)\n",
  79.     "    series = (\n",
  80.     "        plt.scatter(x, y, s = 10),\n",
  81.     "        plt.scatter(x, ifft(g)[:100], s = 10), \n",
  82.     "        plt.scatter(x, ifft(g[:126] + [0]*2)[:100], s = 10),\n",
  83.     "        plt.scatter(x, ifft(g[:123] + [0]*5)[:100], s = 10),\n",
  84.     "    )\n",
  85.     "    plt.show()"
  86.    ]
  87.   },
  88.   {
  89.    "cell_type": "code",
  90.    "execution_count": 21,
  91.    "metadata": {},
  92.    "outputs": [
  93.     {
  94.      "name": "stderr",
  95.      "output_type": "stream",
  96.      "text": [
  97.       "/home/elevely/anaconda3/lib/python3.6/site-packages/numpy/core/numeric.py:544: ComplexWarning: Casting complex values to real discards the imaginary part\n",
  98.       "  return array(a, dtype, copy=False, order=order, subok=True)\n"
  99.      ]
  100.     },
  101.     {
  102.      "data": {
  103.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X+Q2/V95/HnWz925V8kuGAMNhuMCRASwIGtYTFxbcck5MeFXCeEEkIJSevp3dHQkh6TpJPJdHLXZriEqeeukxmX8OMSQkvATCBHEyD4joFuAJvsQTD4+GEw5kcwNcY/WO2upPf9IWn9Xa20q9VK+uqr7+vxj6W1vPpoSD4vvT8/zd0REZH4SoTdABERCZeCQEQk5hQEIiIxpyAQEYk5BYGISMwpCEREYk5BICIScwoCEZGYUxCIiMScgkBkhsxsuZntNbOzSs+PM7O3zGxNyE0TaYjpiAmRmTOzPwWuAc4G7gKecve/CrdVIo1REIg0yMzuBpYBDvy+u4+E3CSRhmhoSKRx/wh8CPjvCgGJMlUEIg0ws/nA/wW2AJ8ATnf3veG2SqQxCgKRBpjZD4EF7v55M9sEvNfdPx92u0QaoaEhkRkys4uAC4E/K/3oGuAsM7ssvFaJNE4VgYhIzKkiEBGJOQWBiEjMKQhERGJOQSAiEnOpsBtQj6OOOspPOOGEsJshIhIp27Zte8vdj57udZEIghNOOIGtW7eG3QwRkUgxs5freZ2GhkREYk5BICIScwoCEZGYUxCIiMScgkBEJOZaFgRmdqOZvWlmvw38bKGZ3W9mz5X+PLJV7y8iIvVpZUVwM8UTGoO+DvzK3d8P/Kr0XEREQtSyIHD3h4DKizouAm4pPb4F+Gyr3l9EROrT7g1lx7j76wDu/rqZLar1QjPbAGwA6Ovra1PzRETCN3T/T8jueIDMKetZccEXWv5+Hbuz2N03AZsA+vv7dWmCiMTC0P0/4ZSHr2aOjTK85x6GoOVh0O4g+J2ZHVuqBo4F3mzz+4uIdKTxKuDgK8yxUQDm2CjZHQ9AlwXB3cAVwHdLf/6sze8vItJxglXAiKcYIUWv5Rj2HjKnrG/5+7csCMzsNmANcJSZ7Qa+TTEAbjezrwC7gItb9f4iIp2uWhXQazmGMivJzj8++nME7n5pjb/6aKveU0QkKqaqAjj7Ss5tQwCUdexksYhIN+qUKiBIQSAi0iadVAUEKQhERFqsE6uAIAWBiEgLdWoVEKQgEBFpgdlUAVt2bWHwtUEGjhtgbd/alrdVQSAi0mSzqQK27NrCtQ9dSzaf5a7n7+K61de1PAwUBCIiTdKMuYDB1wbJ5rMAZPNZBl8bVBCIiERBs+YCBo4b4KV7f8qpL4zw7PJeBtYOtLjlCgIRkVlp9oqg/uedRT8rkBhxPv7bAn1rHFp8ALOCQESkQc1cEVSeIP7YL3Yxb6QYKImRUQ498ggL1q1r1UcAFAQiIjMSvCsgu+OBplQBwQnilzIpru7tITEyimUyzFu1qlUfZZyCQERkGuXO33uPYMXuWw/fFbD0Moa9p/h8FvsCghPEg8tznPtn5/PJt45j3qpVLa8GQEEgIjKl4PDPmCdIWwEo3hVgI/vZcf7GWd8mNnDcAHc9fxfZfJZMMsOyT32exW3YP1CmIBARqaLaJHDaCuQ8QcoK43cFrLjgC7O+OGZt31quW31dWzeRBSkIREQqTDUJPLT0Mmxkf1POB6rcQdzuAChTEIiIlNSzFHSgSWcDhbGDuBYFgYgI7T8cLowdxLUoCEQk1sI6IrpygnjNy/N44/7vtG2lUJC5e1vfsBH9/f2+devWsJshIl2msgoAxquAHedvbPkdAeU5gjUvz2Ph392MZ7NYJsOS67/flDAws23u3j/d61QRiEjsdMpFMeUJ4jfu/w5vZ4vDRJ7NtmU3cZCCQERiJeyLYqrdNTBv1Sr23bl5vCJox27iIAWBiMRCJ1QBtVYKLVi3jiXXf59DjzwSyhyBgkBEul7YVUDZVCuFFqxb1/YAKFMQiEjX6oQqIKhypdDAca2/a6AeCgIR6UqdUgUEhX2URC0KAhHpKp1WBUDnHCVRi4JARLpGJ1YBUx0lceDBB0ObIA5SEIhI5HViFVBWa4L4wIMP8uo1X8OzWfbdublpm8gaoSAQkUjrxCogqNYE8aFHHsFD3EQWpCAQkUjq5CogqNYEcdibyIJCCQIz+0vgTwAHngKudPdsGG0Rkejp9CoApp8gDnsTWVDbD50zsyXAw8Bp7j5sZrcD97r7zbX+jQ6dExGYWAWsyD52+OcdVgUEJ4gzyUxodw10+qFzKWCOmY0Bc4HXQmqHiEREFKqAsk66a6AebQ8Cd3/VzL4H7AKGgfvc/b7K15nZBmADQF9fX3sbKSIdIypzAUGduoO4ljCGho4E7gQuAfYBPwXucPcf1/o3GhoSiaew7wuYqeC8ABD6DuJOHhpaD+x09z0AZrYZOA+oGQQiEi9RrAKqbRz75rnfnPS6TtlEFhRGEOwCzjWzuRSHhj4K6Ou+iADRmgsIqmdeoJM2kQWFMUfwqJndATwB5IDfAJva3Q4R6SxRrAKC6pkX6KRNZEGhrBpy928D3w7jvUWk80S1Cgiq52TRTtpEFqSdxSISmqhXATCzk0U7aRNZUNtXDTVCq4ZEuk/UVgRV0ykbx2rp5FVDIhJj3VAFlEVt41gtCgIRaZtumAsIitrGsVoUBCLSct1UBQTVe/VkJ+4dCNIcgYi0VDfMBQRVTg5PJ7h3wDKZtu4d0ByBiISqG6uAqa6drKVT9w4EKQhEpOm6bS6grJHJ4U7dOxCkIBCRpunGKiCokcnhTt07EKQ5AhFpim6bCwjqtFNF66U5AhFpi26vAuo9VTTKFAQi0rBunQsIanTTWKcvGQ1SEIjIjHV7FRDUyLxApx43XYuCQERmJA5VAEycF6hn01hQFJaMBikIRKQucaoCZjsvEIUlo0EKAhGZVlyqgLLZHiYXhSWjQQoCEakpTlVAUDMOk1uwbl3HB0CZgkBEqopbFQCzmxeIMgWBiIwbrwBOWU92xwOxqgKasV8gSktGgxQEIgJMrACG99zD0NLLGPae4vMurgLKZjsvELUlo0EKApGYqzYPMMdGsZH97Dh/43iF0I1VABweDprfM59MMtPwvEDUlowGKQhEYmyqeYDxzr9LAwAm3zl8+WmXc3D0YEPzAlFbMhqkIBCJobiuBqpUORx0cPRgw+cIRW3JaJCCQCRm4rgaqJZmLBOtnCCOUgCUKQhEYkJVwGHNWiYa5QniIAWBSAyoCjismcdKR3mCOEhBINLFVAVMNttlokFRniAOUhCIdClVARM1a5lo5ZxAVCeIgxQEIl1GVcBkzVomWmtOIKoBUKYgEOkC5c7fe49gxe5bVQVUaNYy0W6ZE6gUShCY2XuBG4APAQ582d0Hw2iLSNQFh4DGPEHaCkC0q4Dg8AtQ9XE9HXCzh4MSCxZgmUzk5wQqhVURbAR+4e6fM7MeYG5I7RCJrGpDQGkrkPMEKStErgoIdrZ7b74Fz2Z5+/afYmb46OiEx/vu3MzCL11B4cCBmqHQiuEgy2Smfd8oansQmNkRwGrgSwDuPgqMtrsdIlE21UTw0NLLsJH9kagCqnX+JJOQzxdfMDaGl18ceOzZLP/2jzdAPl8zFFo1HFQ4cIDF3/rWLD515wmjIjgR2APcZGZnAtuAq939UPBFZrYB2ADQ19fX9kaKdKJ6JoIHot755/OHn6fT41XAhMeB11eGwoF/v4bfvbmTZSuWMfBKilNfGOHZ5b0MrNVwUC3m7tO/qplvaNYP/BpY5e6PmtlGYL+714zY/v5+37p1a9vaKNKJKqsAYLwK2HH+xo7+9j9t5w/jzyuHX2DyHMFUvyefgGQBxpKQsATJXIFCbw9HX3nltEM61doZ5eEgM9vm7v3TvS6MimA3sNvdHy09vwP4egjtEImEqC8HDY6x1/rmP11nG3xefjznjDPGO+09N91EYmR0PAQA0nmA4pPEyGjNoSSYOly6dTgoqO1B4O5vmNkrZnaKu+8APgpsb3c7RKIgypvCyt+uR3fvHh9jn0nnP53y+v0tu7Zw294Ep75gjGSSfOLRHL25YkWQSqSwsVzNoaTgBPRUIdWNw0FBYa0a+nPg1tKKoReBK0Nqh0hH6qoqIJ3Genrw0dGWDLMMvjbI4PIcg8uTAKQ+eDofeGGUhavXcvrRp9c/Gd3EkIqaUILA3YeAacetROKo66qAsTHm/sFqepYubWqnWmuPQP/n/sOE5aHVhpLGQyEwAR23zj9IO4tFOkQ3VwFHXnJJUzvWRvYIBI+CKIdCI5vUupGCQKQDRLkKKAuut291FbD74O5Z7RGoPB8orgFQpiAQCVHUqwCovd6+lVVAOpEmnUgzVhhr+GYxOUxBIBKSbqgC2nH8QrUqYKwwxkeWfISl85c2dLOYTKQgEGmzbqoCgpPCzVxvH5wI/tH2H1WtAi4++WIFQJMoCETaqNuqgMpJ4Wastw8OASVJkqe41FNVQOsoCETaoFurgGZOClcbAsqTJ2lJ8p5XFdBCCgKRFuv2KmA2k8L1DAE1eny01E9BINIiqgKqq9b5awgoXAoCkRZQFTDRdJ2/hoDCpSAQaaKoVwHBKyJnu0Fspp2/hoDCoyAQaZKoVgHVzuAvH9Vca4NYuZMvb+SqfKzOP1oUBCKz1M4qYLoOuN7HvYNPsvehLRyzaBlzNz9IYmQUTySwQvH8/vKegL3f+BJ7H9rCwtVref0kY/DXfzuhk7/juTuA4rh+8LE6/2hp+w1ljdANZdKpmnlr2Ey+ZacTaaDY6db7+Kz/l+e0F8cmnNmfM0gFuoBcAlIFGEnDM1+9kOvnPDzp/YKd/FTU+YevaTeUmdlVwK3u/nZTWibSBWZTBVTr8Gf6LXusMDb++yofn/1cgTN2Ok8uK367P2On825vnk8/5qXOPzfe+ac80Pmn4Ocrjbkj8OQyY/+il8nuy056j+A3/FrBo84/WuoZGloMPG5mTwA3Ar/0KJQRIi1S71zATDr8JElWPDc2qQOvfJwkwQd35tl+YrHTPe3FsQmPi9/2C/TmYP1vHKx4ZWPwm39l5/8v56TozRZ/5xMnJw935Mev4ZUDr0yqCCo7+fJnq3yszj866hoaMjMDPkbxJrF+4Hbgh+7+QmubV6ShIekEwSpgRfaxwz8PVAFvn3LslMM4Ezt8A8rf2Bn/xj6WYLwDn/A4eBl7KoUZ2FhuwuPgOH8lTyawfPEi93f/cB2/e3MnC1evZWTgjJodea3hKnXy0VDv0FDdcwRmdibFILgQ2AKcC9zv7tfOpqH1UBBI2KaaC7it/yreODpdc6UMMD5cU6vDrxyrn5XyVYy6fSv2mjlH8FXgCuAt4AbgP7v7mJklgOeAlgeBSFhqzQXc+J4zGJrfw4KFJ3HfOz8nu3fyMsmVz8EHd+YnDNcEO/x04It7yqnagc/0cWWHD7p9S6ZXzxzBUcAfuvvLwR+6e8HMPt2aZomEr7IKuG/uPLbO6SFTMG498iCj5Ege/LeqyyQHXkjx1btzJEcdTxSwUqdfq8OfqgOf6ePKDl8BINPR8lGRCsEq4O3EUwxmMsz3Arcc8R5GE5DAKHD4/zfBZZLXDJ/PgqGdLDmQIvPY04d/aanz1zd2aaemDQ2JxEmwCrhvzjz++ujfI5tIkHQnX5zbpYBX7fyPWbSMBXf976pn80w1Pq8AkLApCESYWAX8el6SwcyR7E4nySYSAOTNqm6QWvPyPBZ+7+Zi5598Hs+XJohbdHm7SCsoCCT2hu7/Cb974lq2zUmRyTi3vadYBaQLBVIkyTF5d2z/8146nnk7h8oHs+XzE4aAmn15u0irKAgklm68528YeuMhVixezejuIX646D2BIaDiGNBYIsFHlpw36Vz8qY5n1hJNiSIFgcTOjff8DT9463ayPQkG37qdk3qPnjAElCBBgcKkc/FbfVWjSFgUBBIb5Spgb2Ef2Uyx488mEthYjp5kilFy9JDiitOvnDAE9MYt35lwRHMzr2oU6QQKAulq5SMSDr36Mvftf5hsT3HsP10wxhJGplBg/TEX8Kdnrp50fMKEIaDy2n9QFSBdR0EgXWvLri381ZZrGCVHwqFQGv4ZSyQ4M9vDwsR7WbF4NV/+d98GmHoISBPB0sUUBNJ1ylXA9pceY5QcAAVjfCI4Uyiw7rjPjAdAkCaCJY4UBNJVglVAqgBpc8ZKnf/HDi3gQO+8CVVAmSaCJc5CCwIzSwJbgVfdXWcWyaxUqwJyCVh1KEtfLsfZwzmOOeuvxy+LCV7SDtSsAjQEJHEQZkVwNfAMcESIbZAIK3f+83vmc8tTN1WtAlaOHMtp6feTOWv9hBAod/z77tzM3HNWqgqQWAslCMxsKfAp4L8C14TRBom2Lbu2cO1D15LNZyccAldPFRAc/in/aZkMns2qCpBYCqsi+HuK9xgsqPUCM9sAbADo6+trU7Ok05WrgN0Hd5PNFzvxAj5hIjhYBSxPLuaN70y/D+DISy7RKaASW20PgtIdBm+6+zYzW1Prde6+CdgExWOo29Q86WDBKiBFgnTBx/cCXPrOQbIJ4+zhHMemP8eit1Mknn6TV2/+b3XvA1AASFyFURGsAj5jZp8EMsARZvZjd/9iCG2RCKhWBeQo8MdPZ/nAS8bCxVnmF95HYU+K5LEnkX7obt6u7Py1D0CkprYHgbt/A/gGQKki+CuFgMDklTyHHnmEF08+gtuevplTXxhhZFmScwoFTnvZGU07n3w8RSJvsH0entiH5fKw/a3DR0FXdP7aByBSnfYRSFtU6+SDj4Nj+G/f/lMcx8ZyLEgZV7mTzsP63+Qwc1J5K/495ZtiDCuo8xdplK6qlJYpd/6TJmqrXcAeHMapkycSWKEw5d2/6vwlznRVpYSiaudfMVE7/tUj+DifJ5+AZAHGEoBBOl98XK4CColiFWAF8HSao77yZd39K9IECgKZtWk7/8BwTWVFUB4CGutJcHe/M3cEnlxmJB0++JLz7Pvgi+8c4uSXnfTiAq+e9icsOpTS3b8iTaQgkIbMpPOvHK6BwxPBNz99M6e+kGf7iSm2nWTkyNNTgCv2v8PBYxJcms1yxBGn89IHjidzyuHdwSLSPAoCmbGa5/TXOVG7ZdcWBucm2X1wB4PLcwwuTwKF0o7gMfqHR/mDd0fotRzD3sOO86/kXAWASMsoCKRu9ZzTP2XnXzoX6Efbf0Q2nyWdSI9fDt9TgEsOHmDtu8MADM1ZSXa+qgCRdlAQyJRqrvyZwTn9wR3BSZLkKVYQY4WxCVXAee+OgcGw98DZqgJE2kVBIDXN9qrGajuC8+THL4dXFSDSGRQEMslsrmqcdgjIE1y2bz/ZhKsKEOkQCgKZYDZXNdYzBLRyeIT1w++O/xtVASLhUxAIMLurGmc6BJTzBCkrqAoQ6RAKApmyCpjpEFA6kWasMEYPKS57e1/VIaChpZdhI/tVBYh0CAVBjM20CqjW+VcOAZ3Zs5yFBw+w4uAoX37nxfF/GxwCGlDnL9JRFAQxU89y0GpVQK3x/zx5kpYk73l6SHH5rq18fPgAI55ihNT4pjANAYl0LgVBjDSyHLTW+H+5888kM3xszlkc2Ps8Kw6O8vHhYhXQazmGMpoIFokCBUEMzHQ56HTj/5lkhstPu5yDowdZvGeMS7f+D+bYqKoAkYhSEHS5epeDbj3JGPz13045/v+RJR9h6fylDBw3wJE7Xie7Y4jMwVeYY6OAqgCRqFIQdKHgbWCHHnlkwkTw8MoP8uqCHAtXr+X1gTNK3/x/y48emtz5Vw4BXXzyxaztW8vQ/T/hlIevVhUg0iUUBF2i2iTwvjs3F7/19/aQGBkl35PiBye8wODyHOnRXfB/it/0p+r8y0NA5Srg13d/WVWASJdREERYsPPfc9NNJEZGD1/fCHg2y67XnmXTRQlOfcF4ehk8tjwHFAOgbKrOf23fWgBVASJdTEEQAf/6zxvZ+9AWFq4udsp7H9rCMYuWMXfzgyRGRikkjESheOmjFQrkEpAqwEgatizey+Dvlc/8Z7zDTyfSAJMmf4OdPxQDILvjAVUBIl1MQdBkwfF5OHyP7lN7nprUmdfz2ObPY8m9T3DkGIxt2QEGR+YhZztIlC78TRT8cOefgp+vtPErH+eecRSZNzJk89lJHT7A4GuDkzr/MlUBIvFg7j79q0LW39/vW7duDbsZE0z7LT2VwgxsLEc+laDghfHL2IMXs0/3OGeQqvGfKNj537syQWbE2X5imidOTo5/079u9XXA1B1+pWAVsCL72OGfqwoQiRQz2+bu/dO+TkEwtfKa+oHjBugdfHLCt/Tesfo77dkod/jB9xpJwb+ck6I3m+fZ5b186LNX1v1NfyqVVQAQuDJyowJAJELqDQINDZUEO3xg0oaqF//XP3PVXaMcmZvY4acLh39Hyqt32rN5PJKGVz95Fn7w0KTho3NLyz8vrdLhNxIAmgsQiadYVwS1dtDC4WWVK54b44ydzqJ9ztkvHP63031L335i8fec9uIYzy7vZe3xa1gwtHPGcwQLV6/lvEuubvpnD1IVINKdNDRUw3QnaAKc/VyBM3Y67/bCpx9zenP1f0sfKX1Ln+0QTTtoLkCkuykIAurp/MvLKs95PsFVd43Sm5s85p8N7Mpt9bf0VlMVINL9NEdQUs/xyZlkhmuGz2fB0E6WHEjRm3saKIVA4GC2k770H/lwjVu6okJzASJSqeuDYPC1wZrHJ5fX1K95eR4Lv3dzQ/f0Ron2BYhINV0fBAPHDXDX83dV3VBVHrd/4/7v8PYM7+mNElUBIjKVtgeBmR0P/E9gMVAANrn7xla939q+tVy3+rqqk7bBs3osk8Gz2Snv6Y0iVQEiMp0wKoIc8DV3f8LMFgDbzOx+d9/eqjdc27d20qqd4Dn93TgElN3xAJlT1pPd8YCqABGZUtuDwN1fB14vPT5gZs8AS4CWBUFQtdu6PJulcOAAi7/1rXY0oaWCFcDwnnsYWnoZw95TfK4qQESqCHWOwMxOAD4MPFrl7zYAGwD6+vqa8n5T3dZVPiQuqqrNA8yxUWxkPzvO3zheIagKEJFKoQWBmc0H7gT+wt33V/69u28CNkFxH0Ez3rPytq5umRSeah5gvPNXAIhIDaEEgZmlKYbAre6+udXv162TwloNJCLNEMaqIQN+CDzj7te3+v26dVJYq4FEpFnCqAhWAZcDT5nZUOln33T3e1vxZsHhoG6YFFYVICLNFsaqoYcBa9f7zVu1in13bh6vCKI8KawqQERaoet3Fi9Yt44l139//MrIKA4HqQoQkVbq+iCAYhhEMQBAVYCItF4sgiCKVAWISLsoCDqQqgARaScFQQdRFSAiYVAQdAhVASISFgVByFQFiEjYFAQhUhUgIp1AQRACVQEi0kkUBG2mKkBEOo2CoE1UBYhIp1IQtIGqABHpZAqCFlIVICJRoCBoEVUBIhIVCoImUxUgIlGjIGgiVQEiEkUKgiZQFSAiUaYgmCVVASISdQqCBqkKEJFuoSBogKoAEekmCoIZUBUgIt1IQVAnVQEi0q0UBNNQFSAi3U5BUEW58/feI1ix+1ZVASLS1RQEFYJDQGOeIG0FQFWAiHQvBUFJtSGgtBXIeYKUFVQFiEjXUhAw9UTw0NLLsJH9qgJEpGvFOgjqmQgeUOcvIl0utkGg5aAiIkWxCwItBxURmSiUIDCzC4GNQBK4wd2/2473VRUgIjJZ24PAzJLAPwAXALuBx83sbnff3qr3VBUgIlJbGBXBSuB5d38RwMz+CbgIaEkQqAoQEZlaGEGwBHgl8Hw3cE7li8xsA7ABoK+vr+E3y+54QFWAiMgUwggCq/Izn/QD903AJoD+/v5Jf1+vzCnrGd5zD3NsVFWAiEgVYQTBbuD4wPOlwGuterMVF3yBIYqVgaoAEZHJwgiCx4H3m9ky4FXgj4CW9s4rLvgCKABERKpqexC4e87MrgJ+SXH56I3u/nS72yEiIkWh7CNw93uBe8N4bxERmSgRdgNERCRcCgIRkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYk5c2/49Ia2MbM9wMuz/DVHAW81oTlREbfPC/rMcaHPXL/3ufvR070oEkHQDGa21d37w25Hu8Tt84I+c1zoMzefhoZERGJOQSAiEnNxCoJNYTegzeL2eUGfOS70mZssNnMEIiJSXZwqAhERqUJBICISc10fBGZ2oZntMLPnzezrYben1czseDPbYmbPmNnTZnZ12G1qFzNLmtlvzOznYbelHczsvWZ2h5k9W/rvPRB2m1rNzP6y9L/r35rZbWaWCbtNzWZmN5rZm2b228DPFprZ/Wb2XOnPI5v5nl0dBGaWBP4B+ARwGnCpmZ0WbqtaLgd8zd0/AJwL/KcYfOayq4Fnwm5EG20EfuHupwJn0uWf3cyWAF8F+t39QxQvtvqjcFvVEjcDF1b87OvAr9z9/cCvSs+bpquDAFgJPO/uL7r7KPBPwEUht6ml3P11d3+i9PgAxc5hSbitaj0zWwp8Crgh7La0g5kdAawGfgjg7qPuvi/cVrVFCphjZilgLi287zws7v4QsLfixxcBt5Qe3wJ8tpnv2e1BsAR4JfB8NzHoFMvM7ATgw8Cj4bakLf4euBYohN2QNjkR2APcVBoOu8HM5oXdqFZy91eB7wG7gNeBd9z9vnBb1TbHuPvrUPyyByxq5i/v9iCwKj+LxXpZM5sP3An8hbvvD7s9rWRmnwbedPdtYbeljVLAWcAP3P3DwCGaPFzQaUrj4hcBy4DjgHlm9sVwW9Uduj0IdgPHB54vpQtLyUpmlqYYAre6++aw29MGq4DPmNlLFIf/1pnZj8NtUsvtBna7e7nau4NiMHSz9cBOd9/j7mPAZuC8kNvULr8zs2MBSn++2cxf3u1B8DjwfjNbZmY9FCeW7g65TS1lZkZx3PgZd78+7Pa0g7t/w92XuvsJFP8bP+juXf1N0d3fAF4xs1NKP/oosD3EJrXDLuBcM5tb+t/5R+nyCfKAu4ErSo+vAH7WzF+eauYv6zTunjOzq4BfUlxhcKO7Px1ys1ptFXA58JSZDZV+9k13vzeNltakAAABHklEQVTENklr/Dlwa+lLzovAlSG3p6Xc/VEzuwN4guLquN/QhcdNmNltwBrgKDPbDXwb+C5wu5l9hWIgXtzU99QREyIi8dbtQ0MiIjINBYGISMwpCEREYk5BICIScwoCEZGYUxCIiMScgkBEJOYUBCINMLPfN7MnzSxjZvNKZ+R/KOx2iTRCG8pEGmRm/wXIAHMonvvzdyE3SaQhCgKRBpWOdngcyALnuXs+5CaJNERDQyKNWwjMBxZQrAxEIkkVgUiDzOxuisdeLwOOdferQm6SSEO6+vRRkVYxsz8Gcu7+k9Ld2P9qZuvc/cGw2yYyU6oIRERiTnMEIiIxpyAQEYk5BYGISMwpCEREYk5BICIScwoCEZGYUxCIiMTc/weWSWNnZijy4gAAAABJRU5ErkJggg==\n",
  104.       "text/plain": [
  105.        "<Figure size 432x288 with 1 Axes>"
  106.       ]
  107.      },
  108.      "metadata": {
  109.       "needs_background": "light"
  110.      },
  111.      "output_type": "display_data"
  112.     },
  113.     {
  114.      "data": {
  115.       "image/png": "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\n",
  116.       "text/plain": [
  117.        "<Figure size 432x288 with 1 Axes>"
  118.       ]
  119.      },
  120.      "metadata": {
  121.       "needs_background": "light"
  122.      },
  123.      "output_type": "display_data"
  124.     },
  125.     {
  126.      "data": {
  127.       "image/png": "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\n",
  128.       "text/plain": [
  129.        "<Figure size 432x288 with 1 Axes>"
  130.       ]
  131.      },
  132.      "metadata": {
  133.       "needs_background": "light"
  134.      },
  135.      "output_type": "display_data"
  136.     }
  137.    ],
  138.    "source": [
  139.     "paint_fft(lambda x: x, \"x\")\n",
  140.     "paint_fft(lambda x: x**2, \"x^2\")\n",
  141.     "paint_fft(sin, \"sin x\")"
  142.    ]
  143.   },
  144.   {
  145.    "cell_type": "code",
  146.    "execution_count": null,
  147.    "metadata": {},
  148.    "outputs": [],
  149.    "source": []
  150.   }
  151.  ],
  152.  "metadata": {
  153.   "kernelspec": {
  154.    "display_name": "Python 3",
  155.    "language": "python",
  156.    "name": "python3"
  157.   },
  158.   "language_info": {
  159.    "codemirror_mode": {
  160.     "name": "ipython",
  161.     "version": 3
  162.    },
  163.    "file_extension": ".py",
  164.    "mimetype": "text/x-python",
  165.    "name": "python",
  166.    "nbconvert_exporter": "python",
  167.    "pygments_lexer": "ipython3",
  168.    "version": "3.6.5"
  169.   }
  170.  },
  171.  "nbformat": 4,
  172.  "nbformat_minor": 2
  173. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top