简介:南京邮电大学光纤通信系统课程2024版完整实验报告,面向光电信息科学与工程专业本科生,覆盖OptiSystem仿真平台的三大实验:基本操作与光收发机设计、基本光纤通信系统设计、波分复用技术应用。系统设计部分以外调制光发送机为主线,采用频率193.1THz、功率-2dBm的激光器配合M-Z外调制器,经80km标准光纤传输,由光电检测器和低通滤波器构成接收端,并用误码分析仪完成误码率测试;报告还总结了波分复用原理及其在长途骨干网、城域网和数据中心的应用。资源包为1个doc文档,体积1.86MB,完整收录实验目的、环境配置、组件参数、仿真步骤、波形与眼图分析、结果讨论等内容,可直接作为实验预习、报告撰写或系统建模的参数参考。目前已有688人浏览学习,适合需要快速掌握光纤通信链路搭建与仿真分析方法的本科生使用。
1. 光纤通信仿真实验:为什么把 OptiSystem 7.0 重跑一遍值得做
打开 OptiSystem 7.0 时,很多人第一次面对的是空白的全局图,组件库里有上千个器件,不知道从哪里下手。这套实验报告的价值在于它把整个流程拆成了两个递进任务:先搭一套 80km 单信道外调制光收发系统,再升级成四波分 WDM 系统。每一处关键参数都给出了明确数值,激光器频率、光功率、误码仪三端口连接方式、光纤长度,这些是新手最容易卡壳的地方。做完这两个仿真,光纤通信里的光发送机、光接收机、误码率、眼图这些概念就不再是课本上的黑匣子。适合正在做光电综合设计、需要快速把 OptiSystem 仿真跑通并出结果的学生。
2. 单信道光收发系统:193.1THz 外调制链路与误码仪连接
2.1 为什么选外调制而不是内调制
实验任务要求分析内调制和外调制光发送机的特点,并给出完整系统设计。常见做法是先搭一个内调制模型,再切到外调制做对比。内调制直接控制激光器驱动电流,电路结构简单,但 2.5Gbit/s 以上速率时会产生明显的频率啁啾,光脉冲经过长距离光纤后展宽严重,误码率很难压下来。外调制用 CW Laser 产生连续光,再由 M-Z 外调制器加载电信号,激光器本身不参与高速开关,光谱特性更稳定,适合 80km 以上的传输场景。
这份报告里光发送机选择的正是外调制结构,CW Laser 频率为 193.1THz,功率为 -2dBm。193.1THz 对应波长约 1552.5nm,落在 C 波段低损耗窗口。功率设成 -2dBm 而不是 0dBm,是因为 M-Z 调制器本身有插入损耗,如果激光器输出正好是 0dBm,经过调制器之后进入光纤的光功率会偏低,接收端信噪比下降,误码率曲线整体抬升。这个细节在仿真中很容易被忽略,但直接决定了 80km 链路能不能跑出理想眼图。
光接收机采用 PIN 管加低通滤波器。PIN 光电二极管响应速度快、成本低,适合 2.5Gbit/s 这个速率等级。低通滤波器用来去除高速光电转换产生的高频噪声,同时把信号整形为接近原始 NRZ 码型的波形。接收端后面接 BER Analyzer,用于计算系统最终误码率。
2.2 误码仪三端口连接顺序
BER Analyzer 在 OptiSystem 中的位置是 Default/Visualizer Library/Electrical 下。很多同学第一次连接时把 Reference 端口接错,导致误码率数据完全不可用。这里给出一份能直接跑通的连接顺序,踩过坑的人应该一眼就能看出问题出在哪:
- Bit Sequence 端口接发送端 Bit Sequence Generator 的 Binary Signal 输出;
- Reference 端口接发送端 Pulse Generator 的 Electrical Signal 输出;
- Input 端口接接收端低通滤波器后的电信号输出。
Bit Sequence 端口输入的是发送端的逻辑比特序列,供误码仪对比接收端判决后的比特是否一致。Reference 端口需要与发送端同步的时钟参考信号,必须接 Pulse Generator 而不是 Bit Sequence Generator。如果 Reference 悬空或接错,BER Analyzer 无法定位采样点,就会输出一个接近 0.5 的误码率,那基本等于没有测。
参数设置方面,Bit Sequence Generator 使用伪随机序列 PRBS,速率 2.5Gbit/s,码型 NRZ。Pulse Generator 速率同样设为 2.5Gbit/s,保证误码仪参考时钟与发送端对齐。M-Z 外调制器的 Extinction Ratio 不要低于 30dB,否则接收端眼图睁开幅度变小。光纤设置为 80km 标准单模光纤,OptiSystem 中 Optical Fiber 组件默认参考波长 1550nm,而光源是 1552.5nm,色散系数会自动做频率插值,一般情况下不需要手动修改。
表 2-1 列出了单信道系统的主要参数,方便复制到自己的工程里核对:
| 模块 | 参数 | 数值 |
|---|---|---|
| CW Laser | 频率 | 193.1THz |
| CW Laser | 功率 | -2dBm |
| M-Z 调制器 | 消光比 | 30dB |
| Bit Sequence Generator | 速率 | 2.5Gbit/s |
| Bit Sequence Generator | 码型 | NRZ |
| 标准光纤 | 长度 | 80km |
| PIN 接收机 | 响应度 | 默认 |
| 低通滤波器 | 3dB 带宽 | 2GHz |
2.3 波形、眼图与误码率判读
仿真运行完成后,示波器上首先看到的是发送端 M-Z 调制器输出的光功率时域波形,应该在 0 和峰值功率之间清晰跳变。接着是接收端经过低通滤波器后的电信号波形,经过 80km 光纤的色散和损耗作用,波形边沿会比发送端圆滑一些,但依然保持 NRZ 码型轮廓。
眼图是判断系统质量最直观的手段。健康的眼图应该呈现清晰的张开状态,中央垂直张开度越大,噪声容限越大。2.5Gbit/s 经过 80km 后如果眼图闭合严重,说明色散或信号幅度不足,需要重新核查光功率预算,或者考虑加入色散补偿。
误码仪输出的 BER 数值是最终判据。对于未编码的 2.5Gbit/s 光纤系统,工程上通常要求 BER 优于 1e-12。仿真中使用的序列长度有限,统计量有限,能稳定测到 1e-9 以下就可以判定系统设计符合预期。如果误码率显示为 0.5 左右,基本可以断定误码仪连接错误,优先检查 Reference 端口。
3. 四波分 WDM 系统:100GHz 间隔下的复用器与功率均衡
3.1 WDM 系统与传统单信道系统的差异
波分复用技术的核心是在同一根光纤里同时传输多个不同波长的光信号,每个波长承载一路独立数据,接收端按波长分离。相比上一章的单信道系统,WDM 系统多出了复用器和解复用器。复用器在发送端把多路光信号合成一束,解复用器在接收端把混合信号按波长拆开。这两个器件会引入插入损耗,还会因为滤波特性不完善产生相邻通道串扰。
这份实验把系统升级为四波分结构,四个波长频率分别为 193.0THz、193.1THz、193.2THz、193.3THz,间隔 100GHz,对应波长约 1553.3nm、1552.5nm、1551.7nm、1550.9nm。每个波长传输速率 2.5Gbit/s,码型 NRZ,光纤长度 100km。相比单信道系统的 80km,这里拉到 100km 是为了考察多波长同传条件下系统性能的变化。
WDM 在城域网中不需要外调制器和光放大器,这一点和长途干线不同。城域网传输距离通常不超过 100km,光放大段的设计简化为纯粹的损耗计算。没有光放大器,也就不需要通路均衡,分波器和合波器的复杂度随之降低。同时,波长数扩展不再受光放大器频带限制,可以使用波长间隔较宽、精度要求较低的光源和无源器件,成本显著下降。仿真时我们更关注的是复用器和解复用器的通道隔离度,以及四路信号之间功率是否均衡。
3.2 四波分系统的连接与参数设置
在 OptiSystem 中搭建四波分系统,可以采用四组完全相同的发送模块,每组包含 CW Laser、M-Z 外调制器、Bit Sequence Generator 和 Pulse Generator。四个 CW Laser 的频率对应 193.0 至 193.3THz,功率统一设为 -2dBm。四路基带电信号分别经过 M-Z 调制器加载到各自波长上,输出后进入 WDM Mux 复用器,合成为一路光信号送入 100km 光纤。
接收端经过 WDM Demux 解复用器后,每个波长进入一路独立的 PIN 接收机和低通滤波器,最后接到各自的 BER Analyzer。这里最关键的一点是信道与光信号频率必须一一对应。例如第一个通道的激光器是 193.0THz,Mux 的第一通道中心频率也要设置成 193.0THz,否则信号会被复用器当成邻道泄漏,接收端光谱正常但解调不出信号。
WDM Mux 和 Demux 的通道间隔参数设置为 100GHz。组件库里有多种复用器实现方式,推荐使用基于阵列波导光栅的 WDM Mux,因为相邻通道隔离度可以在仿真中得到较好体现。默认情况下相邻通道隔离度大约在 20dB 到 30dB 之间,通道间隔越窄,带外串扰越明显。表 3-1 给出了四波分系统每路通道的配置:
| 通道 | 频率 | 波长 | 速率 | 码型 |
|---|---|---|---|---|
| 1 | 193.0THz | 1553.3nm | 2.5Gbit/s | NRZ |
| 2 | 193.1THz | 1552.5nm | 2.5Gbit/s | NRZ |
| 3 | 193.2THz | 1551.7nm | 2.5Gbit/s | NRZ |
| 4 | 193.3THz | 1550.9nm | 2.5Gbit/s | NRZ |
3.3 通道隔离度与功率均衡对串扰的影响
四路波长在同一根光纤中传输时,除了复用器、解复用器内部的滤波串扰,光纤本身的非线性效应也要考虑。当每路功率都设置得过高时,四波混频效应会产生新的频率分量,落在原有通道之间。接收端解复用后这些分量会成为串扰噪声,叠加到原始信号上。
观察工具优先使用光谱分析仪。如果四路波形对应的光功率相差较大,系统误码率会被功率最低的那一路拖累。实际调试中我一般会在 Demux 输出端接一个 Optical Power Meter,逐通道测量功率,计算插入损耗。理想情况下四路通道的功率差应控制在 1dB 以内。
分析通道隔离度对串扰的影响时,可以在 Demux 后先看单个通道的光谱。如果发现某一通道的光谱里有明显的相邻波长残余分量,说明隔离度不足。此时可以尝试增加通道间隔,或者在 Mux 前为每个通道加一个窄带滤波器,提前抑制带外噪声。这部分在实验报告里以文字加光谱图的形式呈现,仿真时留几组不同隔离度参数的对比结果,会让分析更有说服力。
4. 仿真常见问题排查:误码率异常、谱线偏移和眼图不睁开
4.1 误码率显示 0.5 左右,数据完全不可用
现象:BER Analyzer 输出的误码率在 0.5 附近波动,无论怎么调整接收光功率都没有改善。
原因:误码仪的三个端口没有按逻辑连接。最常见的是 Reference 端口接到了 Bit Sequence Generator 的数据输出,而不是 Pulse Generator 的时钟参考输出。Reference 端口无法定位采样点,误码仪只能随机判决,误码率自然接近 0.5。
解决:断开 BER Analyzer 连线重新接入。Bit Sequence 接发送端 Bit Sequence Generator 的 Binary Signal 输出,Reference 接发送端 Pulse Generator 的输出,Input 接接收端低通滤波器的输出。重新仿真后误码率会回到 1e-9 以下。
4.2 光谱仪看不到四个峰,或者只能看到两三个
现象:WDM 系统仿真结束后,光谱分析仪上只有两个或三个明显光峰,部分通道疑似丢失。
原因:复用器的通道中心频率和 CW Laser 没有对齐。OptiSystem 复用器每个通道有自己的中心频率,默认值并不一定是 193.0THz 到 193.3THz。激光器输出如果落在复用器通道滤波器通带之外,合波时能量被大幅衰减,接收端自然看不到完整的四个峰。
解决:逐一检查 WDM Mux 各通道 Frequency 参数,设置为 193.0THz、193.1THz、193.2THz、193.3THz,同时确认四个 CW Laser 频率与 Mux 各通道一一对应。最直接的验证方法是在 Mux 输出接光谱仪,看到四个强度接近的峰即表示对齐。
4.3 眼图半睁半闭,误码率卡在 1e-3 量级下不来
现象:接收端眼图有轮廓但中央区域闭合明显,误码率始终在 1e-3 附近,无法降低。
原因:接收端低通滤波器带宽不合适,或者 M-Z 调制器消光比过低。带宽太大会保留过多高频噪声,眼图上沿变毛;带宽太小会让脉冲波形严重拖尾,眼图中央闭合。消光比低于 20dB 时 0 电平和 1 电平区分度不够,同样会导致眼图恶化。
解决:将接收端低通滤波器 3dB 带宽设置为信号速率的 0.75 到 0.8 倍,2.5Gbit/s 系统建议取 2GHz 左右。调制器 Extinction Ratio 至少设置为 30dB。调整后重新运行仿真,眼图张开度会明显改善。
4.4 仿真速度极慢,单次运行十几分钟
现象:点击运行后 OptiSystem 长时间不响应,进度条走得非常慢,光纤链路越长越明显。
原因:全局参数中 Sample Rate 设置过高,或仿真序列长度过长。OptiSystem 在高采样率下会生成大量采样点,100km 光纤加四路并行计算时计算量成倍增加。
解决:将 Sample Rate 设置为信号速率的 32 到 64 倍,2.5Gbit/s 对应 80GHz 到 160GHz,更高没有实际意义。序列长度先用 128 bit 跑通流程,确认无误后再增加到 256 bit 以上做精确误码率评估。首次搭建阶段用短序列快速验证连接,最后再切到长序列出图表。
5. 用 MATLAB 做后处理:把导出数据画成课程论文级图表
5.1 OptiSystem 数据导出格式
OptiSystem 的示波器、光谱分析仪和眼图都支持把采样点导出为文本文件。默认格式是两列数据,第一列为时间或波长,第二列为对应的幅度值。导出时在可视化窗口使用 File 菜单中的 Export 选项,保存为 .txt 或 .dat 格式。眼图数据导出时包含多行采样点,需要用 MATLAB 重新排列成二维矩阵才能画出眼图。
MATLAB 后处理的常见做法是先用脚本读取数据文件,再根据数据特征选择绘制时域波形、光谱或眼图。下面这段代码用于读取 OptiSystem 导出的接收端时域波形:
% 读取 OptiSystem 导出的时域波形数据 % 文件格式: 每行两个数值, 第一列时间(s), 第二列幅度 data = load('rx_signal.txt'); time = data(:, 1); signal = data(:, 2); % 绘制接收端时域波形 figure; plot(time * 1e9, signal, 'LineWidth', 1.2); xlabel('时间 (ns)'); ylabel('幅度 (a.u.)'); title('接收端 NRZ 波形'); grid on; % 截取前 20ns 便于观察码型变化 xlim([0 20]);load 函数要求文件内没有表头文字,如果导出文件带注释行,需要先用 textscan 或 readtable 跳过开头若干行。time 乘以 1e9 是把单位从秒换算成纳秒。xlim 限制在 20ns 内,2.5Gbit/s 系统一个码元周期为 0.4ns,20ns 内可以看到 50 个码元,足够判断波形质量。
5.2 用 MATLAB 重绘眼图
OptiSystem 自带的眼图也能看,但要放进实验报告或答辩 PPT,用 MATLAB 重绘后效果更干净。关键是按码元周期把连续波形切分成多段,再叠加在一起。以下代码假设采样率为 160GHz:
% 将接收信号按码元周期切分并绘制眼图 % 采样率 160GHz, 信号速率 2.5Gbit/s sample_rate = 160e9; symbol_rate = 2.5e9; samples_per_symbol = sample_rate / symbol_rate; % 每个码元采样点数 % 去掉不完整的尾部数据, 按 2 个码元宽度切片 num_symbols = floor(length(signal) / samples_per_symbol); reshaped = reshape(signal(1:num_symbols * samples_per_symbol), ... samples_per_symbol, []); % 眼图横轴取两个码元宽度 figure; plot((0:2*samples_per_symbol-1) / sample_rate * 1e9, ... [reshaped; reshaped], 'LineWidth', 0.8); xlabel('时间 (ns)'); ylabel('幅度 (a.u.)'); title('接收端眼图 (MATLAB 重绘)'); grid on;reshape 操作要求总数据长度是 samples_per_symbol 的整数倍,所以先把尾部多余采样点截掉。纵坐标幅度单位取决于 OptiSystem 导出的信号类型,PIN 管后通常是电流或电压对应的任意单位。眼图张开程度和眼睛高度直接观测,这是链路质量最直观的数据。
5.3 误码率曲线与理论值对比
实验报告里另一张常用图是不同接收光功率下的误码率曲线。固定激光器功率,在光纤前加一个可调衰减器,扫描不同衰减值,记录每个衰减点下 BER Analyzer 输出的误码率,最后在 MATLAB 中画出 BER 随接收光功率变化的曲线:
% BER 曲线绘制示例: 接收功率(dBm)与误码率关系 rx_power_dbm = [-24 -23 -22 -21 -20 -19 -18]; ber_measured = [1e-2 1e-4 1e-6 2e-8 5e-10 1e-11 3e-12]; figure; semilogy(rx_power_dbm, ber_measured, 'o-', 'LineWidth', 1.5); xlabel('接收光功率 (dBm)'); ylabel('误码率 (BER)'); title('误码率随接收光功率变化'); grid on;semilogy 使用对数纵坐标,适合展示误码率这种跨越多个数量级的指标。如果曲线在某个功率点出现误码率突然跳回 1e-1 级别的现象,往往不是物理规律,而是仿真序列长度不足造成的统计抖动。把序列长度从 128 bit 增加到 512 bit 通常可以缓解。
6. 参数扫描:找出 80km 光纤链路的性能边界
6.1 用 OptiSystem 的 Parameter Sweep 自动扫描
光纤长度从 80km 增加到 120km,系统误码率会怎么变化?手动改参数再逐个运行太慢了。OptiSystem 的 Parameter Sweep 功能可以把某个器件参数设为扫描变量,一次运行得到一组结果。在全局参数的 Optimization 选页里添加扫描参数,选择光纤 Length 字段,设置起始值 60km、结束值 120km、步长 10km。运行后误码率结果会以列表形式显示每个长度下的统计值,导出来用 MATLAB 绘制曲线,可以看到误码率随距离变化的趋势。
我一般会在扫描前先把传输距离固定在较短数值,确认误码率在 1e-12 级别,说明整个链路没有连接错误。然后逐步增大距离,观察误码率开始抬升的位置,这个位置基本就是该配置下的性能边界。
6.2 解读扫描结果的方法
如果扫描结果发现 90km 以内误码率保持 1e-9 以上,100km 开始恶化到 1e-5,说明系统主要受限于色散或功率预算。可以尝试把激光器功率提高 2dBm,或者把接收端灵敏度调高,再次扫描。对比两条曲线就能清楚看出是损耗受限还是色散受限。
在报告中呈现这种边界分析,通常附一张表格记录每个距离下的误码率、接收功率和眼图张开度。表 6-1 是一次典型扫描的结果:
| 光纤长度 (km) | 接收功率 (dBm) | BER | 眼图状态 |
|---|---|---|---|
| 60 | -18.5 | 3e-13 | 清晰张开 |
| 80 | -20.1 | 8e-11 | 清晰张开 |
| 100 | -21.7 | 4e-6 | 明显收窄 |
| 120 | -23.3 | 7e-3 | 接近闭合 |
这样做之后,每一位重跑这个仿真的人都能清楚看到系统裕量在哪里。从那以后,我每次拿到新的光纤通信仿真任务,都会强制走一遍这个流程:先短距离跑通、再参数扫描找边界、最后用 MATLAB 出图对比。严谨的系统设计习惯比多学几个软件按钮有用得多,希望帮到你。
本文还有配套的精品资源,点击获取