47 lines
1.6 KiB
Matlab
47 lines
1.6 KiB
Matlab
|
|
% plot_dispersion_models
|
|
% ------------------------------------------------------------
|
|
% Visualizes exact and linearized chromatic dispersion D(λ)
|
|
% around the zero-dispersion wavelength (ZDW).
|
|
%
|
|
% Inputs:
|
|
% lambda0_nm - ZDW in nm
|
|
% S0 - dispersion slope at ZDW [ps/(nm^2·km)]
|
|
% ------------------------------------------------------------
|
|
|
|
lambda0_nm = 1310;
|
|
S0 = [0.07,0.09]';
|
|
% wavelength axis around ZDW
|
|
lambda_nm = linspace(lambda0_nm-60, lambda0_nm+60, 400);
|
|
|
|
% exact dispersion model
|
|
D_exact = (S0./4) .* ( ...
|
|
lambda_nm - (lambda0_nm^4)./(lambda_nm.^3) );
|
|
|
|
% linearized model around ZDW
|
|
D_lin = S0 .* (lambda_nm - lambda0_nm);
|
|
|
|
% plot
|
|
figure('Color','w'); hold on;
|
|
cols = [0.6510 0.8078 0.8902;...
|
|
0.1216 0.4706 0.7059;...
|
|
0.6980 0.8745 0.5412;...
|
|
0.2000 0.6275 0.1725];
|
|
|
|
% plot(lambda_nm, D_lin(1,:), '-', 'LineWidth',2, 'DisplayName','Linearized model','Color',[cols(1,:)]);
|
|
plot(lambda_nm, D_exact(1,:), 'LineWidth',2, 'DisplayName',sprintf('S_0 = 0.07'),'Color',[cols(2,:)]);
|
|
|
|
% plot(lambda_nm, D_lin(2,:), '-', 'LineWidth',2, 'HandleVisibility','off','Color',[cols(3,:)]);
|
|
plot(lambda_nm, D_exact(2,:), 'LineWidth',2, 'HandleVisibility','on', 'DisplayName',sprintf('S_0 = 0.09'),'Color',[cols(4,:)]);
|
|
|
|
|
|
xlabel('Wavelength $\lambda$ [nm]','Interpreter','latex');
|
|
ylabel('D($\lambda$) [ps/(nm km)]','Interpreter','latex');
|
|
title('Chromatic Dispersion Around the ZDW');
|
|
legend('Location','best');
|
|
grid on; box on;
|
|
xlim([min(lambda_nm) max(lambda_nm)])
|
|
ylim([-5 5]);
|
|
|
|
% mat2tikz_improved('C:\Users\Silas\Documents\6971e0b65b380ca6d71c837f\02_IMDD_System\tikz\dispersion\dispersion')
|