156 lines
52 KiB
Plaintext
156 lines
52 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Optoelectronic Systems Theory Assignment\n",
|
|
"\n",
|
|
"1. For a cylindrical diffraction-limited optical system (Fig. 1), on which a plane monochromatic wave with length $\\lambda$ and amplitude $A=1$ falls, find:\n",
|
|
"\n",
|
|
" 1. A coherent transfer function $\\tilde{h}(\\nu_x)$ and plot its graph\n",
|
|
" 2. An optical transfer function $\\tilde{H}_N^{OS}(\\nu_x)$ and plot its graph\n",
|
|
"\n",
|
|
"2. Find a polychromatic transfer function $\\tilde{H}^{PC}(\\nu_x)$ for the radiation of a corresponding blackbody with temperature $T$, if the image is formed in the rear focal plane, and the spectral sensitivity of the radiation receiver is approximated by a Gaussian distribution with a mathematical expectation of 600 nm and a standard deviation of 100 nm. The pupil function $P(\\xi)$ is shown in Figure 2.\n",
|
|
"\n",
|
|
"3. Find the time-frequency spectrum of the radiation flux $\\tilde{\\Phi}_t(\\nu_t)$ and the magnitude of the radiation flux $\\Phi_t(t)$ in the image analysis plane of the optical system at the output of the modulator of the image analyzer during its linear scanning (Fig. 3) and plot their graphs. The optical system is a lens with a normalized scattering function $H_N^{OS}(x', y')=\\delta(x', y')$, the source of radiation is an object in the form of a rectangle with a constant energy brightness $L_0$, the study of which obeys Lambert's law. The modulator of the image analyzer is a lattice with a cosine distribution of the transmission coefficient along the x axis."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import scipy.signal\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Initial data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"wavelength = 0.7e-3 # mm\n",
|
|
"focus = 110 # mm\n",
|
|
"\n",
|
|
"def triangle(x):\n",
|
|
" return np.where(np.abs(x) <= 1, 1 - np.abs(x), 0)\n",
|
|
"\n",
|
|
"def rect(x):\n",
|
|
" return np.where(np.abs(x) <= 0.5, 1, 0)\n",
|
|
"\n",
|
|
"def pupil(x):\n",
|
|
" return triangle((x - 3) / 3) * rect((x - 1.5) / 3)"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Pupil function"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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/QXq8cvJyTGaNm1qJCcnG/fee68xduzY665rxjG07MhIQUGB0tLS1L179+JlQUFB6t69u9avX1/iNuvXr79qfUnq1avXddc3W1l6lKQLFy6oUaNGio6Ovun/AQSaQDuGZdWhQwfVq1dPPXr00FdffWV2OaV2/vx5SVLNmjWvu04gH8PS9CcF7mfQ4XBo6dKlys3NVXx8fInrBPLxK01/UmAev9GjR+vhhx++5tiUxIxjaNkwcurUKTkcDkVFRV21PCoq6rrz65mZmW6tb7ay9Ni8eXPNnTtXH330kRYuXCin06k777xTR44cKY+Sfe56xzA7O1sXL140qSrvqVevnmbMmKH3339f77//vqKjo3XfffcpPT3d7NJuyul0aty4cbrrrrvUpk2b664XaJ/DIqXtLxA/g1u3blWVKlUUFhamJ554Qh988IFatWpV4rqBePzc6S8Qj9/SpUuVnp6uKVOmlGp9M45hQDy1F94THx9/VeK/88471bJlS7355pt6+eWXTawMpdG8eXM1b968+PWdd96pvXv36rXXXtOCBQtMrOzmRo8erW3btunLL780uxSfKG1/gfgZbN68uTIyMnT+/Hm99957Gjp0qNauXXvdP9iBxp3+Au34HT58WGPHjlVycrJfn2hr2TBSq1YtBQcHKysr66rlWVlZqlu3bonb1K1b1631zVaWHn8oJCREHTt21J49e3xRYrm73jGMjIxU5cqVTarKt2JjY/3+D/yYMWP08ccf64svvlDDhg1vuG6gfQ4l9/r7oUD4DIaGhqpJkyaSpM6dO2vTpk36+9//rjfffPOadQPx+LnT3w/5+/FLS0vTiRMn1KlTp+JlDodDX3zxhV5//XXl5+crODj4qm3MOIaWnaYJDQ1V586dlZKSUrzM6XQqJSXlunOB8fHxV60vScnJyTecOzRTWXr8IYfDoa1bt6pevXq+KrNcBdox9IaMjAy/PX6GYWjMmDH64IMP9Nlnn6lx48Y33SaQjmFZ+vuhQPwMOp1O5efnl/i1QDp+13Oj/n7I34/fAw88oK1btyojI6P4X5cuXTRo0CBlZGRcE0Qkk46hz06N9QNLly41wsLCjPnz5xvffvutMWrUKKN69epGZmamYRiGMXjwYGP8+PHF63/11VdGpUqVjL/97W/Gjh07jEmTJhkhISHG1q1bzWrhptztcfLkycaqVauMvXv3GmlpaUb//v2N8PBwY/v27Wa1cEM5OTnGli1bjC1bthiSjKlTpxpbtmwxDh48aBiGYYwfP94YPHhw8fr79u0zIiIijGeeecbYsWOHMX36dCM4ONhYuXKlWS3ckLv9vfbaa8aHH35ofPfdd8bWrVuNsWPHGkFBQcann35qVgs39OSTTxrVqlUz1qxZYxw/frz4X15eXvE6gfw5LEt/gfYZHD9+vLF27Vpj//79xjfffGOMHz/esNlsxurVqw3DCOzjZxju9xdox68kP7yaxh+OoaXDiGEYxj//+U/jtttuM0JDQ43Y2FgjNTW1+Gv33nuvMXTo0KvWf+edd4xmzZoZoaGhRuvWrY3ly5eXc8Xuc6fHcePGFa8bFRVl9O7d20hPTzeh6tIpupT1h/+Keho6dKhx7733XrNNhw4djNDQUOP222835s2bV+51l5a7/f35z3827rjjDiM8PNyoWbOmcd999xmfffaZOcWXQkm9SbrqmATy57As/QXaZ3D48OFGo0aNjNDQUKN27drGAw88UPyH2jAC+/gZhvv9BdrxK8kPw4g/HEObYRiG78ZdAAAAbsyy54wAAIDAQBgBAACmIowAAABTEUYAAICpCCMAAMBUhBEAAGAqwggAADAVYQQAAJiKMAIAAExFGAEAAKYijAAAAFMRRgAAgKn+H3Ewc06JY7P5AAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"x = np.linspace(0, 4, 1000)\n",
|
|
"\n",
|
|
"plt.figure()\n",
|
|
"plt.plot(x, pupil(x))\n",
|
|
"plt.grid()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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IiIi8hoMLkREROQ1FB1cAgICsGTJEgQEBMhdissppVel9Akop1el9AmwV1+klD4B9/XqE5NziYiISBkUfcaFiIiIvAuDCxEREXkNBhciIiLyGgwuRERE5DV8PrhUV1fjpz/9KUJDQxEeHo6nnnoKjY2N3T6ntbUVzzzzDHr37o1evXrhoYceQkVFRad99u3bh3vvvRfh4eGIiIhAVlYWDh486MpWuuWqPgHg3XffxciRI6HT6RAdHY1nnnnGVW30iCt7BYArV64gISEBKpUKtbW1LuigZ1zR58GDBzF79mwkJiYiMDAQqampWLlypatbucHq1auRnJwMnU6H9PR07N27t9v9N2zYgJSUFOh0OowYMQKbN2/u9LgQAosXL0bfvn0RGBiIzMxMnDx50pUt9JgzezUajXjhhRcwYsQIBAcHIy4uDnPmzEF5ebmr27gpZ3+m13r66aehUqmwYsUKJ1ftGFf0WlxcjBkzZiAsLAzBwcEYP348SktLXdVCjzi7z8bGRuTk5CAhIQGBgYEYOnQo1qxZY39hwsdNmzZNjBo1SuzevVt89913YtCgQWL27NndPufpp58WiYmJIi8vTxQUFIjbb79dTJw40fp4Q0ODiIyMFE888YQoKSkRR44cEQ899JCIiYkRBoPB1S3Z5Io+hRBi+fLlIi4uTnz44Yfi1KlT4uDBg+Kzzz5zZSs35apeJQ888ID44Q9/KACImpoaF3TQM67o85133hHPPvus2LFjhzh9+rT4v//7PxEYGChWrVrl6nasPvroI+Hv7y/Wrl0rjh49KubNmyfCw8NFRUWFzf137twpNBqNeO2118SxY8fEiy++KLRarTh8+LB1n1deeUWEhYWJjRs3ioMHD4oZM2aI/v37i5aWFne1ZZOze62trRWZmZli/fr1oqSkROTn54sJEyaIsWPHurOtG7jiM5V88sknYtSoUSIuLk788Y9/dHEnN+eKXk+dOiUiIyPFggULRFFRkTh16pT47LPPujymO7iiz3nz5omBAweK7du3i7Nnz4q//vWvQqPR2P07xaeDy7FjxwQAsW/fPuu2L774QqhUKlFWVmbzObW1tUKr1YoNGzZYtxUXFwsAIj8/XwghxL59+wQAUVpaat3n0KFDAoA4efKki7rpmqv6rK6uFoGBgeKrr75ybQN2cFWvkj//+c9i8uTJIi8vT9bg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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"x = np.linspace(-1, 1, 1000) * focus * wavelength\n",
|
|
"h = scipy.signal.convolve(pupil(-x), pupil(x), 'full')\n",
|
|
"x = np.linspace(-1, 1, len(h)) * focus * wavelength\n",
|
|
"\n",
|
|
"plt.figure()\n",
|
|
"plt.plot(x, h)\n",
|
|
"plt.grid()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"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.11.2"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|