✨ 长期致力于异步非线性采样、线性光采样、载波包络相位、光高阶调制、相干光检测、光学频率梳、数字信号处理研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于正交调制与任意波形发生器的16-QAM光信号产生系统设计了两路四电平电信号发生器采用任意波形发生器输出符号率10Gbaud的基带信号经过线性放大器和偏置控制电路驱动IQ调制器。通过优化电信号的上升沿时间和过冲使调制器的I/Q两路幅度平衡度优于0.1dB正交相位误差小于2度。产生的16-QAM光信号中心波长1550.12nm线宽100kHz。在背靠背测试中接收端使用窄线宽本振激光器和90度光混频器平衡探测器输出经20GSa/s ADC采样。星座图的误差向量幅度为4.2%满足标准要求。改变任意波形发生器的采样率可产生不同速率信号实验实现了28Gbaud 16-QAMEVM为6.8%。2基于四次方FFT的载波频偏估计与多模均衡算法提出一种改进的载波频偏估计方法对接收信号进行四次方运算后做FFT频谱峰值对应4倍频偏。在10Gbaud信号中频偏估计范围±5MHz精度±10kHz。频偏补偿后采用级联多模算法进行盲均衡先用恒模算法收敛再切换至半径定向算法跟踪相位噪声。均衡器抽头长度15步长0.001。经过2km标准单模光纤传输后均衡后的星座图EVM从15%改善至6.2%。针对激光器相位噪声设计了一种基于卡尔曼滤波的载波相位恢复算法在信噪比15dB时相位噪声方差降低70%。3光线性采样实现恒定载波包络相位测量利用光频梳作为采样源对DQPSK光信号进行线性采样。理论推导表明通过测量采样后信号的两路正交分量可以解算出载波包络相位。在LabVIEW仿真中设定载波包络相位为0.8rad线性采样恢复值为0.79rad误差0.01rad。脉冲宽度对测量精度的影响研究表明当脉冲宽度从200fs增加到500fs时测量误差从0.003rad增至0.015rad。实验搭建了重复频率100MHz的飞秒激光器载波包络相位锁定在0相位对高速16-QAM信号进行线性采样成功获取了信号电场演变轨迹。该方法可应用于超高速光信号质量监控测量速率达到40Gbaud以上。import numpy as np import scipy.signal as sig from scipy.fft import fft, ifft def generate_16qam(symbols): # 16-QAM 映射 Gray编码 mapping {0: -3-3j, 1: -3-1j, 2: -33j, 3: -31j, 4: -1-3j, 5: -1-1j, 6: -13j, 7: -11j, 8: 3-3j, 9: 3-1j, 10: 33j, 11: 31j, 12: 1-3j, 13: 1-1j, 14: 13j, 15: 11j} return np.array([mapping[s] for s in symbols]) def carrier_freq_offset_estimation(rx_signal, fs): # 四次方FFT频偏估计 fourth rx_signal**4 N len(fourth) spec fft(fourth) freq np.fft.fftfreq(N, 1/fs) idx np.argmax(np.abs(spec)) f_est freq[idx] / 4 return f_est def blind_equalization(rx, taps15, mu0.001): # 恒模算法半径定向 w np.zeros(taps, dtypecomplex) w[taps//2] 1.0 y np.zeros_like(rx, dtypecomplex) for n in range(taps, len(rx)): x_n rx[n-taps:n][::-1] y[n] np.dot(w, x_n) # 半径定向误差 r np.abs(y[n]) if r 1.5: target 2.0 * np.exp(1j*np.angle(y[n])) else: target 1.0 * np.exp(1j*np.angle(y[n])) e target - y[n] w mu * e.conj() * x_n return y def linear_sampling_carrier_envelope(signal, sampler_pulse): # 光线性采样重建电场 sampled np.convolve(signal, sampler_pulse, modesame) # 假设可以分解出包络相位 envelope np.abs(sampled) phase np.angle(sampled) return envelope, phase if __name__ __main__: # 生成16-QAM符号 np.random.seed(42) data np.random.randint(0,16,1000) tx generate_16qam(data) # 加入频偏和噪声 fs 20e9 t np.arange(len(tx))/fs freq_offset 250e3 rx tx * np.exp(2j*np.pi*freq_offset*t) 0.05*np.random.randn(len(tx)) f_est carrier_freq_offset_estimation(rx, fs) print(f估计频偏: {f_est/1e3:.1f} kHz, 实际: {freq_offset/1e3:.1f} kHz) # 均衡 rx_eq blind_equalization(rx, taps11, mu0.005) # 线性采样模拟 pulse np.exp(-(t[:200]-t[100])**2/(2*(1e-12)**2)) # 1ps脉冲 env, ph linear_sampling_carrier_envelope(rx_eq[:200], pulse) print(线性采样完成已提取包络和相位)