当前位置: 首页 > news >正文

计算光纤色散带来的相位移动 matlab

 需要注意的地方

1.以下内容纯属个人理解,很有可能不准确,请大家仅做参考

2.光速不要直接用3e8 m/s,需要用精确的2.9979....

3.光的频率无论在真空还是光纤(介质)都是不变的,是固有属性,但是波长lambda=c/f在不同的介质中是不同的。

4.光在介质的传播速度vg = c/n,其中n是介质的折射率。紧接第2条,光在介质中的波长是lamda = vg/f,而非真空中的c/f;

5.一个调制在光载波fc=193.1THz两侧的信号(DSB调制),fs=30GHz。假设信号的phase=0的条件下:

光负边带相位 phase(fc-fs)=-180;

光正边带相位 phase(fc+fs)=0;

那么我将fs=30GHz的调制信号phase=0改变为phase=30,对应的:

负边带相位 phase(fc-fs)=-180-30=-210 (wrapTo180方法后,就是150度);

正边带相位 phase(fc+fs)=0+30=30;

原因在于:相对于光载波fc,正边带的角频率(ws(t))是正的(顺时针旋转),负边带的角频率是负的(-ws(t))(逆时针旋转)

6.色散参数D以及色散带来的延时计算

(1)色散参数表示经过L长度的光纤后,目标信号的波长(比如193.2THz)与参考波长(比如193.1THz对应的波长)的波长差d_lambda(c/193.1THz   -  c/193.2 THz)造成的延时,其单位是(s/m^2)

(2)造成的延时tao = D*L*d_lamda;当然,记得考虑上光传播的物理延时:L/vg;

那么tao_all =  D*L*d_lamda + L/vg;

(3)传播常数的理解,参考另一位博主的文章:全网首篇用人话讲清楚:光纤中的色散_光纤色散-CSDN博客

注意,波数k就是传播常数,当然波数不要理解为波的数量(比如有几束波)

以下是以下总结:

(4)例子(注意,此处的色散计算没有用到传播常数,而是在已经知道光参考频率Fref以及在参考频率Fref上的色散参数D做的例子):

下列公式表示了一个DSB调制的光信号(MZM直流偏压造成的相位移动是pi/2,输入角频率为ws的信号在MZM上下RF口相位差为pi),fai_0和fai_+1,fai_-1分别是色散引入的相位移动,边带信号ws的相位被默认为0度:

PD后的信号如下

所以,只需要计算fai_-1和fai_+1的大小,就能得到PD后信号的相位

%% ---- plot successful all wavelength--------------------------------------------------
c=physconst('LightSpeed'); % 真空中光速,单位:m/s
L = 10e3;  % 光纤长度,单位:m
D = 16e-6; % 色散系数,单位:s/m²
n=1.47;    % 光纤折射率
vg = c/n;  %光纤群速度
Fref  = 193.1e12; % 中心频率(光纤参考频率),单位:Hz
freq_opt = linspace(193.1e12, 195.5e12, 25)';  %频率范围193.1-195.5(THz)
Fsig_l = 30e9;  % 左边带频率 (模拟VPI由于采样不为整数的情况)
Fsig_r = 30e9;  % 右边带频率 (模拟VPI由于采样不为整数的情况)
tao_left =    zeros(length(freq_opt),1);    %存放-30°延时
tao_right =   zeros(length(freq_opt),1);   %存放+30°延时
phase_left =  zeros(length(freq_opt),1);  %存放-30°相位
phase_right = zeros(length(freq_opt),1); %存放+30°相位
phase_left_plot  = zeros(length(freq_opt),1);  %绘图
phase_right_plot = zeros(length(freq_opt),1);  %绘图
phase_true_plot = zeros(length(freq_opt),1);   %绘图
phase_PD = zeros(length(freq_opt),1);          %存放PD后信号的相位
phase_PD_wrap180 = zeros(length(freq_opt),1);  %存放PD后信号的相位(180°wrap)
for i=1:length(freq_opt)delta_lamda_l = -(c/(freq_opt(i)-Fsig_l)-c/Fref); %左边带与参考波长193.1THz的波长差(nm)delta_lamda_r =  (c/(freq_opt(i)+Fsig_r)-c/Fref); %右边带与参考波长193.1THz的波长差(nm)tao_left(i)  = D*L*delta_lamda_l + L/vg;          %左边带与参考波长193.1THz的延时差(s)tao_right(i) = D*L*delta_lamda_r + L/vg;          %右边带与参考波长193.1THz的延时差(s)phase_left(i)  = -2*pi*Fsig_l*(tao_left(i));   %左边带色散造成的相位移动(rad)phase_right(i) = -2*pi*Fsig_r*(tao_right(i));  %右边带色散造成的相位移动(rad)phase_left_plot(i)  = getDegree(-2*pi*Fsig_l*(D*L*delta_lamda_l+L/vg)) ;  %左边带色散造成的相位移动(rad)phase_right_plot(i) = getDegree(-2*pi*Fsig_r*(D*L*delta_lamda_r+L/vg)) ;  %右边带色散造成的相位移动(rad)phase_PD_wrap180(i) = (getDegree(phase_right(i))-getDegree(phase_left(i)))/2
end
phase_right_plot(1)= -phase_right_plot(1);   %因为第一个测试波长和参考波长一样,导致d_lamda为负数了
phase_true = (phase_right_plot-phase_left_plot)/2figure(1);
scatter(freq_opt,phase_left_plot,10,"o","filled");
hold on;
scatter(freq_opt,phase_right_plot,10,"^","filled");
plot(freq_opt,phase_true);
hold off;
legend("(φ+1)","(φ-1)","[(φ+1)-(φ-1)]/2");% xlim([0:196e12])  ;
% ylim([0,2.2e5]);      
set(gca,'linewidth',1.5);
set(gcf,'PaperUnits','normalized','Position',[500 200 950 450]) %采用相对值设置
% set(gca,'FontName','Times New Roman','FontSize',14);
% set(get(gca,'XLabel'),'FontName','Times New Roman','FontSize',14);
% set(get(gca,'YLabel'),'FontName','Times New Roman','FontSize',14);
set(gca,'XTick',[0:100e9:195.5e12]);
set(gca,'YTick',[-180:30:180]);
% set(get(gca, 'XLabel'), 'String', []);set(get(gca, 'YLabel'), 'String', [])% 去掉label
% set(gca,'xticklabel','','yticklabel','','zticklabel',''); % 去掉坐标值
function degree180 = getDegree(radLong)
%UNTITLED3 此处显示有关此函数的摘要
%   此处显示详细说明
tmp  = rad2deg(radLong);
degree180 = wrapTo180(tmp);
end

相关文章:

计算光纤色散带来的相位移动 matlab

需要注意的地方 1.以下内容纯属个人理解,很有可能不准确,请大家仅做参考 2.光速不要直接用3e8 m/s,需要用精确的2.9979.... 3.光的频率无论在真空还是光纤(介质)都是不变的,是固有属性,但是波长lambdac/f在不同的介…...

国内docker pull拉取镜像的解决方法

访问网站,查找该网站上可用的镜像源,然后替换掉下面代码中的hub-mirror.c.163.com: docker pull hub-mirror.c.163.com/library/nginx:latest 另外,进入到镜像之后,可以使用下面的命令查看操作系统版本。 lsb_releas…...

“Kafka面试攻略:核心问题与高效回答”

1,生产者发送消息的原理 发送消息的过程中,涉及到两个线程,main线程和sender线程,main线程会创建一个双端队列,main线程向双端队列发送消息,sender线程从双端队列里拉取消息,发送给Kafka Broke…...

C++ 多线程std::thread以及条件变量和互斥量的使用

前言 本文章主要介绍C11语法中std::thread的使用,以及条件变量和互斥量的使用。 std::thread介绍 构造函数 std::thread 有4个构造函数 // 默认构造函,构造一个线程对象,在这个线程中不执行任何处理动作 thread() noexcept;// 移动构造函…...

新华三H3CNE网络工程师认证—子接口技术

子接口(subinterface)是通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口。在VLAN虚拟局域网中,通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上,无法使用单台路由器的一个物理接口…...

【MySQL】InnoDB内存结构

目录 InnoDB内存结构 主要组成 缓冲池 缓冲池的作用 缓冲池的结构 缓冲池中页与页之间连接方式分析 缓冲池如何组织数据 控制块初始化 页面初始化 缓冲池中页的管理 缓冲区淘汰策略 查看缓冲池信息 总结 变更缓冲区-Chang Buffer 变更缓冲区的作用 主要配置选项…...

基于大数据爬虫数据挖掘技术+Python的网络用户购物行为分析与可视化平台(源码+论文+PPT+部署文档教程等)

#1024程序员节|征文# 博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老…...

蓝桥杯每日真题 - 第19天

题目:(费用报销) 题目描述(13届 C&C B组F题) 解题思路: 1. 问题抽象 本问题可以看作一个限制条件较多的优化问题,核心是如何在金额和时间约束下选择最优方案: 动态规划是理想…...

CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117

CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117 备份 /etc/yum.repos.d 文件夹 tempUri/etc/yum.repos.d ; sudo cp -a $tempUri $tempUri.$(date %0y%0m%0d%0H%0M%0Sns%0N).bak清空 /etc/yum.repos.d 文件夹 sudo rm -rf /etc…...

Spark SQL大数据分析快速上手-完全分布模式安装

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 大数据与数据分析_夏天又到了的博客-CSDN博客 Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文 完全分布模式也叫集群模式。将Spark目…...

Java面试题2024-Java基础

Java基础 1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、…...

局域网协同办公软件,2024安全的协同办公软件推荐

在2024年,随着数字化转型的深入和远程工作需求的增加,协同办公软件已成为企业提升工作效率、优化沟通流程的重要工具。 以下是一些值得推荐的安全的协同办公软件: 钉钉 功能全面:钉钉是一款综合性极强的企业级协同软件&#xff…...

osg、osgearth简介及学习环境准备

一、osg简介(三维场景图渲染与调度引擎) OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns 为了对滑翔机的飞行进行模拟,对openGL的库进行了封装,osg的雏形就这样诞生了&…...

nodejs基于微信小程序的云校园的设计与实现

摘 要 相比于传统的校园管理方式,智能化的管理方式可以大幅提高校园的管理效率,实现了云校园管理的标准化、制度化、程序化的管理,有效地防止了云校园信息的不规范管理,提高了信息的处理速度和精确度,能够及时、准确地…...

uni-app快速入门(十)--常用内置组件(下)

本文介绍uni-app的textarea多行文本框组件、web-view组件、image图片组件、switch开关组件、audio音频组件、video视频组件。 一、textarea多行文本框组件 textarea组件在HTML 中相信大家非常熟悉,组件的官方介绍见: textarea | uni-app官网uni-app,un…...

golang基础

在 Go 中字符串是不可变的,例如下面的代码编译时会报错: cannot assign to s[0] 但如果真的想要修改怎么办呢?下面的代码可以实现: var s string "hello" s [ 0 ] c s : "hello" c : [] b…...

Selenium + 数据驱动测试:从入门到实战!

引言 在软件测试中,测试数据的多样性和灵活性对测试覆盖率至关重要。而数据驱动测试(Data-Driven Testing)通过将测试逻辑与数据分离,极大地提高了测试用例的可维护性和可扩展性。本文将结合Selenium这一流行的测试工具&#xff0…...

LLaMA与ChatGLM选用比较

目录 1. 开发背景 2. 目标与应用 3. 训练数据 4. 模型架构与规模 5. 开源与社区支持 6. 对话能力 7. 微调与应用 8. 推理速度与资源消耗 总结 LLaMA(Large Language Model Meta AI)和 ChatGLM(Chat Generative Language Model)都是强大的大型语言模型,但它们有一…...

GPTZero:高效识别AI生成文本,保障学术诚信与内容原创性

产品描述 GPTZero 是一款先进的AI文本检测工具,专为识别由大型语言模型(如ChatGPT、GPT-4、Bard等)生成的文本而设计。它通过分析文本的复杂性和一致性,判断文本是否可能由人类编写。GPTZero 已经得到了超过100家媒体机构的报道&…...

C/C++ 优化,strlen 示例

目录 C/C optimization, the strlen examplehttps://hallowed-blinker-3ca.notion.site/C-C-optimization-the-strlen-example-108719425da080338d94c79add2bb372 揭开优化的神秘面纱... 让我们来谈谈 CPU 等等,SIMD 是什么? 为什么 strlen 是一个很…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...