Several users received an email on how to unlock their account. Due to a brute force login attack, accounts are automatically locked after a number of failed attempts. We recommend to regularly change passwords and use 2FA whenever possible. If you would like to activate 2-factor authentication on Gitlab, you can do so by logging in and then to Preferences -> Account. You will need an "authenticator" app and a compatible phone (we do not support SMS codes on Gitlab). If you have further questions regarding online safety, please check the website https://www.tudelft.nl/en/privacy-security.

Commit c489a50f authored by Alok Bharadwaj's avatar Alok Bharadwaj

Upload New File

parent be271efc
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fourier Series\n",
"\n",
"In this part, we shall see that $any$ 1 dimensional curve, can be split into a sum of simple sine waves. \n",
"\n",
"To begin with, let us consider a box function."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, play with this interactive to get an intuitive feel for the box function"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a9cddd64744c4355984224d8f4a63e75",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=100, description='Width (pixels)', max=500, min=50, step=50), Output()),…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function misc.plotbox(width)>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from misc import *\n",
"play_with_box_wave()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the purpose of this tutorial, let us consider a box function $b(x)$, which has the value $1$ for $-a/2 \\lt x \\lt a/2$ and 0 otherwise. We shall input this function b(x) for x = 250, and try to decompose it into sinusoidal waves"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"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"
}
],
"source": [
"plotbox(250)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we learnt before, a sinusoidal wave requires three parameters: (Amplitude: $A$, Frequency: $f$, Phase: $\\phi$)\n",
"\n",
"In it's most general form, a Fourier Series can be represented in the following way\n",
"\\begin{equation}\n",
" f(x) = A_0 + \\sum\\limits_{k=1}^F A_k \\cdot cos(\\frac{2 \\pi k \\cdot x}{P} - \\phi_k)\n",
"\\end{equation}\n",
"\n",
"where F is the maximum frequency upto which analysis is done. Since we have set the range of frequencies that we need to study, the question now becomes to find the amplitudes and phases for all such frequencies. In the equation above, $P$ is the period of our input signal. For an arbitrary signal, $P$ is nothing but the length of the signal itself. $A_0$ is the constant term, or it can be considered as the amplitude of the wave having zero frequency. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each frequency component $k$, the amplitude and phase can be found out in the following way: \n",
"\\begin{equation}\n",
" a_k = \\frac{2}{P} \\sum\\limits_{i=0}^P s(i) \\cdot cos(\\frac{2\\pi i \\cdot k}{P}) \\\\\n",
" b_k = \\frac{2}{P} \\sum\\limits_{i=0}^P s(i) \\cdot sin(\\frac{2\\pi i \\cdot k}{P}) \\\\\n",
" A_k = \\sqrt(a_k^2 + b_k^2) \\\\\n",
" \\phi_k = tan^{-1}(\\frac{b_k}{a_k}) \\\\\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we increase the number of frequencies analysed, the reconstructed function looks closer to the input step function $s(x)$. Here, check for yourself! "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "04cbac7cac574b64b9d491c655e07e94",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=50, description='# waves', min=1), Output()), _dom_classes=('widget-inte…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function misc.reconstruct(InputSignal, tot_freq, return_label=False)>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"play_with_reconstruction(getbox(500))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's have a look at the different sinusoidal waves that make up the step function as we decomposed before. Suppose we choose to reconstruct with 10 waves. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "0b0d9055af8b48b9b09e4916639d2824",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=3, description='# waves', max=15, min=1), Button(description='Run Intera…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function misc.interactive_reconstruction(InputSignal, F)>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_ipython().magic('matplotlib notebook')\n",
"check_first_few_waves(getbox(500))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us now use a randomly generated curve and see if that can also be reconstructed using sin waves"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"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"
}
],
"source": [
"get_ipython().magic('matplotlib inline')\n",
"randomlines = plot_random_lines()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9e8793c3d2a642ab981f0c1e0d4123c6",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=50, description='# waves', min=1), Output()), _dom_classes=('widget-inte…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function misc.reconstruct(InputSignal, tot_freq, return_label=False)>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"play_with_reconstruction(randomlines)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9600ca05a45f473ba115f92155e9f798",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=3, description='# waves', max=15, min=1), Button(description='Run Intera…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function misc.interactive_reconstruction(InputSignal, F)>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_ipython().magic('matplotlib notebook')\n",
"check_first_few_waves(randomlines)\n",
"#out = interact_manual(interactive_reconstruction,InputSignal=fixed(randomlines),F=IntSlider(value=3,min=1,max=15,step=1))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment