Optisystem仿真案例5-三种调制格式的FSO空间自由光通信系统 内容:搭建了OOK、P...
Optisystem仿真案例5-三种调制格式的FSO空间自由光通信系统 内容搭建了OOK、PPM、BPSK基本结构的三种调制格式的FSO空间自由光通信系统 形式程序附带解析最近在搞FSO通信仿真试了三种不同的调制格式——OOK、PPM、BPSK发现这仨兄弟在系统搭建上还真是各有各的脾气。下面直接上干货把我折腾了一下午的配置参数和踩坑经验分享给大家。先放个系统总架构图镇楼虽然Optisystem里都是拖控件激光器→调制器→大气信道→接收机→眼图分析核心区别全在调制解调这俩模块。OOK简单粗暴就是好def OOK_modulate(bit_sequence): return [laser.on() if bit1 else laser.off() for bit in bit_sequence] # 接收端直接阈值判决 threshold 0.5 * max(received_power) bits_recovered [1 if p threshold else 0 for p in received_power]在Optisystem里拖个NRZ脉冲生成器接直接调制激光器注意激光器的偏置电流要卡在阈值附近。实测10Gbps下当大气湍流增强时误码率曲线会像坐过山车——眼图张开度直接从1.2跌到0.3这时候得在接收机前加个自动增益控制模块救场。PPM时间维度上做文章!Optisystem仿真案例5-三种调制格式的FSO空间自由光通信系统 内容搭建了OOK、PPM、BPSK基本结构的三种调制格式的FSO空间自由光通信系统 形式程序附带解析虽然系统里没有现成的PPM模块但可以用两个序列发生器玩花活第一个生成功率等级比如4-PPM用00/01/10/11第二个控制时隙位置关键代码配置% PPM符号映射 slot_duration 1e-9; % 时隙宽度 symbols [0 0; 0 1; 1 0; 1 1]; for i1:length(data) current_symbol symbols(data(i)1,:); set_pulse_position(current_symbol * slot_duration); % 控制脉冲位置 end接收端用时间门检测器的时候千万要调准时钟同步有次手滑把时间窗口设大了0.1ns结果误码率直接爆炸。建议用时钟恢复模块的二次锁相环比手动调靠谱多了。BPSK相位玩出花样重点在相位调制器和相干检测// BPSK相位翻转逻辑 void BPSK_Modulate(double phase, Laser laser) { if(phase M_PI/2) phase - M_PI; // 防相位卷叠 laser.set_phase( (bit1) ? 0 : M_PI ); }Optisystem里得用马赫曾德尔调制器驱动电压要严格匹配半波电压Vπ。有个骚操作是把本地振荡器的功率调高3dB这样平衡探测器输出信号的信噪比能提升约40%。不过记得加偏振控制器上次忘了调这个结果星座图乱得像撒芝麻。性能对比彩蛋跑完仿真别急着关把三个系统的眼图放一起对比特别带感OOK的眼图像个胖头鱼张得开但容易受干扰PPM的眼图像叠罗汉多个时隙脉冲排排坐BPSK的眼图像刀片窄而尖锐最后说个血泪教训跑大气湍流模块时千万保存工程有次设了个10dB/km的衰减直接把我电脑跑蓝屏了...别问问就是风扇狂转的声音至今难忘三种方案实测在5km传输下BPSK的Q因子能比OOK高6.2dB但设备复杂度也是真·烧钱。所以实际选型嘛——要省钱选OOK要距离选BPSK折中就PPM完事
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476260.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!