scieee AI-readable full text Open interactive document viewer

Optické vláknové komunikace: Sbírka početních příkladů

Skapa, Jan

Abstract

Soubor obsahuje sérii pracovních *.ipynb souborů pro Jupyter Notebook s využitím Octave Kernel. Dále jsou přiloženy soubory typu *.m pro práci v prostředí GNU Octave. V PDF souboru jsou uvedeny příklady výstupů z jednotlivých *.ipynb souborů, přičemž název příslušného souboru je uveden na konci každého příkladu v PDF.

Full text

Optické vláknové komunikace Sbírka početních příkladů Ing. Jan Skapa, Ph.D Ostrava Předložený text představuje export pracovních *.ipynb souborů pro Jupyter Notebook s využitím Octave Kernel. Dále jsou přiloženy soubory typu *.m pro práci v prostředí GNU Octave. Název příslušného souboru je uveden na konci každého příkladu. Obsah 1 Rychlost světla ve vodě 2 2 Rychlost světla v jádře optického vlákna 4 3 Index lomu vzduchu 6 4 Lom světla na rozhraní 2 optických prostředí 7 5 Lom světla na rozhraní 2 optických prostředí 9 6 Lom světla na rozhraní 2 optických prostředí; odraz světla 11 7 Úhel odrazu paprsku 14 8 Mezní úhel na rozhraní vody a vzduchu 15 9 Numerická apertura 17 10 Mezní úhel pro navázání světla do vlákna 18 11 Frekvence a vlnová délka elektromagnetického vlnění 20 12 Frekvence viditelného světla 21 1 1 Rychlost světla ve vodě Zadání Víme, že rychlost světla ve vakuu je rovna c0= 299792458 [m/s]. Určete rychlost světla ve vodě vvoda, když známe index lomu vody n1=nvoda = 1.33. Řešení vvoda =c0 nvoda [1]: %% Rychlost světla ve vodě %Inicializace clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window %Zadání c_0 = 299792458;%[m/s] n_voda = 1.33;%n_1 [-] %Výpočet c_voda =c_0 /n_voda; %[m/s] %Výpis výsledku printf(strcat(['c_voda = ', num2str(c_voda), '[m/s]\n'])) c_voda = 225407863.1579 [m/s] 2 Pracovní soubory Oct0010_Rychlost_svetla_ve_vode.ipynb Oct0010_Rychlost_svetla_ve_vode.m 3 2 Rychlost světla v jádře optického vlákna Zadání Víme, že rychlost světla ve vakuu je rovna c0= 299792458 [m/s]. Určete rychlost světla vSiO2v materiálu jádra optického vlákna, když víme, že index lomu jádra optického vlákna je roven nSiO2= 1,5. Řešení cSiO2=c0 nSiO2 [1]: %% Rychlost světla v jádře optického vlákna %Inicializace clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window %Zadání c_0 = 299792458;%[m/s] n_SiO_2 = 1.5;%SiO2 -jádro vlákna %Výpočet v_SiO_2 =c_0 /n_SiO_2; %[m/s] %Výpis výsledku printf(['v_SiO_2 = ', num2str(v_SiO_2), '[m/s]\n']); 4 v_SiO_2 = 199861638.6667 [m/s] Vidíme tedy, že rychlost světla v jádře optického vlákna je o třetinu nižší než rychlost světla ve vakuu. Pracovní soubory Oct0015_Rychlost_svetla_v_jadre_optickeho_vlakna.ipynb Oct0015_Rychlost_svetla_v_jadre_optickeho_vlakna.m 5 3 Index lomu vzduchu Zadání Víme, že rychlost světla (obecně elektromagnetického vlnění) ve vakuu je rovna c0= 299792458 [m/s] Určete index lomu vzduchu, víme-li, že rychlost světla ve vzduchu je rovna vvzduch = 299709642 [m/s]. Řešení nvzduch =c vvzduch [1]: %Inicializace clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window %Zadání c_0 = 299792458;%[m/s] v_vzduch = 299709642;%[m/s] %Výpočet n_vzduch =c_0 /v_vzduch; %[m/s] %Výpis výsledku printf(['n_vzduch = ', num2str(n_vzduch), '[-]\n']); n_vzduch = 1.0003 [-] Výsledek srovnejte s https://hypertextbook.com/facts/2005/MayaBarsky.shtml nebo https://refractiveindex.info/?shelf=other&book=air&page=Ciddor Pracovní soubory Oct0020_Index_lomu_vzduchu.ipynb Oct0020_Index_lomu_vzduchu.m 6 4 Lom světla na rozhraní 2 optických prostředí Zadání Mějme rozhraní 2 optických prostředí s indexy lomu nvoda = 1.33 anvzduch = 1. Vypočítejte, pod jakým úhlem se zalomí paprsek ve vodě, dopadá-li na hladinu ze vzduchu pod úhlem φvzduch = 30◦. Řešení Ze Snellova zákona lomu n1sin(φ1) = n2sin(φ2)plyne sin(φvoda) = nvzduch nvoda sin(φvzduch). [4]: %% Lom světla na rozhraní vzduch-voda %Ïnicializace clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window %Zadání n_vzduch = 1;%[-] n_voda = 1.33;%[-] phi_vzduch = 30;%[°] Stupne %Výpočet phi_voda =asind( n_vzduch /n_voda *sind(phi_vzduch) ); %[°] Stupně phi_voda_stupne =floor(phi_voda); %[°] phi_voda_minuty =floor((phi_voda -floor(phi_voda))*60); %['] phi_voda_vteriny =floor((phi_voda_minuty -floor(phi_voda_minuty))*60); %␣ ,→[''] %Výpis výsledku 7 printf(['phi_voda = ', num2str(phi_voda_stupne), '° ',␣ ,→num2str(phi_voda_minuty), ''' ', num2str(phi_voda_vteriny), '''''']); phi_voda = 22°4'0'' Početně jsme tedy ověřili, že při průchodu světla z prostředí opticky řidšího (vzduch) do prostředí opticky hustšího (voda) dochází k lomu “ke kolmici”. Pracovní soubory Oct0030_Lom_svetla_na_rozhrani_2_optickych_prostredi_1_vzduch_voda.ipynb Oct0030_Lom_svetla_na_rozhrani_2_optickych_prostredi_1_vzduch_voda.m 8 8 Mezní úhel na rozhraní vody a vzduchu Zadání Uvažujme vodní hladinu, tedy rozhraní 2 optických prostředí s indexy lomu nvoda = 1.33 (n1)a nvzduch = 1 (n2). Vypočítejte kritický úhel mezi lomem a odrazem světla na tomto rozhraní, dopadá-li paprsek na hladinu z vody. Řešení [1]: clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window %% Mezní úhel pro lom světla na rozhraní 2optických prostředí %Zadání n_vzduch = 1;%(n_1) n_voda = 1.33;%(n_2) Aplikujeme Snellův zákon lomu n1sin(φ1) = n2sin(φ2) nvoda sin(φc) = nvzduch sin π 2 | {z } 1 sin φc=nvzduch nvoda [2]: %Výpočet phi_c =asind( n_vzduch /n_voda ); %$ \varphi_{c} =\arcsin\left(␣ ,→\frac{n_{vzduch}}{n_{voda}} \right) $ phi_c_stupne =floor(phi_c); %[°] phi_c_minuty =floor((phi_c -floor(phi_c))*60); %['] phi_c_vteriny =floor((phi_c_minuty -floor(phi_c_minuty))*60); %[''] 15 printf('\n Výsledek:\n'); printf(['phi_c = ', num2str(phi_c_stupne), '° ', num2str(phi_c_minuty), '''␣ ,→', num2str(phi_c_vteriny), '''''\n']); Výsledek: phi_c = 48°45'0'' Pracovní soubory Oct0070_Mezni_uhel_na_rozhrani_voda_vzduch.ipynb Oct0070_Mezni_uhel_na_rozhrani_voda_vzduch.m 16 9 Numerická apertura Zadání Uvažujme optické vlákno s indexem lomu jádra n1= 1.5a numerickou aperturou (dle katalogu výrobce optického vlákna) NA = 0.14. Vypočítejme index lomu pláště n2. Řešení [ ]: clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window [1]: %% Numerická apertura NA %Zadání n_1 = 1.5;%SiO2 -jádro vlákna NA = 0.14; n_2 =sqrt(n_1^2-NA^2); disp('Výsledek:') printf(['n_2 = ', num2str(n_2), '\n']) Výsledek: n_2 = 1.4935 Vypočtěme dále rozdíl indexů lomu jádra a pláště. [7]: format none diff_n =n_1 -n_2 diff_n = 0.00654762 Je patrné, že u konvenčních optických vláken se indexy lomu jádra a pláště liší až na 3. destetinném místě. Někdy může být rozdíl ještě menší. .. Pracovní soubory Oct0080_Numericka_apertura_NA.ipynb Oct0080_Numericka_apertura_NA.m 17 10 Mezní úhel pro navázání světla do vlákna Zadání Uvažujme optické vlákno s indexem lomu jádra n1a pláště n2. Vypočítejme mezní (kritický, příjmový, akceptační) úhel αcpro navázání světla do vlákna. Řešení [ ]: clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window [2]: %% Mezní úhel pro navázání světla do optického vlákna %Zadání n_1 = 1.5;%SiO2 -jádro vlákna NA = 0.14; n_2 =sqrt(n_1^2-NA^2); %Vnější prostředí vzduch -n_vzduch = 1 n_vzduch = 1; [4]: printf(['\n',... 'Vypočítejte, jaký je mezní úhel pro navázání světla do optického␣ ,→vlákna,\n',... 'známe-li indexy lomu jádra\n',... 'n_1 = ', num2str(n_1), '\n',... 'a\n',... 'pláště\n',... 'n_2 = ', num2str(round(n_2*1000)/1000), '\n',... 'optického vlákna a vnějšího prostředí s indexem lomu\n',... 'n_0 = n_vzduch = ', num2str(n_vzduch), '.\n']); Vypočítejte, jaký je mezní úhel pro navázání světla do optického vlákna, známe-li indexy lomu jádra n_1 = 1.5 18 a pláště n_2 = 1.493 optického vlákna a vnějšího prostředí s indexem lomu n_0 = n_vzduch = 1. [5]: %Výpočet NA =sqrt( n_1^2 - n_2^2 ); %$ NA =\sqrt{ n_1^2 - n_2^2 } $ alpha_c_vzduch =asind(NA /n_vzduch); %[°] $ \alpha_{c\_vzduch} =␣ ,→\arcsin\left( \frac{1}{n_{vzduch}} NA \right) $ alpha_c_vzduch_stupne =floor(alpha_c_vzduch); %[°] alpha_c_vzduch_minuty =floor((alpha_c_vzduch -floor(alpha_c_vzduch))*60); %␣ ,→['] alpha_c_vzduch_vteriny =floor((alpha_c_vzduch_minuty -␣ ,→floor(alpha_c_vzduch_minuty))*60); %[''] printf('\n Výsledek:\n') printf(['NA = ', num2str(NA), '\n']) printf(['alpha_c = ', num2str(alpha_c_vzduch_stupne), '° ',␣ ,→num2str(alpha_c_vzduch_minuty), ''' ', num2str(alpha_c_vzduch_vteriny),␣ ,→'''''\n']) Výsledek: NA = 0.14 alpha_c = 8°2'0'' Úhel αcpak tvoří polovinu vrcholového úhlu příjmového kužele pro navázání světla do vlákna. Pracovní soubory Oct0090_Mezni_uhel_vzduch_vlakno.ipynb Oct0090_Mezni_uhel_vzduch_vlakno.m 19 11 Frekvence a vlnová délka elektromagnetického vlnění Zadání Spočtěte vlnovou délku lambda nosné vlny vaší oblíbené rozhlasové stanice na velmi krátkých vlnách (VKV), jestliže znáte její frekvenci f. Řešení [9]: clear all;%Remove all variables close all;%Close all graphic windows101. clc; %Clear the Command Window %% Spočtěte vlnovou délku nosné vlny vaší oblíbené rozhlasové stanice na␣ ,→velmi krátkých vlnách (VKV). %Zadání c_0 = 3e8; f=input('f = '); f = 120e6 [10]: %Výpočet lambda =c_0 /f; %$ \lambda =\frac{c_0}{f} $ printf('\n Výsledek:\n') printf(['f = ', num2str(f/1e6), '[MHz] => lambda = ', num2str(lambda), '␣ ,→[m]\n']) Výsledek: f = 120 [MHz] => lambda = 2.5 [m] Pracovní soubory Oct0110_Frekvence_Vlnova_delka.ipynb Oct0110_Frekvence_Vlnova_delka.m 20 12 Frekvence viditelného světla Zadání Víme, že viditelné světlo má rozsah vlnových délek lambda od 380 nm do 780 nm. Vypočítejte, jaký tomu odpovídá rozsah frekvencí f. 380 430 480 530 580 630 680 730 780 [nm] Řešení Pro frekvenci fa vlnovou délku λplatí f·λ=c, a tedy f=c λ, kde cje rychlost světla v médiu, ve kterém je měřena vlnová délka λ. Pro světlo ve vzduchu je rychlost téměř shodná s rychlostí světla ve vakuu, tedy c=c0= 3 ·108ms−1. [2]: clear all;%Remove all variables close all;%Close all graphic windows clc; %Clear the Command Window [5]: %% Vypočítejte rozsah frekvencí f, který odpovídá vlnovým délkám viditelného␣ ,→světla %Zadání c_0 = 3e8; lambda_min = 380;%[nm] lambda_max = 780;%[nm] [6]: %Výpočet f_min =c_0/(lambda_max*1e-9)/1e12;%$ f_{min}=\frac{c_0}{\lambda_{max}} $ f_max =c_0/(lambda_min*1e-9)/1e12;%$ f_{max}=\frac{c_0}{\lambda_{min}} $ printf('\n Výsledek:\n'); printf([' ', num2str(f_min), '<f<', num2str(f_max), '[THz]\n']); Výsledek: 384.6154 < f < 789.4737 [THz] Pracovní soubory Oct0120_Vlnova_delka_Svetla_Frekvence.ipynb Oct0120_Vlnova_delka_Svetla_Frekvence.ipynb 21 Transformace formy a obsahu vysokoškolského vzdělávání na VŠB-TUO NPO_VŠB-TUO_MSMT16605/2022 17. LISTOPADU 2172/15 708 00 OSTRAVA-PORUBA univerzit[email protected] www.vsb.cz Toto dílo je licencováno pod CC BY 4.0