1. Single-Mode Fiber (SMF) Chromatic Dispersion & Pulse Broadening Simulation
Beginner
Toolbox: Signal Processing & Communications
Deliverables: Code .m, Report
🎯 Problem & Objective: Analyze linear chromatic dispersion (Group Velocity Dispersion, GVD) in standard single-mode optical fiber (SMF-28) at 1550 nm. Simulate Gaussian pulse broadening as a function of propagation distance and calculate broadening factor vs theoretical limit.
⚙️ Key MATLAB Functions:
fftifftfftshiftifftshiftplot
📊 Expected Output & Metrics: Temporal pulse profile comparison (input vs 80 km dispersed pulse), broadening factor curve \(T(z)/T_0 = \sqrt{1 + (z/L_D)^2}\), and dispersion-induced chirp evaluation.
c = 3e8; lambda = 1550e-9; D = 17e-6;
beta2 = -(D * lambda^2) / (2*pi*c);
L = 80e3;
T0 = 20e-12;
t = (-200:0.5:200) * 1e-12; dt = t(2)-t(1);
A0 = exp(-0.5 * (t/T0).^2);
N = length(t); omega = 2*pi*(-N/2:N/2-1)/(N*dt);
A_f = fftshift(fft(A0));
H = exp(-1j * 0.5 * beta2 * L * omega.^2);
A_out = ifft(ifftshift(A_f .* H));
figure; plot(t*1e12, abs(A0).^2, 'b', t*1e12, abs(A_out).^2, 'r', 'LineWidth', 1.5);
xlabel('Time (ps)'); ylabel('Power |A(t)|^2'); legend('Input (0 km)', 'Dispersed (80 km)');
Est. Duration: 4–6 Hours
Request Custom Project →
2. Direct Detection in Optical Communication Using Intensity Modulation
Beginner
Toolbox: Communications & DSP
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement an Intensity Modulation / Direct Detection (IM/DD) optical receiver with digital channel equalization. Estimate and compensate deterministic linear distortions (residual CD, PMD, and PDL) using a Minimum Mean Square Error (MMSE) equalizer to mitigate Inter-Symbol Interference (ISI).
⚙️ Key MATLAB Functions:
convtoeplitzeyediagramfilterbiterr
📊 Expected Output & Metrics: Unequalized vs MMSE-equalized eye diagrams, estimated SNR variance curve, and Bit Error Rate (BER) reduction across optical transmission distances.
N_bits = 1e4; tx_bits = randi([0 1], N_bits, 1);
p_pulse = ones(1, 10);
tx_signal = kron(tx_bits, p_pulse');
h_fiber = [0.25 0.75 0.50 0.15];
rx_opt = conv(tx_signal, h_fiber, 'same');
rx_noisy = rx_opt + 0.08 * randn(size(rx_opt));
eq_order = 15; d = tx_signal(50:end-50);
X = toeplitz(rx_noisy(50:end-50), rx_noisy(50:-1:50-eq_order+1));
w_mmse = (X'*X + 0.01*eye(eq_order)) \ (X'*d);
y_eq = filter(w_mmse, 1, rx_noisy);
eyediagram(rx_noisy(1:1000), 20);
eyediagram(y_eq(1:1000), 20);
Est. Duration: 6–8 Hours
Request Custom Project →
3. Split-Step Fourier Method (SSFM) for Non-Linear Schrödinger Equation (NLSE)
Intermediate
Toolbox: Signal Processing & Symbolic Math
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement the symmetrized Split-Step Fourier Method (SSFM) to solve the generalized Non-Linear Schrödinger Equation (NLSE), incorporating fiber attenuation, second-order dispersion (\(\beta_2\)), and Kerr Self-Phase Modulation (SPM). Simulate fundamental optical soliton stability.
⚙️ Key MATLAB Functions:
fftifftfftshiftsechwaterfall
📊 Expected Output & Metrics: 3D waterfall plot of pulse intensity \(|A(z,t)|^2\) along fiber distance, spectral broadening verification, and conservation of soliton energy.
L = 50; dz = 0.5; steps = L/dz;
gamma = 1.3; alpha = 0.2 / 4.343;
beta2 = -21.7; T0 = 10;
t = linspace(-100, 100, 2048); dt = t(2)-t(1);
u = sech(t/T0);
omega = 2*pi*(-1024:1023)/(2048*dt);
D_op = exp((-alpha/2 + 1j*0.5*beta2*omega.^2) * dz/2);
for i = 1:steps
u = ifft(ifftshift(fftshift(fft(u)) .* D_op));
u = u .* exp(1j * gamma * abs(u).^2 * dz);
u = ifft(ifftshift(fftshift(fft(u)) .* D_op));
end
plot(t, abs(u).^2, 'r', 'LineWidth', 1.5); title('Soliton Stability via SSFM');
Est. Duration: 1–2 Weeks
Request Custom Project →
4. Using MATLAB Tools for Simulation of the Optical Transmission Medium
Intermediate
Toolbox: Communications & RF
Deliverables: Code .m, Report
🎯 Problem & Objective: Develop a single-channel optical transmission medium platform. Accurately model fiber attenuation, laser phase noise, and photodetector noise components (shot noise and thermal noise) to evaluate link budget SNR and dynamic range.
⚙️ Key MATLAB Functions:
log10sqrtrandnsemilogyfprintf
📊 Expected Output & Metrics: Received optical power vs span distance curve, shot/thermal noise variance decomposition, and electrical SNR vs input laser power.
Pin_dBm = 0; Pin = 10^((Pin_dBm-30)/10);
L_span = 100; alpha_dB = 0.2;
P_rx = Pin * 10^(-alpha_dB * L_span / 10);
R_resp = 0.9; I_sig = R_resp * P_rx;
q = 1.6e-19; B = 10e9; kB = 1.38e-23; T = 300; R_load = 50;
sigma_shot = sqrt(2 * q * I_sig * B);
sigma_thermal = sqrt(4 * kB * T * B / R_load);
sigma_total = sqrt(sigma_shot^2 + sigma_thermal^2);
SNR_dB = 10 * log10((I_sig / sigma_total)^2);
fprintf('Received Power: %.2f uW | Electrical SNR: %.2f dB\n', P_rx*1e6, SNR_dB);
Est. Duration: 1–2 Weeks
Request Custom Project →
5. Wavelength Division Multiplexing (WDM) & Dense WDM (DWDM) System Simulation
Intermediate
Toolbox: Communications & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Model an 8-channel DWDM transmission system adhering to standard ITU-T 100 GHz (0.8 nm) channel grids. Analyze multi-channel multiplexing, demultiplexing optical filter roll-off, and inter-channel spectral crosstalk.
⚙️ Key MATLAB Functions:
repelemfftfftshiftbutterfilter
📊 Expected Output & Metrics: Multi-channel optical power spectral density (PSD), adjacent channel crosstalk suppression ratio (>30 dB), and demultiplexed eye openings.
num_ch = 8; spacing = 0.8e-9; lambda_0 = 1550e-9;
c = 3e8; fs = 2e12; N = 2^15; t = (0:N-1)/fs;
wavelengths = lambda_0 + (-(num_ch-1)/2:(num_ch-1)/2)*spacing;
frequencies = c ./ wavelengths;
E_total = zeros(1, N);
for k = 1:num_ch
bits = randi([0 1], 1, N/32); baseband = repelem(bits, 32);
E_total = E_total + baseband .* exp(1j * 2*pi*(frequencies(k)-c/lambda_0)*t);
end
P_spec = 10*log10(abs(fftshift(fft(E_total))).^2 / N);
plot((-(N/2):(N/2)-1)*(fs/N)/1e9, P_spec);
xlabel('Frequency Offset (GHz)'); ylabel('Optical Power (dBm)');
Est. Duration: 1–2 Weeks
Request Custom Project →
6. Erbium-Doped Fiber Amplifier (EDFA) Gain Dynamics & ASE Noise Modeling
Intermediate
Toolbox: Symbolic Math & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Solve EDFA two-level laser rate equations to model gain saturation, output power, and Amplified Spontaneous Emission (ASE) noise accumulation in multi-span optical amplified links. Calculate optical Noise Figure (NF) and OSNR degradation.
⚙️ Key MATLAB Functions:
fzeroode45log10trapzplot
📊 Expected Output & Metrics: Gain vs input power saturation curve (small-signal 30 dB down to 10 dB), ASE noise spectrum, and Optical Signal-to-Noise Ratio (OSNR) across cascaded spans.
G0_dB = 30; G0 = 10^(G0_dB/10);
Psat_dBm = 15; Psat = 10^((Psat_dBm-30)/10);
Pin_dBm = -40:2:10; Pin = 10.^((Pin_dBm-30)/10);
G = zeros(size(Pin));
for k = 1:length(Pin)
g_fun = @(g) g - G0 * exp(-(g-1)*Pin(k)/Psat);
G(k) = fzero(g_fun, [1 G0]);
end
G_dB = 10*log10(G);
h = 6.626e-34; nu = 3e8/1550e-9; nsp = 1.4;
NF_dB = 10*log10(1./G + 2*nsp*(G-1)./G);
plot(Pin_dBm, G_dB, 'b-', Pin_dBm, NF_dB, 'r--', 'LineWidth', 2);
xlabel('Input Optical Power (dBm)'); ylabel('Value (dB)'); legend('Gain (dB)', 'Noise Figure (dB)');
Est. Duration: 1–2 Weeks
Request Custom Project →
7. Numerical Analysis of Orbital Angular Momentum (OAM) based Next Generation Optical SDM Communications System
Advanced
Toolbox: Communications & Phased Array
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement an optical Space Division Multiplexing (SDM) transmission chain using Orbital Angular Momentum (OAM) vortex beams. Generate Spiral Phase Patterns (SPP) converting Gaussian wave fronts into helical phase fronts with topological charge \(l = \pm 1, \pm 2\), multiplex QPSK streams, and evaluate inter-mode orthogonality and BER.
⚙️ Key MATLAB Functions:
cart2polmeshgridimagescpskmodkron
📊 Expected Output & Metrics: 2D doughnut intensity distribution, spiral phase pattern interferogram, inter-modal crosstalk matrix, and BER vs SNR waterfall curves.
N = 512; x = linspace(-5, 5, N); [X, Y] = meshgrid(x, x);
[theta, r] = cart2pol(X, Y); w0 = 2.0; l = 2;
LG_field = (r/w0).^abs(l) .* exp(-r.^2/w0^2) .* exp(1j * l * theta);
Intensity = abs(LG_field).^2; Phase = angle(LG_field);
qpsk_sym = exp(1j * (pi/4 + (0:3)*pi/2));
data_idx = randi([1 4], 1, 100);
oam_tx = kron(qpsk_sym(data_idx), LG_field);
figure; subplot(1,2,1); imagesc(x, x, Intensity); colormap('hot'); title('OAM Doughnut Intensity (l=2)');
subplot(1,2,2); imagesc(x, x, Phase); colormap('jet'); title('Spiral Helical Phase');
Est. Duration: 3–4 Weeks
Request Custom Project →
8. Coherent Optical DP-QPSK / DP-16QAM Transceiver with Digital Signal Processing (DSP)
Advanced
Toolbox: Communications & DSP System
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement a 100G/400G Dual-Polarization (DP) Coherent Optical Transceiver. Implement complete offline DSP receiver routines including static Chromatic Dispersion compensation, Constant Modulus Algorithm (CMA) 2x2 MIMO polarization demultiplexing, and Viterbi-Viterbi 4th-power carrier phase recovery.
⚙️ Key MATLAB Functions:
pskmodqammodcomm.LinearEqualizerunwrapscatterplot
📊 Expected Output & Metrics: Restored constellation scatter plots before and after phase unwrapping, convergence curve of CMA equalizer weights, and BER vs OSNR curves.
M = 4; numSym = 30000;
data_X = randi([0 M-1], numSym, 1); data_Y = randi([0 M-1], numSym, 1);
sym_X = pskmod(data_X, M, pi/4); sym_Y = pskmod(data_Y, M, pi/4);
theta_pol = pi/6; J_rot = [cos(theta_pol) sin(theta_pol); -sin(theta_pol) cos(theta_pol)];
rx_pol = [sym_X sym_Y] * J_rot;
rx_noisy = rx_pol .* exp(1j * cumsum(randn(numSym, 2)*0.015));
cma_eq = comm.LinearEqualizer('Algorithm', 'CMA', 'NumTaps', 9, 'StepSize', 1e-3);
demux_X = cma_eq(rx_noisy(:,1));
phase_est = unwrap(angle(demux_X.^4))/4;
const_clean = demux_X .* exp(-1j * phase_est);
scatterplot(const_clean(end-3000:end)); title('Recovered Coherent Constellation');
Est. Duration: 3–4 Weeks
Request Custom Project →
9. The Laser Satellites Communications and Laser Phase Noise
Intermediate
Toolbox: Communications & Aerospace
Deliverables: Code .m, Report
🎯 Problem & Objective: Design an Intersatellite Optical Wireless Link (Is-OWC) for LEO-GEO satellite constellations at 1064 nm / 1550 nm. Analyze the impact of transmitter laser linewidth, optical phase noise, telescope gain, pointing jitter, and free-space path loss.
⚙️ Key MATLAB Functions:
cumsumsqrtrandnpwelchfprintf
📊 Expected Output & Metrics: Optical link budget calculation, received power vs distance (1,000 to 45,000 km), laser phase noise Power Spectral Density (PSD), and coherent heterodyne beating SNR.
d_link = 40000e3; lambda = 1064e-9;
P_tx = 2.0; D_tx = 0.25; D_rx = 0.35;
G_tx = (pi * D_tx / lambda)^2; G_rx = (pi * D_rx / lambda)^2;
L_space = (lambda / (4 * pi * d_link))^2;
P_rx_opt = P_tx * G_tx * G_rx * L_space;
linewidth = 100e3; fs = 1e9; t = (0:1e5-1)/fs;
delta_phi = sqrt(2 * pi * linewidth / fs) * randn(size(t));
phi_noise = cumsum(delta_phi);
laser_field = sqrt(P_rx_opt) * exp(1j * (2*pi*1e7*t + phi_noise));
fprintf('Received Optical Power: %.2f nW | Link Loss: %.1f dB\n', P_rx_opt*1e9, 10*log10(P_tx/P_rx_opt));
Est. Duration: 1–2 Weeks
Request Custom Project →
10. Simulation and Animation of Optical Pulse Propagation in Fiber
Beginner
Toolbox: Signal Processing & Graphics
Deliverables: Code .m, Report
🎯 Problem & Objective: Create an interactive dynamic visualization and animated simulation demonstrating group velocity differences, chromatic dispersion pulse widening, and chirping effects as light waves travel through an optical fiber.
⚙️ Key MATLAB Functions:
linspacedrawnowplotgridtitle
📊 Expected Output & Metrics: Dynamic animated MATLAB figure showing pulse spreading over 0 to 100 km, instantaneous frequency chirp curves, and animated GUI interface.
z_max = 100; t = linspace(-60, 60, 600);
T0 = 6; beta2 = -20;
figure;
for z = 0:4:z_max
T_z = T0 * sqrt(1 + (beta2*z/T0^2)^2);
P_t = (T0/T_z) * exp(-(t.^2)/(T_z^2));
plot(t, P_t, 'b-', 'LineWidth', 2);
title(sprintf('Optical Pulse Dispersion @ z = %d km (Width = %.2f ps)', z, T_z));
xlabel('Time Frame (ps)'); ylabel('Normalized Optical Intensity');
axis([-60 60 0 1.2]); grid on; drawnow;
end
Est. Duration: 4–6 Hours
Request Custom Project →
11. MATLAB Simulink Simulation Platform for High-Speed Photonic Transmission Systems
Intermediate
Toolbox: Simulink & Communications
Deliverables: Code .m, Simulink .slx, Report
🎯 Problem & Objective: Develop a modular Simulink simulation platform for 40 Gb/s and 100 Gb/s photonic transmission links. Model Mach-Zehnder optical transmitters, fiber channel transfer blocks, optical pre-amplifiers, optical bandpass filters, and balanced photodetectors.
⚙️ Key MATLAB Functions:
simset_parambertooleyediagramfprintf
📊 Expected Output & Metrics: Simulink block model with live scope displays, eye opening measurements at 40 Gb/s, and Monte Carlo BER waterfall curves.
sample_rate = 160e9; bit_rate = 40e9;
laser_wavelength = 1550e-9; laser_power_dBm = 10;
fiber_length_km = 80; attenuation_coeff = 0.2;
dispersion_coeff = 17;
responsivity = 0.85; dark_current = 1e-9; thermal_noise = 1e-22;
fprintf('Configured 40 Gb/s Photonic Model: %d km SMF Span.\n', fiber_length_km);
Est. Duration: 1–2 Weeks
Request Custom Project →
12. Free-Space Optical (FSO) Link Budget & Atmospheric Turbulence Modeling
Intermediate
Toolbox: Communications & Statistics
Deliverables: Code .m, Report
🎯 Problem & Objective: Model terrestrial Free-Space Optical (FSO) links subject to atmospheric turbulence and beam wander. Implement Log-Normal and Gamma-Gamma statistical intensity distributions to evaluate Scintillation Index and BER for On-Off Keying (OOK) under varying weather conditions (fog, rain, clear).
⚙️ Key MATLAB Functions:
gamrnderfcmeansemilogyexp
📊 Expected Output & Metrics: Irradiance PDF curves matching Gamma-Gamma distributions, Scintillation Index vs link distance (0.5 to 3 km), and Outage Probability curves.
Cn2 = 1e-14; L_link = 1500; lambda = 1550e-9; k = 2*pi/lambda;
Rytov_var = 1.23 * Cn2 * k^(7/6) * L_link^(11/6);
alpha_turb = 1 / (exp(0.49*Rytov_var / (1 + 0.56*Rytov_var^(6/5))^(7/6)) - 1);
beta_turb = 1 / (exp(0.51*Rytov_var / (1 + 0.9*Rytov_var^(6/5))^(5/6)) - 1);
N_samples = 1e5;
I_turb = gamrnd(alpha_turb, 1/alpha_turb, 1, N_samples) .* gamrnd(beta_turb, 1/beta_turb, 1, N_samples);
SNR_dB = 0:2:30; SNR_lin = 10.^(SNR_dB/10);
BER_fso = mean(0.5 * erfc(sqrt(SNR_lin' * I_turb) / 2), 2);
semilogy(SNR_dB, BER_fso, 'r-o', 'LineWidth', 1.5);
xlabel('Average SNR (dB)'); ylabel('Bit Error Rate (BER)');
Est. Duration: 1–2 Weeks
Request Custom Project →
13. Visible Light Communication (VLC / Li-Fi) Indoor Channel & Optical OFDM
Intermediate
Toolbox: Communications & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Simulate an indoor Visible Light Communication (VLC/Li-Fi) optical wireless network. Model Lambertian LED radiation patterns, Line-of-Sight (LOS) and Non-Line-of-Sight (NLOS) multipath reflections, and DC-biased Optical OFDM (DCO-OFDM) signal transmission.
⚙️ Key MATLAB Functions:
meshgridnormsurfifftqammod
📊 Expected Output & Metrics: 3D illuminance and optical received power distribution map across a 5m × 5m × 3m room, channel impulse response, and DCO-OFDM SNR coverage.
room = [5 5 3]; tx_pos = [2.5 2.5 3.0]; rx_pos = [1.5 1.5 0.85];
semi_angle = 60; m = -log(2) / log(cosd(semi_angle));
A_det = 1e-4; FOV = 70;
d_vec = rx_pos - tx_pos; dist = norm(d_vec);
cos_phi = abs(d_vec(3)) / dist; cos_psi = cos_phi;
if acosd(cos_psi) <= FOV
H_dc = ((m+1)*A_det / (2*pi*dist^2)) * (cos_phi^m) * cos_psi;
else
H_dc = 0;
end
fprintf('VLC Optical DC Channel Gain H(0): %.3e\n', H_dc);
Est. Duration: 1–2 Weeks
Request Custom Project →
14. Optical Time Domain Reflectometry (OTDR) Trace Analysis & Fault Localization
Beginner
Toolbox: Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement an automated OTDR trace synthesizer and signal processing algorithm. Detect and localize non-reflective fusion splices, connector insertion losses, and reflective fiber breaks with sub-meter localization accuracy.
⚙️ Key MATLAB Functions:
findpeaksdiffmedfilt1plotlegend
📊 Expected Output & Metrics: Synthesized OTDR backscatter trace with marked splice events (dB step drops), Fresnel reflection spikes, and automatic fault distance table.
z_fiber = 0:10:50000; alpha_dB = 0.2;
P_otdr = -2 * alpha_dB * (z_fiber/1000) - 40;
P_otdr(z_fiber >= 18000) = P_otdr(z_fiber >= 18000) - 0.35;
break_idx = find(z_fiber == 35000);
P_otdr(break_idx) = P_otdr(break_idx) + 14;
P_otdr(z_fiber > 35000) = -85 + randn(1, sum(z_fiber > 35000));
plot(z_fiber/1000, P_otdr, 'b', 'LineWidth', 1.5);
xlabel('Fiber Distance (km)'); ylabel('Backscatter Power (dB)'); title('OTDR Trace Analysis');
Est. Duration: 4–6 Hours
Request Custom Project →
15. Polarization Mode Dispersion (PMD) & Differential Group Delay (DGD) Emulation
Intermediate
Toolbox: Communications & DSP
Deliverables: Code .m, Report
🎯 Problem & Objective: Emulate Polarization Mode Dispersion (PMD) in long-haul fibers using a waveplate concatenation model (Jones Matrix calculus). Verify the Maxwellian probability distribution of instantaneous Differential Group Delay (DGD) and assess PMD-induced pulse distortion.
⚙️ Key MATLAB Functions:
raylrndhistogrameyecossin
📊 Expected Output & Metrics: Histogram of DGD matching theoretical Maxwellian density, Jones Matrix frequency response, and state-of-polarization (SOP) trajectory on the Poincaré Sphere.
num_sections = 50; DGD_mean = 5e-12;
dtau_sec = DGD_mean / sqrt(num_sections);
omega = 2*pi*linspace(-50e9, 50e9, 256);
J_total = zeros(2, 2, length(omega));
for w_idx = 1:length(omega)
J_net = eye(2);
for k = 1:num_sections
theta = rand * pi; R = [cos(theta) -sin(theta); sin(theta) cos(theta)];
delta_phi = omega(w_idx) * dtau_sec * randn();
W = [exp(1j*delta_phi/2) 0; 0 exp(-1j*delta_phi/2)];
J_net = R' * W * R * J_net;
end
J_total(:,:,w_idx) = J_net;
end
histogram(raylrnd(DGD_mean*sqrt(2/pi), 1, 2000)*1e12, 30);
xlabel('Differential Group Delay DGD (ps)'); ylabel('Probability Density');
Est. Duration: 1–2 Weeks
Request Custom Project →
16. Mach-Zehnder Modulator (MZM) Chirp & Nonlinear Transfer Characteristic Optimization
Beginner
Toolbox: RF & Communications
Deliverables: Code .m, Report
🎯 Problem & Objective: Model dual-drive LiNbO3 Mach-Zehnder Modulators (MZM). Analyze electro-optic intensity modulation curves, optimize quadrature bias points (\(V_{\pi}/2\)), and compute extinction ratio (ER) and chirp parameter \(\alpha\).
⚙️ Key MATLAB Functions:
linspaceexpmaxminplot
📊 Expected Output & Metrics: MZM transfer curve \(I_{out}(V_{rf})\), Extinction Ratio calculation (>35 dB), and chirp parameter variation vs drive asymmetry.
Vpi = 3.5; V_bias = Vpi / 2;
V_rf = linspace(-5, 5, 500);
V1 = V_bias/2 + V_rf/2; V2 = -V_bias/2 - V_rf/2;
E_out = 0.5 * (exp(1j*pi*V1/Vpi) + exp(1j*pi*V2/Vpi));
I_out = abs(E_out).^2;
ER_dB = 10*log10(max(I_out) / min(I_out + 1e-6));
plot(V_rf, I_out, 'b-', 'LineWidth', 2);
xlabel('RF Drive Voltage (V)'); ylabel('Normalized Output Intensity');
title(sprintf('MZM Transfer Characteristic (Extinction Ratio = %.1f dB)', ER_dB));
Est. Duration: 4–6 Hours
Request Custom Project →
17. Four-Wave Mixing (FWM) Nonlinear Crosstalk in DWDM Optical Networks
Advanced
Toolbox: Communications & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Analyze Four-Wave Mixing (FWM) nonlinear crosstalk in dense WDM systems. Compute phase-matching conditions \(\Delta\beta\), FWM generation efficiency \(\eta_{FWM}\), and generated spurious ghost product power across channel frequency spacings.
⚙️ Key MATLAB Functions:
expsinabsplotfprintf
📊 Expected Output & Metrics: FWM efficiency vs channel spacing curve (50 GHz vs 100 GHz grids), FWM product power spectral distribution, and maximum launch power threshold curves.
c = 3e8; lambda_0 = 1550e-9; f0 = c/lambda_0; df = 50e9;
f1 = f0; f2 = f0 + df; f3 = f0 + 3*df;
P_ch = 5e-3; gamma = 1.3e-3; alpha = 0.2 / (4.343*1e3); L = 50e3;
Leff = (1 - exp(-alpha*L)) / alpha; beta2 = -21.7e-27;
delta_beta = (2*pi*c/lambda_0^2)^2 * abs(beta2) * (f1 - f3)*(f2 - f3);
eta_fwm = (alpha^2 / (alpha^2 + delta_beta^2)) * (1 + 4*exp(-alpha*L)*sin(delta_beta*L/2)^2 / (1-exp(-alpha*L))^2);
P_fwm = (gamma * Leff)^2 * (P_ch^3) * eta_fwm * exp(-alpha*L);
fprintf('FWM Spurious Power: %.2f uW | Efficiency: %.2f %%\n', P_fwm*1e6, eta_fwm*100);
Est. Duration: 2–3 Weeks
Request Custom Project →
18. Optical OFDM (DCO-OFDM & ACO-OFDM) Transceiver for Intensity-Modulated Direct Detection
Intermediate
Toolbox: Communications & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Design real-valued unipolar Optical OFDM transceivers for IM/DD optical links. Compare DC-Biased Optical OFDM (DCO-OFDM) and Asymmetrically Clipped Optical OFDM (ACO-OFDM) in terms of optical power efficiency, clipping distortion, and BER.
⚙️ Key MATLAB Functions:
qammodifftfftconjflipud
📊 Expected Output & Metrics: Real-valued unipolar time waveform plots, clipping noise Power Spectral Density, and electrical/optical BER comparison between DCO-OFDM and ACO-OFDM.
N_fft = 64; num_sym = 1000;
data_bits = randi([0 3], N_fft/2 - 1, num_sym);
qam_sym = qammod(data_bits, 4, 'UnitAveragePower', true);
X = zeros(N_fft, num_sym);
X(2:N_fft/2, :) = qam_sym;
X(N_fft/2 + 2:end, :) = conj(flipud(qam_sym));
x_time = ifft(X, N_fft);
k_bias = 7;
x_dco = x_time + k_bias * std(x_time(:));
x_clipped = max(x_dco, 0);
plot(real(x_clipped(1:200)), 'b-', 'LineWidth', 1.5);
title('Real Unipolar Optical DCO-OFDM Signal'); xlabel('Sample Index');
Est. Duration: 1–2 Weeks
Request Custom Project →
19. Silicon Photonics Micro-Ring Resonator (MRR) Filter & Modulator Design
Advanced
Toolbox: RF & Photonics Blockset
Deliverables: Code .m, Report
🎯 Problem & Objective: Design a silicon-on-insulator (SOI) Micro-Ring Resonator (MRR) optical add-drop filter. Simulate Through and Drop port spectral transmission curves, compute Free Spectral Range (FSR), Full Width at Half Maximum (FWHM), and Quality Factor (\(Q > 20,000\)).
⚙️ Key MATLAB Functions:
linspacecoslog10plotgrid
📊 Expected Output & Metrics: Through-port and Drop-port transmission spectra (dB), resonance notch depth (>30 dB), FSR verification (12.8 nm), and thermal tuning sensitivity curves.
r = 10e-6; ng = 4.2; neff = 2.45;
L_ring = 2 * pi * r; lambda = linspace(1540e-9, 1560e-9, 2000);
FSR = (1550e-9)^2 / (ng * L_ring);
t_coup = 0.95; a_loss = 0.98;
phi = (2*pi*neff ./ lambda) * L_ring;
T_through = (a_loss^2 - 2*a_loss*t_coup*cos(phi) + t_coup^2) ./ ...
(1 - 2*a_loss*t_coup*cos(phi) + (a_loss*t_coup)^2);
plot(lambda*1e9, 10*log10(T_through), 'b-', 'LineWidth', 1.5);
xlabel('Wavelength (nm)'); ylabel('Through Port Transmission (dB)');
title(sprintf('Silicon MRR Filter (FSR = %.2f nm, Q > 18,000)', FSR*1e9));
Est. Duration: 2–3 Weeks
Request Custom Project →
20. Cross-Phase Modulation (XPM) Degradation Analysis in Multi-Channel Fiber Links
Advanced
Toolbox: Signal Processing & Communications
Deliverables: Code .m, Report
🎯 Problem & Objective: Analyze Cross-Phase Modulation (XPM) between co-propagating optical channels in WDM links. Quantify the mitigating effect of group-velocity walk-off \(d_{12}\) and evaluate intensity-to-phase conversion on probe channels.
⚙️ Key MATLAB Functions:
expabsplotfprintfmeshgrid
📊 Expected Output & Metrics: XPM frequency response transfer curves, nonlinear phase variance vs channel spacing (0.4 nm to 3.2 nm), and constellation clustering degradation.
P_pump = 10e-3; gamma = 1.3; alpha = 0.2 / 4.343; L = 80;
Leff = (1 - exp(-alpha*L)) / alpha;
d_walkoff = 17 * 0.8;
phi_xpm_max = 2 * gamma * P_pump * Leff;
freq_mod = logspace(8, 11, 200); omega_m = 2*pi*freq_mod;
H_xpm = (1 - exp(-alpha*L - 1j*omega_m*d_walkoff*1e-12*L)) ./ (alpha + 1j*omega_m*d_walkoff*1e-12);
semilogx(freq_mod/1e9, 20*log10(abs(H_xpm)), 'b-', 'LineWidth', 2);
xlabel('Pump Modulation Frequency (GHz)'); ylabel('Normalized XPM Response (dB)');
Est. Duration: 2–3 Weeks
Request Custom Project →
21. Semiconductor Optical Amplifier (SOA) Cross-Gain Modulation (XGM) Wavelength Conversion
Intermediate
Toolbox: Signal Processing & Communications
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement all-optical wavelength conversion using Cross-Gain Modulation (XGM) in Semiconductor Optical Amplifiers (SOA). Transfer high-speed 10 Gb/s data from a pump wavelength (1550 nm) to a continuous-wave probe wavelength (1530 nm).
⚙️ Key MATLAB Functions:
expsubplotplottitleylabel
📊 Expected Output & Metrics: Time-domain inverted converted probe waveform, extinction ratio degradation curve, and carrier recovery lifetime response.
L_soa = 1e-3; Gamma_conf = 0.3; dg_dN = 2.5e-20; N0 = 1e24;
I_bias = 0.150; q = 1.6e-19; Vol = 1e-3 * 2e-6 * 0.2e-6;
P_pump = [zeros(1,40) ones(1,40)*10e-3 zeros(1,40) ones(1,40)*10e-3];
P_probe_cw = 0.5e-3;
N_carrier = (I_bias/(q*Vol)) ./ (1/2e-9 + (dg_dN*(P_pump + P_probe_cw)/(6.626e-34*3e8/1550e-9*Vol)));
Gain_soa = exp(Gamma_conf * dg_dN * (N_carrier - N0) * L_soa);
P_probe_out = P_probe_cw .* Gain_soa;
subplot(2,1,1); plot(P_pump*1e3, 'r', 'LineWidth', 1.5); ylabel('Pump 1550nm (mW)'); title('Input Pump');
subplot(2,1,2); plot(P_probe_out*1e3, 'b', 'LineWidth', 1.5); ylabel('Probe 1530nm (mW)'); title('Inverted Converted Probe');
Est. Duration: 1–2 Weeks
Request Custom Project →
22. Digital Chromatic Dispersion Compensation (CDC) & Constant Modulus Algorithm (CMA) Adaptive Equalizer
Advanced
Toolbox: DSP System & Communications
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement Frequency-Domain Equalizer (FDE) digital chromatic dispersion compensation (CDC) to undo up to 20,000 ps/nm of accumulated dispersion in coherent optical receivers, cascaded with a 2x2 butterfly CMA time-domain adaptive equalizer.
⚙️ Key MATLAB Functions:
fftifftfftshiftifftshiftfprintf
📊 Expected Output & Metrics: Frequency response of CDC static filter, residual dispersion tolerance curves, and symbol error rate before and after dual-stage equalization.
N_fft = 2048; fs = 64e9; dt = 1/fs;
D = 17; L_total = 1000;
lambda = 1550e-9; c = 3e8; beta2 = -(D * 1e-6 * lambda^2) / (2*pi*c);
f = (-N_fft/2 : N_fft/2 - 1) * (fs / N_fft); omega = 2 * pi * f;
H_cdc = exp(-1j * 0.5 * beta2 * (L_total*1e3) * omega.^2);
E_rx = randn(1, N_fft) + 1j*randn(1, N_fft);
E_cdc = ifft(ifftshift(fftshift(fft(E_rx)) .* H_cdc));
fprintf('CDC Applied: Compensated %d ps/nm Accumulated Dispersion.\n', D*L_total);
Est. Duration: 2–3 Weeks
Request Custom Project →
23. Quantum Key Distribution (QKD) BB84 Protocol over Optical Fiber Link
Advanced
Toolbox: Communications & Statistics
Deliverables: Code .m, Report
🎯 Problem & Objective: Simulate the BB84 Quantum Key Distribution protocol over single-mode optical fiber. Model polarized single-photon states, fiber attenuation transmittance, dark count probabilities, basis sifting, and Quantum Bit Error Rate (QBER) for eavesdropper detection.
⚙️ Key MATLAB Functions:
randirandsumfprintfsemilogy
📊 Expected Output & Metrics: Sifted key generation rate vs fiber distance (0 to 100 km), QBER threshold verification (< 11% security limit), and Eve interception detection probability.
num_qubits = 20000;
alice_bits = randi([0 1], 1, num_qubits);
alice_bases = randi([0 1], 1, num_qubits);
eta_channel = 10^(-0.2 * 50 / 10);
bob_bases = randi([0 1], 1, num_qubits);
bob_detected = rand(1, num_qubits) < eta_channel;
matching_bases = (alice_bases == bob_bases) & bob_detected;
sifted_alice = alice_bits(matching_bases);
sifted_bob = alice_bits(matching_bases);
QBER = sum(sifted_alice ~= sifted_bob) / length(sifted_alice);
fprintf('Sifted Key: %d bits | QBER: %.2f %%\n', length(sifted_alice), QBER*100);
Est. Duration: 2–3 Weeks
Request Custom Project →
24. Fiber Bragg Grating (FBG) Sensor for Strain & Temperature Measurement using Transfer Matrix Method
Intermediate
Toolbox: Signal Processing & Symbolic Math
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement the 2x2 Transfer Matrix Method (TMM) to simulate reflection spectra of Fiber Bragg Gratings (FBG). Model Bragg wavelength shifts \(\Delta\lambda_B\) under applied mechanical strain and temperature variations for structural health monitoring.
⚙️ Key MATLAB Functions:
linspaceplottitlegridsprintf
📊 Expected Output & Metrics: FBG reflection spectral notch curves (reflectivity > 99%), wavelength shift linearity (\(\approx 1.2\text{ pm}/\mu\epsilon\) and \(10\text{ pm}/^\circ\text{C}\)), and multi-grating sensor array demultiplexing.
neff = 1.45; Lambda_period = 535e-9; L_fbg = 10e-3; delta_n = 2e-4;
lambda_bragg = 2 * neff * Lambda_period;
strain_ue = 500; delta_T = 25; pe = 0.22; alpha_f = 0.5e-6; zeta = 6.7e-6;
d_lambda = lambda_bragg * ((1 - pe)*strain_ue*1e-6 + (alpha_f + zeta)*delta_T);
lambda_scan = linspace(1550e-9, 1553e-9, 1000);
R_spec = (delta_n*pi*L_fbg./lambda_scan).^2 ./ (1 + (delta_n*pi*L_fbg./lambda_scan).^2);
plot(lambda_scan*1e9, R_spec, 'b-', 'LineWidth', 2);
xlabel('Wavelength (nm)'); ylabel('Reflectivity');
title(sprintf('FBG Peak Shift: Delta Lambda = +%.3f nm', d_lambda*1e9));
Est. Duration: 1–2 Weeks
Request Custom Project →
25. Optical Feature Extraction & External Cue Processing in Vision Loss Modeling
Intermediate
Toolbox: Image Processing & Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Model central scotoma optical degradation (macular degeneration) and implement multi-scale Gabor optical filtering to isolate external boundary features and perimeter cues for face recognition under compromised central vision.
⚙️ Key MATLAB Functions:
meshgridgaborimgaborfiltimshowrgb2gray
📊 Expected Output & Metrics: Scotoma-filtered visual fields, multi-orientation Gabor energy response maps, and recognition accuracy comparison between internal vs external optical feature subsets.
img = imread('peppers.png');
if size(img, 3) == 3, img = rgb2gray(img); end
[rows, cols] = size(img);
[X, Y] = meshgrid(1:cols, 1:rows);
scotoma_mask = 1 - exp(-((X - cols/2).^2 + (Y - rows/2).^2) / (2 * 40^2));
im_scotoma = double(img) .* scotoma_mask;
gaborArray = gabor([4 8], [0 45 90 135]);
[mag, ~] = imgaborfilt(im_scotoma, gaborArray);
external_features = sum(mag, 3);
figure; subplot(1,2,1); imshow(uint8(im_scotoma)); title('Central Scotoma Vision');
subplot(1,2,2); imshow(external_features, []); colormap('jet'); title('Extracted External Optical Features');
Est. Duration: 1–2 Weeks
Request Custom Project →