{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Coupling efficiency\n", "\n", "We can compute the mode overlaps between a waveguide and a fiber mode.\n", "\n", "Fiber modes are usually described with their [MFD Mode field Diameter](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=14203#:~:text=The%20mode%20field%20diameter%20(MFD,achieve%20particularly%20high%20coupling%20efficiency.)\n", "\n", "or [Numerical Aperture (NA)](https://en.wikipedia.org/wiki/Numerical_aperture)\n", "\n", "\n", "For [standard single mode fiber SMF28](https://www.corning.com/media/worldwide/coc/documents/Fiber/SMF-28%20Ultra.pdf), the MFD is 10.4 for 1.55um wavelength.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import modes\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "widths = np.linspace(0.15, 0.5, 5)\n", "ces = np.zeros_like(widths)\n", "\n", "for i, width in enumerate(widths):\n", " ms = modes.mode_solver_semi(width=width, plot=False)\n", " ce = modes.coupling_efficiency(mode_solver=ms, fibre_mfd=10.4)[0]\n", " ces[i] = ce" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ms = modes.mode_solver_semi()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(widths, ces*100)\n", "plt.title('SMF fiber and 0.22um thick waveguide TE0 mode overlap')\n", "plt.xlabel('waveguide width (um)')\n", "plt.ylabel('Single mode fiber overlap (%)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many silicon photonics technologies use standard 0.22um thick SOI Silicon, and 0.5um wide waveguides for single mode condition. However, you can only get 15% fiber coupling from a 0.5x0.2 waveguide into a fiber.\n", "\n", "A common solution is to increase the mode size by tapering down to a narrower waveguide (inverse taper). As you can see, for a single mode fiber, you can reach around 3dB (50%) coupling efficiency with an inverse taper where the tip tapers down to 0.15um.\n", "\n", "To increse coupling efficiency there are other options:\n", "\n", "- High NA fibers with reduced MFD\n", "- Lens focusing fibers\n", "\n", "For example, [lensed fibers](https://www.ozoptics.com/ALLNEW_PDF/DTS0080.pdf) have a spot size diameter from 2 to 7.5um" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "widths = np.linspace(0.15, 0.5, 5)\n", "ces = np.zeros_like(widths)\n", "\n", "for i, width in enumerate(widths):\n", " ms = modes.mode_solver_semi(width=width, plot=False)\n", " ce = modes.coupling_efficiency(mode_solver=ms, fibre_mfd=4.)[0]\n", " ces[i] = ce" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(widths, ces*100)\n", "plt.title('High NA fiber and 0.22um thick waveguide TE0 mode overlap')\n", "plt.xlabel('waveguide width (um)')\n", "plt.ylabel('Single mode fiber overlap (%)')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wavelength = 1.55\n", "MFD = np.linspace(2, 7.5, 10)\n", "NA = wavelength/np.pi/(MFD/2)\n", "NA" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ces = np.zeros_like(MFD)\n", "width = 0.18\n", "\n", "for i, mfd in enumerate(MFD):\n", " ms = modes.mode_solver_semi(width=width, plot=False)\n", " ce = modes.coupling_efficiency(mode_solver=ms, fibre_mfd=mfd)[0]\n", " ces[i] = ce" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(MFD, ces*100)\n", "plt.title('lens fiber 0.18 x 0.22um thick waveguide TE0 mode overlap')\n", "plt.xlabel('lensed fiber MFD (um)')\n", "plt.ylabel('coupling efficiency (%)')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(NA, ces*100)\n", "plt.title('lens fiber 0.18 x 0.22um thick waveguide TE0 mode overlap')\n", "plt.xlabel('lensed fiber NA')\n", "plt.ylabel('coupling efficiency (%)')" ] } ], "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.9.7" } }, "nbformat": 4, "nbformat_minor": 4 }