
✨ 长期致力于光纤-无线接入网、正交频分复用、数字正交滤波、色散补偿、虚拟子载波调度、虚拟网络嵌入研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于信道传递函数的自适应比特功率分配方案在OFDM-PON上行传输系统中不同子载波经历的信道衰减差异显著。提出一种低复杂度注水算法该算法先通过训练序列估计各子载波的信噪比然后按照信道增益排序将总发射功率优先分配给增益最高的30%子载波剩余子载波仅分配最低保护功率。在光线路终端接收端采用迫零均衡消除子载波间干扰。仿真参数设置子载波数128循环前缀长度1/8符号周期调制阶数自适应BPSK至64QAM。在20km标准单模光纤传输中系统总发射功率相比等功率分配降低2.8dB且误码率低于1e-3的传输容量提升至38.4Gbit/s。进一步引入离散多音调制与自适应比特加载每个子载波独立选择调制阶数使得系统频谱效率提升22%。对用户等级差异化需求将高优先级用户的数据映射到低衰减子载波保证其误码率比普通用户低一个数量级。2利用自相位调制效应补偿色散的数字正交滤波方法针对光纤色散引起的特定子载波功率衰落提出一种基于数字正交滤波的SPM补偿架构。在发送端将基带OFDM信号经过一组分析滤波器组分解为多个子带每个子带带宽远小于信道相干带宽。随后对每个子带信号进行功率预加重衰落严重的子带对应零色散点附近的频率提升功率至2倍均值。高功率信号在光纤中产生自相位调制引入与色散相反的非线性相移从而部分抵消线性色散的影响。在VPI传输仿真中80km SSMF1550nm激光器线宽100kHz采用SPM补偿后最差子载波的接收Q因子从9.2dB提升至14.5dB。最大传输距离从100km扩展至160km代价是光信噪比损失1.8dB。结合自适应信道功率分配系统总容量可达1.2Tbit/s80km。3面向绿色节能与生存性的虚拟子载波调度机制为降低FiWi接入网能耗并保障分支光纤故障下的业务存活提出一种虚拟子载波迁移算法。将光网络单元的逻辑连接抽象为虚拟子载波集合通过整数线性规划模型最小化激活的光线路终端端口数量。算法中引入休眠阈值当某端口承载的虚拟子载波总速率低于50Mbps时将其上的业务迁移至相邻端口原端口进入深度休眠功耗降低85%。在分支光纤故障场景下采用先应式备份每个光网络单元预先分配一个保护虚拟子载波故障发生后10毫秒内切换至备用路径。仿真场景包含32个光网络单元业务流为混合型视频、数据、VoIP。结果表明节能机制使系统平均功耗降低34%维护批次从8批减至5批。故障恢复时高优先级业务零丢包普通业务丢包率0.3%以下。import numpy as np from scipy.signal import firwin, lfilter class AdaptiveBitPowerLoading: def __init__(self, num_carriers128, snr_db_vecNone): self.N num_carriers self.snr_db snr_db_vec if snr_db_vec is not None else 20 5*np.random.randn(num_carriers) self.snr_lin 10**(self.snr_db/10) self.snr_sorted_idx np.argsort(-self.snr_lin) def water_filling(self, P_total1.0, gamma0.1): # 简化的注水功率分配 H self.snr_lin water_level (P_total np.sum(1/H)) / self.N power water_level - 1/H power np.maximum(power, 0) # 再分配总功率约束 power power / np.sum(power) * P_total # 根据信道增益再分配增益最高30%子载波占70%功率 top30 self.N // 3 top_idx self.snr_sorted_idx[:top30] power[top_idx] * 1.4 power[power0.2] 0.2 # 限幅 return power class SPMCompensation: def __init__(self, num_subbands8, filter_taps33): self.M num_subbands self.filter firwin(filter_taps, 1.0/num_subbands, windowhamming) def analysis_filterbank(self, signal): # 分解为子带 subbands [] for k in range(self.M): # 频移 低通 shifted signal * np.exp(-1j*2*np.pi*k*np.arange(len(signal))/self.M) filtered lfilter(self.filter, 1.0, shifted) decimated filtered[::self.M] subbands.append(decimated) return np.array(subbands) def spm_preemphasis(self, subbands, fiber_length_km): # 根据长度补偿色散衰落子带功率提升 attenuation_db np.array([0.5 * length * (k/self.M)**2 for k in range(self.M)]) gain 10**(attenuation_db/10) gain[gain2] 2 # 最大提升3dB compensated [subbands[i] * gain[i] for i in range(self.M)] return compensated class VirtualSubcarrierScheduler: def __init__(self, n_olt_ports8, n_onus32): self.ports n_olt_ports self.onus n_onus self.traffic np.random.rand(n_onus) * 100 # Mbps def greedy_migration(self, threshold50): port_load np.zeros(self.ports) assignment np.zeros(self.onus, dtypeint) # 初始分配 for i, load in enumerate(self.traffic): best_port np.argmin(port_load) assignment[i] best_port port_load[best_port] load # 迁移低负载端口上的ONU for p in range(self.ports): if port_load[p] threshold: # 迁移此端口上的所有ONU到其他端口 onu_indices np.where(assignmentp)[0] for idx in onu_indices: target np.argmin(port_load 1e6*(np.arange(self.ports)p)) assignment[idx] target port_load[target] self.traffic[idx] port_load[p] 0 # 返回休眠端口数量 sleep_ports np.sum(port_load 0.1) return assignment, sleep_ports if __name__ __main__: loading AdaptiveBitPowerLoading() power_alloc loading.water_filling(P_total1.0) print(fPower allocated to first 10 carriers: {power_alloc[:10]}) spm SPMCompensation() test_signal np.random.randn(1024) 1j*np.random.randn(1024) subb spm.analysis_filterbank(test_signal) comp spm.spm_preemphasis(subb, 80) print(fCompensated subband 0 power: {np.mean(np.abs(comp[0])**2):.3f}) sched VirtualSubcarrierScheduler() assign, sleeping sched.greedy_migration() print(fNumber of sleeping OLT ports: {sleeping})