计算光纤色散带来的相位移动 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年,随着数字化转型的深入和远程工作需求的增加,协同办公软件已成为企业提升工作效率、优化沟通流程的重要工具。 以下是一些值得推荐的安全的协同办公软件: 钉钉 功能全面:钉钉是一款综合性极强的企业级协同软件ÿ…...
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这一流行的测试工具࿰…...
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 是一个很…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
