MATLAB在电子科学技术中的应用:光纤光栅数值模拟
- 画出均匀光纤光栅的反射光谱图:\n\n
matlab\nclc; \nclear; \nclose all; \n\n% 参数设置\nn = 1000; % 光栅的周期个数\nL = 1; % 光栅的长度\nlambda = 1; % 入射光的波长\ntheta = 0; % 入射角度\n\n% 计算反射光谱\nx = linspace(0, L, n+1); % 光栅的空间坐标\nk = 2*pi/lambda; % 入射光的波数\nkz = k*sin(theta); % 入射光的纵向波数\nkr = k*cos(theta); % 入射光的横向波数\nkr_vec = kr + 2*pi*x/L; % 光栅上各点的横向波数\nR = abs(sin(n*kr_vec/2)./sin(kr_vec/2)).^2; % 反射光谱\n\n% 绘制反射光谱图\nfigure; \nplot(x, R, 'LineWidth', 2); \nxlabel('空间坐标'); \nylabel('反射光谱'); \ntitle('均匀光纤光栅的反射光谱'); \ngrid on; \n\n\n2. 画出均匀光纤光栅的时延曲线和色散曲线(画出两个子图):\n\nmatlab\nclc; \nclear; \nclose all; \n\n% 参数设置\nn = 1000; % 光栅的周期个数\nL = 1; % 光栅的长度\nlambda = 1; % 入射光的波长\ntheta = 0; % 入射角度\n\n% 计算时延曲线\nx = linspace(0, L, n+1); % 光栅的空间坐标\nk = 2*pi/lambda; % 入射光的波数\nkr = k*cos(theta); % 入射光的横向波数\nkr_vec = kr + 2*pi*x/L; % 光栅上各点的横向波数\ndelay = -kr_vec/k; % 时延曲线\n\n% 计算色散曲线\nwavelength = linspace(0.9, 1.1, 100); % 入射光的波长范围\nk_vec = 2*pi./wavelength; % 入射光的波数\nkr_vec = repmat(kr + 2*pi*x/L, length(wavelength), 1); % 光栅上各点的横向波数矩阵\ndelay_mat = -kr_vec./repmat(k_vec', 1, n+1); % 时延矩阵\ndispersion = diff(delay_mat)./diff(wavelength'); % 色散曲线\n\n% 绘制时延曲线和色散曲线的子图\nfigure; \nsubplot(2,1,1); \nplot(x, delay, 'LineWidth', 2); \nxlabel('空间坐标'); \nylabel('时延'); \ntitle('均匀光纤光栅的时延曲线'); \ngrid on; \n\nsubplot(2,1,2); \nplot(x, dispersion, 'LineWidth', 2); \nxlabel('空间坐标'); \nylabel('色散'); \ntitle('均匀光纤光栅的色散曲线'); \ngrid on; \n\n\n3. 画出啁啾光栅的反射光谱图:\n\nmatlab\nclc; \nclear; \nclose all; \n\n% 参数设置\nn = 1000; % 光栅的周期个数\nL = 1; % 光栅的长度\nlambda = 1; % 入射光的波长\ntheta = 0; % 入射角度\nA = 0.2; % 啁啾光栅的振幅\nf = 10; % 啁啾光栅的频率\n\n% 计算反射光谱\nx = linspace(0, L, n+1); % 光栅的空间坐标\nk = 2*pi/lambda; % 入射光的波数\nkz = k*sin(theta); % 入射光的纵向波数\nkr = k*cos(theta); % 入射光的横向波数\nkr_vec = kr + 2*pi*x/L; % 光栅上各点的横向波数\nR = abs(sin(n*kr_vec/2)./sin(kr_vec/2)).^2; % 均匀光栅的反射光谱\nR_chirp = abs(sin(n*(kr_vec + A*sin(2*pi*f*x))/2)./sin((kr_vec + A*sin(2*pi*f*x))/2)).^2; % 啁啾光栅的反射光谱\n\n% 绘制反射光谱图\nfigure; \nplot(x, R, 'LineWidth', 2); \nhold on; \nplot(x, R_chirp, 'LineWidth', 2); \nxlabel('空间坐标'); \nylabel('反射光谱'); \ntitle('啁啾光栅的反射光谱'); \nlegend('均匀光栅', '啁啾光栅'); \ngrid on; \n\n\n4. 设置不同的啁啾光栅的长度,比较其反射光谱图:\n\nmatlab\nclc; \nclear; \nclose all; \n\n% 参数设置\nn = 1000; % 光栅的周期个数\nlambda = 1; % 入射光的波长\ntheta = 0; % 入射角度\nA = 0.2; % 啁啾光栅的振幅\nf = 10; % 啁啾光栅的频率\n\n% 不同长度的啁啾光栅\nL_values = [0.5, 1, 2]; % 光栅的长度\n\n% 绘制不同长度的啁啾光栅的反射光谱图\nfigure; \nfor i = 1:length(L_values)\n L = L_values(i);\n x = linspace(0, L, n+1); % 光栅的空间坐标\n k = 2*pi/lambda; % 入射光的波数\n kr = k*cos(theta); % 入射光的横向波数\n kr_vec = kr + 2*pi*x/L; % 光栅上各点的横向波数\n R_chirp = abs(sin(n*(kr_vec + A*sin(2*pi*f*x))/2)./sin((kr_vec + A*sin(2*pi*f*x))/2)).^2; % 啁啾光栅的反射光谱\n \n subplot(length(L_values),1,i);\n plot(x, R_chirp, 'LineWidth', 2);\n xlabel('空间坐标');\n ylabel('反射光谱');\n title(['啁啾光栅的反射光谱 (L = ', num2str(L), ')']);\n grid on; \nend\n\n\n5. 设置不同的啁啾系数,比较其反射光谱图:\n\nmatlab\nclc; \nclear; \nclose all; \n\n% 参数设置\nn = 1000; % 光栅的周期个数\nL = 1; % 光栅的长度\nlambda = 1; % 入射光的波长\ntheta = 0; % 入射角度\nA_values = [0.1, 0.2, 0.3]; % 啁啾光栅的振幅\nf = 10; % 啁啾光栅的频率\n\n% 绘制不同啁啾系数的啁啾光栅的反射光谱图\nfigure; \nfor i = 1:length(A_values)\n A = A_values(i);\n x = linspace(0, L, n+1); % 光栅的空间坐标\n k = 2*pi/lambda; % 入射光的波数\n kr = k*cos(theta); % 入射光的横向波数\n kr_vec = kr + 2*pi*x/L; % 光栅上各点的横向波数\n R_chirp = abs(sin(n*(kr_vec + A*sin(2*pi*f*x))/2)./sin((kr_vec + A*sin(2*pi*f*x))/2)).^2; % 啁啾光栅的反射光谱\n \n subplot(length(A_values),1,i);\n plot(x, R_chirp, 'LineWidth', 2);\n xlabel('空间坐标');\n ylabel('反射光谱');\n title(['啁啾光栅的反射光谱 (A = ', num2str(A), ')']);\n grid on; \nend\n
原文地址: https://www.cveoy.top/t/topic/pISG 著作权归作者所有。请勿转载和采集!