m-thesis-introduction/simulations/03_emitter_receiver_simulation.ipynb

360 lines
174 KiB
Text
Raw Permalink Normal View History

2022-03-07 18:34:26 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Emitter/Receiver Simulation with Signals"
]
},
{
"cell_type": "code",
2022-03-10 14:59:35 +01:00
"execution_count": 1,
2022-03-07 18:34:26 +01:00
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import os\n",
"import sys\n",
"# Append parent directory to import path so lib can be found\n",
"sys.path.append(os.path.dirname(os.path.abspath(os.getcwd())))"
2022-03-07 18:34:26 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Signal"
]
},
{
"cell_type": "code",
2022-03-10 14:59:35 +01:00
"execution_count": 2,
2022-03-07 18:34:26 +01:00
"metadata": {},
2022-03-21 14:09:44 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2022-03-07 18:34:26 +01:00
"source": [
2022-03-10 15:41:09 +01:00
"from lib import TravelSignal\n",
2022-03-07 18:34:26 +01:00
"\n",
2022-03-10 14:59:35 +01:00
"####\n",
"from scipy.stats import norm\n",
2022-03-07 18:34:26 +01:00
"\n",
2022-03-10 14:59:35 +01:00
"sample_rate = 3e2 # Hz\n",
"interp_sample_rate = sample_rate * 1/10 # Hz\n",
"\n",
"t_offset = 8\n",
"periodic = False\n",
"\n",
"time = t_offset + np.arange(0, 1, 1/sample_rate) #s\n",
"time2 = t_offset + np.arange(-1.5, 1, 1/sample_rate) #s\n",
"\n",
"signal = norm.pdf(time, time[len(time)//2], (time[-1] - time[0])/10)\n",
"\n",
2022-03-21 14:09:44 +01:00
"if True:\n",
2022-03-10 14:59:35 +01:00
" mysignal = TravelSignal(signal, sample_rate, t_0 = t_offset, periodic=True)\n",
" mysignal2 = TravelSignal(signal, sample_rate, t_0 = t_offset, periodic=False)\n",
"\n",
" fig, ax = plt.subplots(1, 1, figsize=(16,4))\n",
" ax.set_title(\"Raw and TravelSignal\")\n",
" ax.set_ylabel(\"Amplitude\")\n",
" ax.set_xlabel(\"Time\")\n",
"\n",
" ax.plot(time, signal, label='Raw signal')\n",
" ax.plot(time2, mysignal(time2)+0.5, '.-', label='TravelSignal(periodic)+0.5')\n",
" ax.plot(time2, mysignal2(time2)-0.5, '.-', label='TravelSignal-0.5')\n",
"\n",
" ax.legend()\n",
"\n",
" plt.show();"
2022-03-07 18:34:26 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## New code"
]
},
{
"cell_type": "code",
2022-03-10 14:59:35 +01:00
"execution_count": 3,
2022-03-07 18:34:26 +01:00
"metadata": {},
"outputs": [],
"source": [
2022-03-10 15:41:09 +01:00
"from lib.location import Receiver, Emitter"
2022-03-10 14:59:35 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Testing"
]
},
{
"cell_type": "code",
2022-03-10 15:41:09 +01:00
"execution_count": 4,
2022-03-10 14:59:35 +01:00
"metadata": {},
2022-03-10 17:38:54 +01:00
"outputs": [],
2022-03-10 14:59:35 +01:00
"source": [
"if True:\n",
" sample_rate = 3e2 # Hz\n",
" periodic = False\n",
" \n",
2022-03-10 17:38:54 +01:00
" t_offset = -0.5\n",
2022-03-10 14:59:35 +01:00
" t_start = 0\n",
" t_end = 1\n",
" time = t_offset + np.arange(t_start, t_end, 1/sample_rate) #s\n",
"\n",
"if False:\n",
" if True:\n",
2022-03-10 17:38:54 +01:00
" periodic = True\n",
2022-03-10 14:59:35 +01:00
" freq = sample_rate/8\n",
" signal = np.cos(2*np.pi*freq*time)\n",
" else: \n",
" from scipy.stats import norm\n",
" signal = norm.pdf(time, time[len(time)//2], (time[-1] - time[0])/10)\n",
"\n",
"\n",
"#####\n",
"# Setup Signal, Emitter and Antennae\n",
"\n",
2022-03-10 17:38:54 +01:00
"rot = lambda phi=0.12345: np.cos(np.array([phi, phi-np.pi/2]))\n",
"\n",
"km=1e7\n",
"\n",
2022-03-10 14:59:35 +01:00
"mysignal = TravelSignal(signal, sample_rate, t_0 = t_offset, periodic=periodic)\n",
"\n",
2022-03-21 14:09:44 +01:00
"source = Emitter([0,0,9])*km\n",
2022-03-10 14:59:35 +01:00
"emitted = source.emit(mysignal)\n",
"\n",
"antennae = [\n",
2022-03-21 14:09:44 +01:00
" Receiver((*2*km*rot(0),8)),\n",
" Receiver((*3*km*rot(2), 4)),\n",
" Receiver((*10*km*rot(1), 7)),\n",
2022-03-10 17:38:54 +01:00
"]"
]
},
{
"cell_type": "code",
2022-03-21 14:09:44 +01:00
"execution_count": 5,
2022-03-10 17:38:54 +01:00
"metadata": {},
"outputs": [
{
"data": {
2022-03-21 14:09:44 +01:00
"image/png": "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
2022-03-10 17:38:54 +01:00
"text/plain": [
"<Figure size 144x144 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"########\n",
"### Geometry Plot\n",
"########\n",
2022-03-10 14:59:35 +01:00
"ylabel_kw = {\"rotation\": \"horizontal\", \"va\":\"center\", \"ha\":\"center\", \"labelpad\": 30}\n",
"\n",
"fig, axs = plt.subplots(1,1, figsize=(2,2))\n",
"axs = [ axs ]\n",
"i = 0\n",
2022-03-10 17:38:54 +01:00
"axs[i].grid()\n",
2022-03-10 14:59:35 +01:00
"axs[i].set_title(\"Geometry of Emitter(s) and Antennae\")\n",
2022-03-10 17:38:54 +01:00
"axs[i].set_ylabel(\"y (m)\", **ylabel_kw)\n",
"axs[i].set_xlabel(\"x (m)\")\n",
2022-03-10 14:59:35 +01:00
"axs[i].plot(*source.x, '*', label=\"Emitter\")\n",
"\n",
"for j, ant in enumerate(antennae):\n",
" axs[i].plot(*ant.x, '+', label=\"Antenna {}\".format(j))\n",
"\n",
2022-03-10 17:38:54 +01:00
"# make it a square plot\n",
"axs[i].set_aspect('equal', 'datalim')\n",
"axs[i].margins(0.1)"
]
},
{
"cell_type": "code",
2022-03-21 14:09:44 +01:00
"execution_count": 6,
2022-03-10 17:38:54 +01:00
"metadata": {},
"outputs": [
{
"data": {
2022-03-21 14:09:44 +01:00
"image/png": "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
2022-03-10 17:38:54 +01:00
"text/plain": [
"<Figure size 864x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"t_longoffset = t_offset\n",
"t_longstart = t_start\n",
"t_longend = 2*t_end\n",
"longtime = t_longoffset + np.arange(t_longstart, t_longend, 1/sample_rate) #s\n",
"\n",
"########\n",
2022-03-10 14:59:35 +01:00
"### Plot Traces\n",
2022-03-10 17:38:54 +01:00
"########\n",
"\n",
"fig, axs = plt.subplots(1+len(antennae),1, sharex=True, figsize=(12,6), gridspec_kw={\"hspace\":0})\n",
2022-03-10 15:41:09 +01:00
"axs[0].set_title(\"Traces of Emitter and Antennae\")\n",
2022-03-10 14:59:35 +01:00
"\n",
"# Emitter\n",
"i = 0\n",
2022-03-21 14:09:44 +01:00
"axs[i].set_ylabel(\"Emitter\\n at ({})\".format(source.x), **ylabel_kw)\n",
2022-03-10 17:38:54 +01:00
"axs[i].set_xlabel(\"Time (s)\")\n",
2022-03-10 14:59:35 +01:00
"axs[i].plot(time, emitted(time))\n",
2022-03-10 17:38:54 +01:00
"axs[i].plot(longtime, emitted(longtime))\n",
2022-03-10 14:59:35 +01:00
"\n",
"# Antenna\n",
"for j, ant in enumerate(antennae):\n",
" i +=1\n",
2022-03-21 14:09:44 +01:00
" axs[i].set_ylabel(\"Antenna {}\\n at ({})\".format(j, ant.x), **ylabel_kw)\n",
2022-03-10 14:59:35 +01:00
" axs[i].plot(longtime, ant.recv(emitted)(longtime), label=\"Antenna {}\".format(j))\n",
2022-03-10 17:38:54 +01:00
" axs[i].set_xlabel(\"Time (s)\")\n",
2022-03-10 14:59:35 +01:00
" "
2022-03-07 18:34:26 +01:00
]
2022-03-21 14:09:44 +01:00
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"from lib.sampling import Digitizer\n",
"\n",
"digit = Digitizer(sampling_frequency=1e1, resolution=0.5)\n",
"\n",
"analog_samples = int(1e3)\n",
"analog_time = np.linspace(0, 10, analog_samples)\n",
"analog_signal = lambda t: np.cos(-t**2/6)\n",
"\n",
"sample_time = digit.sample(analog_time, analog_samples)\n",
"quantised_signal = digit.digitise(analog_signal(sample_time))\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.set_xlabel(\"Time\")\n",
"ax.set_ylabel(\"Amplitude\")\n",
"ax.set_title(\"Digitised signals\")\n",
"\n",
"ax.plot(analog_time, analog_signal(analog_time), 'y', label='Analog')\n",
"ax.plot(sample_time, quantised_signal)\n",
"ax.scatter(sample_time, quantised_signal)\n",
"\n",
"plt.show();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Combination Antennae and Digitizers"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"digit = Digitizer(sampling_frequency=1e1, resolution=0.5)\n",
"\n",
"########\n",
"### Plot Traces\n",
"########\n",
"\n",
"fig, axs = plt.subplots(1+len(antennae),1, sharex=True, figsize=(12,6), gridspec_kw={\"hspace\":0})\n",
"axs[0].set_title(\"Traces of Emitter and Antennae (digitised)\")\n",
"\n",
"# Emitter\n",
"i = 0\n",
"axs[i].set_ylabel(\"Emitter\\n at ({})\".format(source.x), **ylabel_kw)\n",
"axs[i].set_xlabel(\"Time (s)\")\n",
"axs[i].plot(time, digit.digitise(emitted(time)))\n",
"axs[i].plot(longtime, emitted(longtime))\n",
"\n",
"# Antenna\n",
"for j, ant in enumerate(antennae):\n",
" i +=1\n",
" axs[i].set_ylabel(\"Antenna {}\\n at ({})\".format(j, ant.x), **ylabel_kw)\n",
" axs[i].plot(longtime, digit.digitise(ant.recv(emitted)(longtime)), label=\"Digitised Antenna {}\".format(j))\n",
" axs[i].set_xlabel(\"Time (s)\")\n",
" "
]
2022-03-07 18:34:26 +01:00
}
],
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}