Hexo + Butterfly 搭建个人博客随记
Hexo + Butterfly 搭建个人博客随记
本地部署
首先得有一个GitHub账号
这里就不赘述如何注册一个GitHub账号了,如果大家能够科学上网想必能轻松完成。
打开你的repo,new一个名字叫YourName.github.io的repo。这里我演示的名字叫BlogDemo,大家也可以挑自己喜欢的。
注意这里可以下载安装GitHub Desktop,便于不想学git指令的小伙伴管理仓库。此外,需要将HTTPS和SSH对应的网址https://github.com/Loli-Eternally/BlogDemo.github.io.git和地址git@github.com:Loli-Eternally/BlogDemo.github.io.git记录下来,便于后面修改配置进行博客的部署。
下载安装好GitHub Desktop并启动后,cloneBlogDemo,URL地址为上面提到的https://github.com/Loli-Eternally/BlogDemo.github.io.git
这个时候我们的repo是空的,需要在本地将BlogDe ...
高级信号模式与表示法
高级信号模式与表示法
正如前面基本信号模式与表示法所述,真实世界信号的表示对于模型的性能至关重要。在表示信号时, 应舍弃不必要的细节,同时高效地体现重要的物理现象。此处介绍的信号模式和表示形式是上一章所介绍的基本(块模式)单频带(SFB)的自然扩展。
信号模式与表示法综述
VPI具有两种信号模式,块模式和采样模式,它们定义了模块之间数据的传递方式。在每种模式下,都有信号表示形式,用于定义光信号的描述格式。采样模式有一种信号表示形式,而块模式有四种。下图展示了信号模式与表示形式之间的关系。
根据上图,根分支表明了VPI信号的两种模式:
当需要考虑紧密耦合组件之间的双向交互时,会使用采样模式。它在每次迭代时双向传递数据。每次迭代代表皮秒级的时间切片。因此,采样模式主要适用于对紧凑型光学器件和光子电路进行详细建模。出于这个原因,它主要在 VPIcomponentMaker 光子电路中使用。
如果信号单向传输,或者在诸如发射机、光纤、放大器等相隔较远的组件之间的双向链路中传输,且传输延迟远大于数据块的持续时间,则使用块模式。模块之间以数据块的形式传递数据,每个数据块通常代表多个符号或脉 ...
基本信号模式与表示法
基本信号模式与表示法
前言
在计算机模型中,将现实世界的信号高效地表示为数据对于模型的性能至关重要。 如果信号表示包含不必要的细节,模型的计算效率就会降低;如果表示过于抽象, 模型就无法预测重要的现象,或者给出不准确的结果。根据要解决的问题,可以选择合适的信号表示模型。
先解释一下基带、频带、宽带和带宽:
基带(Baseband)也叫做基本频带,指的是未经调制的原始信号(数字信号)所占的频带(Frequency Band);
频带(Frequency Band),指的是信号所占用的频率范围。对信号做频谱变换后,频谱最低频率到最高频率之间的范围;
宽带(Broadband),指的是容许多个不同频带的信号在同一个信道上。例如频分、波分复用,将信道分成多个子信道,分别传送音频、视频信号,称为宽带传输(传输模拟信号);
带宽指的是频谱能量集中的某段频带的宽度。
光信号
VPI光学系统提供两种信号模式:块模式和采样模式。这些模式定义了数据在模块之间传递的方式。当数据单向传递或在间隔较大的组件之间传递且时间延迟远大于数据块的持续时间时,使用块模式。通常每个数据块代表数十到数千个数据位。单频 ...
模块的选择与设置
WDM中模块选择与设置
生成调制数据序列
在WDM系统中,最常见的发射机类型是外调制激光器(Tx_OOK),它由一个恒定输出功率的激光器和一个光调制器组成。VPItransmissionMaker在Transmitters栏目中提供了这种及其他现成的发射机模块:
Tx_OOK模块在一个Galaxy中集成了连续波激光器、数据源、非归零码器和调制器;
Tx_OOK_Array模块包含多个Tx_OOK。通过将其连接的输出端总线宽度设置为所需的通道数,即可用于生成多个波分复用通道。
发射器模块参数设置
在一个序列中生成的位数由全局参数TimeWindow乘以模块的BitRate来确定。通常,模块比特率会被设置为全局参数BitRateDefault所定义的值:
BitRate=BitRateDefault
通常,模块的采样率会被设置为SampleRateDefault,该参数被定义为一个全局参数:
数据脉冲上升时间会影响光谱的宽度。明智的做法是设置合理的RiseTime,否则如果将脉冲重新采样为更高的采样率,将会在脉冲边缘出现吉布斯现象。
Tx_OOK内部设置
Tx_OOK在单个gal ...
VPI中的全局参数
全局参数
全局参数指原理图中所有模块共有的变量。其中一些参数会被模块自动使用,而另一些,例如SampleRateDefault、BitRateDefault则必须在模块的参数列表中明确使用。
双击顶层原理图(vtmu,VPI Transmission Maker Universe)的背景来编辑全局参数。
默认比特率、时间窗口、默认采样率和最大质因数限制
首先应该考虑的四个全局变量是BitRateDefault、TimeWindow、SampleRateDefault和GreatestPrimeFactorLimit。
首先为每个信道选一个数据(比特)率BBB。
例如,设置BitRateDefault=10e9;
此参数不会传递给任何模块,需要在模块中明确将其作为参数字符串输入。
因此,在其它模块中设置BitRate=BitRateDefault;
通过这种方法令所有Tx都使用相同的比特率。
接下来要选择每个Block中要仿真的Bit数MMM。此数值与每个Bit的采样数SSS一起定义了将要生成的信号中的采样数NNN。仿真引擎允许使用任意数量的采样进行模拟,但FFT的速度取 ...
VPI中信号的表现形式
信号的表现形式
信号的表现形式定义了数据在仿真模块之间传递的形式,决定了模块所能处理的内容。
块模式和采样模式
VPI的模拟仿真中,相邻模块之间可以单向或双向传递数据,模块之间的数据交换频率通常取决于它们之间的物理时延。短时延意味着数据传递频繁,以便形成光学谐振。长时延意味着数据传递频率较低,数据以数据块的形式传递,每个数据块代表波形的一个时间窗口。
大多数系统仿真是通过在组件之间传递数据块来实现高效地执行,即表示时域或频域中信号的向量,这在VPItransmissionMaker系统中称为块模式。
块模式下,当系统模块的输入端有数据可用时,每个模块都会触发。仿真通常会从发射端到接收端依次进行,每次一个模块,如下图所示
另一种模式为采样模式,这种模式下数据一次传递一个样本。采样模式用于组件紧密耦合且皮秒级双向交互需着重考虑的场合中,例如在光子链路和多段激光器中。VPIcomponentMaker包含许多使用采样模式的示例。
块模式内的信号表示
块内数据控制着信号的表现形式,它可以包含以下形式的数据
采样信号,例如光场或电压/电流,以固定时间间隔进行采样。仿真带宽取决于采样率。
...
偏振分束旋转器件(PSR)
PSR的背景和作用
偏振分束旋转器(PSR)是解决绝缘衬底上硅(SOI)平台光波导器件偏振敏感的关键性器件,也是解决偏振模色散(PMD)的
(To Be Continue)
科研人必学神器:Rmarkdown+Latex+Tikz+GeoGebra
前言
大家有没有想过,教科书上的公式是怎么写出来并排版的如此美观的呢?如何能在文档中绘制出美观而精确的科研绘图?想必绝大多数同学都只知道MS Office,但是这太Low了,而且排版格式经手多人会变得千奇百怪。科研人就要有科研人的个性,不仅要严谨,还要有科研人的专属工具,展现出科研人高大上的一面!
R + Markdown = RMarkdown
Markdown大家都知道,但凡入门了计算机的玩家都靠这个来写博客,记录知识和见闻,但知道Rmarkdown的玩家就不多了,毕竟R语言受众相对C,Java,Python而言还是太少。但身为科研工作者不能不知道它,因为R是开源的,主要用于统计分析、绘图以及数据挖掘的强大编程语言。你可能会说“我都有Python了,用个Jupyter不一样的吗? ”,但Jupyter这种人尽皆知的工具无法体现出您的与众不同,尽管Jupyter现在也能在Python3.10+的环境中结合Jupyter-Tikz来实现相同的效果,但科研人还是要多学学新工具。
Rmarkdown的使用需要基于R+Rstudio,R和Rstudio直接去官网下载就行了,独立安装即可。 ...
VPI中加载光s4p参数
VPI中加载S参数
核心思想
S参数的本质是线性传输矩阵,传输矩阵的矩阵元通过指定滤波器来描述;
本例仅考虑s4p的前向传播矩阵元,即S13,S14,S23,S24四个参数,这是因为端口3和4仅由端口1和2的线性叠加而成 ;
用s4p参数描述X_Coupler
X_Coupler作为一个经典的传输模型,具有如下的传输结构
该结构仅考虑前向传输,若考虑反向传输,则需要使用S31,S41,S32,S42。双向传输需要考虑全部16个S参数。
s4p参数的导入
在VPI的FilterOpt控件中导入s4p文件需要满足如下格式
使用该格式后,需要在控件Measured Filter栏目下的DataFormat中填入Frequency Magnitude Phase。需要额外注意的是单位描述,其中Phase项的单位只有角度,而非弧度。INTERCONNECT中导出的弧度数据需要换算后方可载入。
提取INTERCONNECT中S参数的python函数如下
1234567891011121314151617181920212223242526272829303132333435363738 ...
ADS中调用VPI模块(VOL)进行联合仿真
VOL模块
注意事项
ADS中使用VOL模块需要保证:
ADS的版本为2021,VPIphotonics版本为11.1;
ADS的license中,需要有W3071E的模块,可以去License Manager里看,没有就无法使用VOL模块;
VPI的license中,需要有额外几个SED的Feature,分别是 VPI_TMM_OPTICALSYSTEMS_SED,VPI_CM_FIBERAMPLIFIER_SED,VPI_CM_ACTIVEPHOTONICS_SED 和 VPI_TMM_LAB_SED。这几个SED的Feature可以让ADS用脚本调用VPI的Engine Driver,实现无GUI的仿真计算;
VPI的vtmu中需要有两个vtmg模块,分别是ADS_Dynamic_Input 和 ADS_Dynamic_Output。该俩模块中各有一个python脚本实现ADS数据类型转换,分别是create_signal_from_file.py 和 create_file_from_signal.py。确保这四个文件到位,否则无法实现联合仿真;
VPI的python环境需新 ...