Add signal modulation example notebook
This commit is contained in:
commit
b038394b3c
1 file changed
+229
@@ -0,0 +1,229 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 75,
|
||||||
|
"id": "06c37b04-0b3f-4d8a-bf1f-9b18a5383fac",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import numpy as np\n",
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"import scipy\n",
|
||||||
|
"\n",
|
||||||
|
"from scipy.fft import rfft, rfftfreq\n",
|
||||||
|
"from scipy.signal import find_peaks"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 58,
|
||||||
|
"id": "a022d2cc-0b5a-4bd5-8355-4a239d73b7f0",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"N = 1000\n",
|
||||||
|
"\n",
|
||||||
|
"total_time = 10\n",
|
||||||
|
"\n",
|
||||||
|
"t = np.linspace(0, total_time, N)\n",
|
||||||
|
"T = 0.2\n",
|
||||||
|
"F = 1 / T\n",
|
||||||
|
"\n",
|
||||||
|
"sampling_rate = N / total_time\n",
|
||||||
|
"\n",
|
||||||
|
"# 1000 -> 10\n",
|
||||||
|
"# x -> 1\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 59,
|
||||||
|
"id": "b2f41f84-c7b2-421b-95d2-26e6a0c2808c",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"100.0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 59,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"sampling_rate"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 84,
|
||||||
|
"id": "759b45c9-c943-4dbe-9a29-ca625821db60",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMkAAAGsCAYAAADHUfDaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsXQd4G1XWPZIsy73G6b0nkAqkkARCCSW0ZXfZpfwsvYcWIJRdeu9lCbD03pYFAiRACCSkhyQkIY2Q3ot7lWVZ1v/dN/NGT7JkS/NGics73+fPY9m+Hnleufe8c++1+f1+PxQUFBQUFBQUFBQUFBQUFBQUFFox7If6BhQUFBQUFBQUFBQUFBQUFBQUFA41FEmmoKCgoKCgoKCgoKCgoKCgoNDqoUgyBQUFBQUFBQUFBQUFBQUFBYVWD0WSKSgoKCgoKCgoKCgoKCgoKCi0eiiSTEFBQUFBQUFBQUFBQUFBQUGh1UORZAoKCgoKCgoKCgoKCgoKCgoKrR6KJFNQUFBQUFBQUFBQUFBQUFBQaPVIQAtDXV0d9uzZg/T0dNhstkN9OwoKCgoKCgoKCgoKCgoKCgoKhxB+vx/l5eXo2LEj7HZ76yHJiCDr0qXLob4NBQUFBQUFBQUFBQUFBQUFBYUmhJ07d6Jz586thyQjBRl/4xkZGWgJ8Hq9mDlzJk466SQ4nc5DfTsKEaCeU/OAek5NH+oZNQ+o59Q8oJ5T04d6Rs0D6jk1D6jn1PShnlHzgLcFPqeysjImqOKcUashyXiKJRFkLYkkS0lJYe+npQzQlgj1nJoH1HNq+lDPqHlAPafmAfWcmj7UM2oeUM+peUA9p6YP9YyaB7wt+Dk1VpZLFe5XUFBQUFBQUFBQUFBQUFBQUGj1UCSZgoKCgoKCgoKCgoKCgoKCgkKrhyLJFBQUFBQUFBQUFBQUFBQUFBRaPRRJpqCgoKCgoKCgoKCgoKCgoKDQ6qFIMgUFBQUFBQUFBQUFBQUFBQWFVg9FkikoKCgoKCgoKCgoKCgoKCgotHookkxBQUFBQUFBQUFBQUFBQUFBodVDkWQKCgoKCgoKCgoKCgoKCgoKCq0eiiRTUFBQUFBQUFBQUFBQUFBQUGj1UCSZgoKCgoKCgoKCgoKCgoKCgkKrhyLJFBQUFBQUFBQUFBQUFBQUFBRaPRRJpqCgoKCgoKCgoKCgoKCgoKDQ6qFIMgUFBQUFBQUFBQUFBQUFBQWFVo+EQ30DCq0LJdUl2F22m32u89chJzkHHdI7sM8KCgrRo7auFluLt7K5VOmtRIYrA21T26JjekfYber8Q0EhWvj9fhyoPIDd5btR5a1ir7VPa8/mUooz5VDfnoJCs4Lb68amok2oqKlAja8G2cnZ6JzRGdlJ2bDZbIf69hQUmpWft7N0JwqqCpifl56YzuKlblndlJ+noBBnKJJMIe7O0tMfL8WKmv9iVeW32Fy8OezPdc/qjlGdR+FP/f6E0/uejtTE1IN+rwoKTT2Q/3Xvr/h8/ef4fvP3WHNgDTw+T72fI7JsRKcROLHHiTj38HOZM6WgoBCMveV7MW3DNHz9x9f4ZfcvLAgJhQ02DG43GOO6jsNfB/4V47qNU4GJgkIIiAj7ftP3mL5xOmZtmYUtxVvgh7/ezxHxfEy3Y3BSz5NwzmHnsL1KQUEhGL/tXYdP1nyKubt+xPI9y+Guddf7mbTENAxtPxQn9zqZ7U392/Q/JPeqoNCSoUgyhbhgT/kePLf4OUz93ypU/ed7IOlw4I4X2ffoFIROFCnYKHIXodBdiG0l29jHx2s+RqozFZcNuwy3HH0LumZ2PdRvRUHhkAcgH63+CE8vehqrZw4D5t0J/P0LoK2HqVxyk3MZqVzmKWNqGPpMgQp93PHjHTiu+3G4a9xdOKHHCeoUX6HVY8muJXh28bP4bN1n8Pl9QYQYqZpp/6HX91XsY6qyVftXsY8Xl76IbpndcMPIG3D1kVcrhZlCq0d+ZT6mLp2KV5a9gv2FVUBSufG9rKQs5usl2BOYn0ckNM2pT9d+yj6u//Z6/P3wv+POsXeib27fQ/o+FBQONSizhg5AH5v/OJbf+x/A83/AdY8CCTVwOVzIS81jxFi5p5zNJVJpzt8xn33cPftujO48GrcdfRvO6n+WOshRULAIiiRTsBSVNZV4eN7DLKCn4B5rHtW+UZ2Dmf83E8M7DEduSm7Q71C6GClkftj8Az5d9yk7hXzhlxfw0rKXcN1R1+H+8fcjMynz0LwhBYVDqBwjpcstM29hc4Lhy9/Yp5GbZuD9B2vRM7tnkENE0vy1B9Ziwc4FjASYs20OZm+bzT6O7nI0/n3qv9kcVFBobaA5dNsPt7FAhMHrQt6czzG4XzYeezAZA/MGBhFfNP/2VuzFwp0L8d2m7/Dfdf/F9tLtbD4+vuBxti9decSVKiBRaHWorq1mh6CPzHsE5TXlwPLLga9fw/E3vY9brs3BkR2PRF5KXtChDBHOy/Ysw+yts/Hx2o/xe8HveHvl23hv1Xv4x5B/4NETHkW7tHaH9H0pKBwK/LT1J9zw7Q1Ym78WcGcC+zQf7Y4en+OiM3sxEjnUz/uj8A+2N33x+xcsdlq0axH+/OmfMaTdEObnkepZQUFBDsq7U7AMFEj0n9ofj85/lBFkY7uOxdn9zjG+P6LNhHoEGT9xPL7H8Xj0xEex6fpN+OHCH9jXtBE8v+R5ZtMIbBQUWkkq2OkfnY6zPzmbBfeUpvLg2KeM7/fI6Y7eOb3rBeh0aj+k/RBce9S1+Omin7Dtpm24YcQNSEpIYg7VUa8dhZu+u4mlQSsotAb46nx4YsETGDB1ANtHaM5QUH7Cyn3IX3AmfnxzHIa1O7KeMowCfKpJRqksr5/5Ovbdsg+vn/E6emT1YIrNa6ZfgzFvjmGktIJCa1JiDnllCO788U5GkA1rPwztVj7DvvfTc/+H47tMZLUxQ1XLNL8o1fLe8fdi3bXrsPDShay0Bqk231r5FpufRJoROa2g0BpACssLPr8AJ7x7AiPIKBa6ZsADxvd71Z3G0ijD+Xl0qHP58Msx/fzp2H7TdqbIzHRlMtXzMW8fg4u/vJhlFSgoKJiHIskUpOGp9WDy95Nx6genYlfZLlZfbNq50zD34rlIr+1l/NzOnY3bIsfqxJ4n4sd//Ijv/+97doJCEv2/fPoXXPPNNSq4V2jx+HrD1xj8ymDM2DgDiY5E5vxsvH4jjk28xfiZpKTobFG68vOnPo/NN2xm9clI0k/E84jXR2B9/vr4vQkFhSYAahJDAcjts25nBze0t6y6ehXuH/oOfpyeZfxcaWnjtpKdybhs+GXYMGkDXjjlBVZAefGuxTjytSPx5oo3VXCv0KJBe8d9c+7D0W8ezVQsRCC/+6d3sezKZRjcP934uffei87PG91lNL4+72ssumwRq61UXF2MS6Zdgr9/9ncV3Cu0eCzYsQBDXxmKD1d/yFL9KWtm641b8ffuNxg/s3JldLaoTMAjJzyCTTdswpXDr2T23ln1DrNPe5SCgoI5KJJMQbomxfHvHs9qvBAmHTWJnRKe2e9M5ght3Rr42R07YrN9Uq+T8NvVv+GOMXewRf+V5a+wk3sKfBQUWhooyH5o7kM48+MzWc0Jks2vuGoFc36oFsWiRYGfzc+PzTYFNB/95SN8e8G3aJfajhX9p+D+i/VfWP4+FBSaiuKFxvjP239mdcZeO+M1lvJ/eNvDsW9f8M8WF0dv1+lw4vqR12P9detxSu9TWOrZZV9dxj5YiQEFhRYGIq3+9PGfcP/P9zOy7IJBF2DNNWtw4ZALmcqloiLwsytWxGabGjb9cvkveOyEx+C0O1laMyme1SGOQkvF1F+m4ti3j8XOsp0sI2DJ5Uvw4sQXmZJM3JtinUttUtrgP2f8B/Mvnc/ECltLtuKYt47BWyvesvw9KCi0BiiSTME0yIkZ+fpIlsZFMl9Sj/174r/ZiTuHDElGcCW4WBomqcqoxsWKfSvY31y5L8ojFgWFZgAKri/84kJWgJWTzeQ4kaSeY8kS8yQZBwX1pKShIv5UI4YUms8uelapYBRaFKgwOAUhpEImUmzl1StZagpPAQtVjhUVxf43OmV0Yqkujxz/CCMKKGVs4gcTUVodhSxNQaGZgA4lR78xmnWBpQLi7/zpHbz/5/eRnZwddv6UmRCBEfF8+9jbMfeSueic0Zkp1ehAlNQ2CgotKfWfsm4mfTuJpRmfP+h8/Hrlrziq01HGz+zfH/j5VauAurrY/w7Vn1151UpWKsBb58WlX12K23+4nRHcCgoK0UORZAqmQCTVuLfGsZMKKh6++PLFTD0mwuMBdu+WI8k4JvSawEiDAW0GYHf5box79kJ8vWyZxDtQUGgaICXKnz/5Mz5Y/QGrNfHKaa8wspkIYhHiCeOBA+b/HhVH/u7/vsM1R14DP/yYPHMy7vrxLkWUKbQIvPHrGzj3s3Ph8XnYnkS1j+i0XkQoSRaLkkwEkWN3jrsTM86fwdSeP279kdWDIYW1gkJzx6aiTRj71lisy1/H1MjzLpnH6vmFQpYkE1VlRBqM7DSSpV+e+N6JrPyAgkJzB9VYvujLi4ysGzpcef/s95HuCqQqh/p5lZXm4yZqdvbJXz/B3cdoB69PfPsBznrsKUWUKSjEAEWSKcQM6lB0/DvHo9BdyLoYLb5sMSsuGYrt2ymFzBqSjNAjuwcWXrYQo9tMRMUTq3HmqEGYt32+nFEFhUMIUnOd/uHpmL5xOpITkvHNed/gqiOvCvuzYkqLDElGIDJu6sSpeOLEJwBPKh57phzX/+9+RZQpNGu8tPQlXP715Yz8pdosn//t83pBiJUkGcfJvU9mNTipwcZv+39jJQgUUabQnEFqLjoI3VayjZHMRDaLihcO2jJEkiya+n4NIS81j9WkndDu/1D9/oc4+4ln8M0f38gZVVA4xATZ/33+f8ZB6Id//pAdroQ2twhVksmSznSI88BxD+Cts94Line truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 1500x500 with 1 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"fig, ax = plt.subplots(1, 1, figsize=(15, 5))\n",
|
||||||
|
"\n",
|
||||||
|
"A_carrier = 1\n",
|
||||||
|
"F_carrier = np.sin(2 * np.pi * F * t)\n",
|
||||||
|
"carrier = A_carrier * F_carrier\n",
|
||||||
|
"\n",
|
||||||
|
"A_signal = 0.7\n",
|
||||||
|
"F_signal = np.sin(2 * np.pi * F/10 * t)\n",
|
||||||
|
"signal = A_signal * F_signal\n",
|
||||||
|
"\n",
|
||||||
|
"modulation = (A_carrier + signal) * F_carrier\n",
|
||||||
|
"\n",
|
||||||
|
"ax.plot(t, carrier, color='r')\n",
|
||||||
|
"ax.plot(t, signal, color='g', alpha=.2)\n",
|
||||||
|
"ax.plot(t, A_carrier + signal, color='g')\n",
|
||||||
|
"ax.plot(t, modulation, color='b')\n",
|
||||||
|
"ax.set_xticks(np.arange(11))\n",
|
||||||
|
"ax.grid(True)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 63,
|
||||||
|
"id": "c0e31a3e-29a9-4e7e-a058-4efb96eba5aa",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"signal_spectrum = np.abs(rfft(modulation))\n",
|
||||||
|
"freq = rfftfreq(modulation.size, d=1/sampling_rate)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 82,
|
||||||
|
"id": "484412c6-38da-4ad4-8bac-c4c5873299ff",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Carrier frequency 5.0 Hz\n",
|
||||||
|
"Carrier + Signal 5.5 Hz\n",
|
||||||
|
"Carrier - Signal 4.5 Hz\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"print(f\"Carrier frequency {F} Hz\")\n",
|
||||||
|
"print(f\"Carrier + Signal {F + F/10} Hz\")\n",
|
||||||
|
"print(f\"Carrier - Signal {F - F/10} Hz\")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 67,
|
||||||
|
"id": "02b3729d-f88a-4a2d-861f-df2ceb650d10",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "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 truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 1500x500 with 1 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"fig, ax = plt.subplots(1, 1, figsize=(15, 5))\n",
|
||||||
|
"\n",
|
||||||
|
"ax.plot(freq, signal_spectrum)\n",
|
||||||
|
"ax.set_xticks(np.arange(0, sampling_rate/2, 1))\n",
|
||||||
|
"ax.grid(True)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 80,
|
||||||
|
"id": "285e8ff9-7c14-404c-97b0-3af677e4c592",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"array([4.5, 5. , 5.5])"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 80,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"freq[find_peaks(signal_spectrum)[0]]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 81,
|
||||||
|
"id": "89484634-8aed-4131-8b98-14fa55ed05c8",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"(array([45, 50, 55]), {})"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 81,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"find_peaks(signal_spectrum)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "245a37f5-573d-4180-a0bf-74406beb6177",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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.12.9"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
Reference in new issue
Block a user