39 lines
1.4 KiB
Matlab
39 lines
1.4 KiB
Matlab
%% ------------------------------------------------------------
|
|
% Plot: Maximum usable IM/DD bandwidth vs wavelength
|
|
% ------------------------------------------------------------
|
|
|
|
% Fiber and dispersion parameters
|
|
lambda0 = 1310e-9; % [m]
|
|
S0 = 0.08; % [ps/(nm²·km)]
|
|
L = 10000; % [m]
|
|
c = physconst('lightspeed');
|
|
|
|
% Wavelength range around ZDW
|
|
lambda_vec = linspace(1250e-9, 1350e-9, 200); % [m]
|
|
|
|
% Compute D(lambda) using full model
|
|
lambda_nm = lambda_vec * 1e9;
|
|
lambda0_nm = lambda0 * 1e9;
|
|
D_lambda = (S0/4) .* (lambda_nm - (lambda0_nm.^4) ./ (lambda_nm.^3)); % [ps/(nm·km)]
|
|
|
|
% Convert D to [s/m²]
|
|
D_si = D_lambda * 1e-6;
|
|
|
|
% Compute first null frequency (f₀) for each wavelength
|
|
f_null = sqrt(c*(0.5) ./ (abs(D_si).*lambda_vec.^2*L)); % [Hz]
|
|
|
|
% Plot
|
|
figure('Color','w');
|
|
plot(lambda_vec*1e9, f_null/1e9, 'LineWidth', 1.6);
|
|
grid on; box on;
|
|
xlabel('Wavelength [nm]');
|
|
ylabel('First Fading Null Frequency [GHz]');
|
|
title(sprintf('IM/DD Bandwidth Limit vs. Wavelength (L = %.1f km)', L/1000));
|
|
|
|
% Highlight useful bandwidth thresholds
|
|
yline(25, '--', '25 GHz','Color',[0.4 0.4 0.4],'LabelHorizontalAlignment','left');
|
|
yline(50, '--', '50 GHz','Color',[0.2 0.6 0.2],'LabelHorizontalAlignment','left');
|
|
yline(100,'--', '100 GHz','Color',[0.6 0.2 0.2],'LabelHorizontalAlignment','left');
|
|
|
|
legend('First fading notch (f_{null})','Location','best');
|