【模拟IC学习笔记】 PSS和Pnoise仿真
目录
PSS
Engine
Beat frequency
Number of harmonics
Accuracy Defaults
Run tranisent?的3种设置
Pnoise
type noise
Timeaverage
sampled(jitter)
Edge Crossing
Edge Delay
Sampled Phase
sample Ratio
离散时间网络(开关电容电路)的噪声仿真方法
PSS
PSS,周期稳态分析,当电路的激励信号是周期大信号时,一般需要用PSS来计算电路对周期大信号的响应。
在一个时钟里面,工作点重复出现,周期再重复,工作状态也在重复,所以可以找到这样的稳态的周期。
Engine
SpectureRF提供两种计算周期稳态响应的仿真机制
PSS shooting Newton,shooting是一种时域仿真方法。适用于严重非线性的电路、OSC、开关电容、分频器。
Harmonic Balance(HB)是一种频域仿真方法。适用于轻微非线性电路、RF Transceivers、LNA、 Mixer。
保持默认的Shooting即可,不建议使用pss里面的Harmonic Balance如需使用Harmonic Balance仿真,直接选用Analysis区域的hb。
![]()
Beat frequency
- 决定了pss shooting阶段的仿真时间,它对应了Test-Bench中所有周期信号的最小公倍数。例如在开关电容电路中,输入信号的周期是10us,采样时钟信号是1MHZ,找最小公倍数就是10u,取倒数得到频率,所以Beat frequency就是100KHZ。
- 如果TestBench中激励信号的频率没有整数倍关系或者差距过大,比如一个是1G,另一个是1.1G,那么它俩的Beat Frequency定100M,那么1G信号pss shooting需要跑10个周期,1.1G需要跑11个周期。一般情况下,需要避免这种设置,因为会很费时间。如果是这种情况,建议使用hb analysis。
- 多模式分频器的仿真时候也需要注意这一点,因为会有可能模式切换没控制好,电路实际上是在不同的除频/倍频模式下切换。
- 如果是oscillator仿真, Beat Frequency应当设置成一个估计的频率,该频率设置范围可以在实际震荡频率的0.5~1.5倍之间。

Number of harmonics
- 谐波数量,该数值不会影响PSS shooting的精度,在Pnoise等小信号计算时也会有影响。基波是由很多谐波组成的,谐波数量越多,拟合出来的基波越准确。
- 如果怀疑仿真结果,可以适当增加谐波数,随着谐波数的增加,仿真结果趋向于恒定值。
- Number of harmonics不易过大,否则会影响仿真速度。

Accuracy Defaults
建议在conservative和moderate之间选择,即高精度和中等精度如果moderate和conservative差别不大,建议使用moderate以获得更好的仿真速度。

Run tranisent?的3种设置
Run Transient=Yes,对应的Stop Time设置成电路稳定时需要的时间,即跑多长时间的Tran,如果不设置默认Stop Time=0;
- Run Transient=no,PSS之前不跑Tran
- Run Transiet=Decide automatically,仿真器会自动设定一个tstab时间,默认是50个周期。
![]()
几点解释:
- 大多数电路是需要一个瞬态仿真来确定shooting的initial state.可以通过tran analysis来找到这个时间或者直接用decide automatically。
- 当tstab stop time=0时,仿真器还是会跑一小段时间的transient,该时间一般等于信号源上最长delaytime+1个周期或者4个周期时间,
- 驱动电路:1个周期,
- 自激电路(VcO etc.):4个周期
- tstab同样支持dynamic parameter
Pnoise
type noise
不同版本之间的差异:

老版本noise type这里是上表所述的三个选项,新版本是两个选项。

Timeaverage
指的是一个周期内噪声的平均值。

一个包含噪声的信号可以表示成理想的cos波+噪声:

其中am(t)表示AM(幅度)噪声, pm(t)表示PM(相位)噪声;
V0(t)是无噪声信号(例如理想的cos波),v(t)是包含AM和PM的电压噪声;
v(t)可以表示成如下:
v(t) = usb(t)+ lsb(t)
USB: Upper Sideband
LSB: Lower Sideband
可以预期USB噪声包含AM噪声和PM噪声,同样LSB噪声也是如此。它们的图示如下:

所以想看USB的时候就选USB,只想看幅度噪声的时候选AM,只想看相位噪声的时候选PM,都想看的时候选ALL。
看哪个器件对噪声贡献大的时候可以勾选noise separation
![]()
实例:
勾选noise separation

跑完仿真,打印noise summary

可以看到每个器件的噪声。

sampled(jitter)
旧版本的jitter 和timedomain对应了新版本的sampled
Sampled Jitter引入了三个Timing Event模式:
- Edge Crossing(老版本也有)
- Edge Delay:是一个新的feature
- Sampled Phase:是以前的time domain,使用方法上有一些改进
![]()
Edge Crossing
设置详解
- Trigger:
- 当trigger 。
- 新版本允许trigger和measurement信号不同,比如可以将trigger信号设置一个理想的信号, measurement信号设置成电路当中的需要测试的信号。
- 下图中的测量发生在trigger信号第一个rise edge cross阈值0.5V、再延时9.5ns的时刻。
- Sleep Time:trigger信号cross阈值后的延迟时间,假如trigger的时刻是1ns,sleeptime是9 5ns,么jitter measurement早在10.5ns进行
下图为在信号第一个上升沿到达0.5V之后再延迟9.5ns取该点的噪声。如果信号高电平是10ns,不能在10ns处取点,应该提前一点点,因此这里选择的是10ns。


设置好之后一定要点一下该界面的add。
![]()
查看波形:Direct Plot -> Main Form,选择PSS或者Pnoise
输出结果类型:Trigger的时间"Measurement Selection”也会在该窗口显示出来。
Function:
- jee是edge-to-edge jitter,phase jitter即绝对jitter
- jc是cycle jitter,周期jitter
- jcc是Cycle to Cycle jitter,周期间jitter
如果查看的是积分噪声,在下面可以给出积分的频率范围。

Edge Delay
![]()
Edge Delay的用法与Edge Crossing设置类似,通过它可以测量两个信号的Jdelay(delay jitter)。
如果trigger和measure信号相同且edge number一样,但rise direction不同,可以得到duty cycle jitter。

Sampled Phase
Sampled phase是可以用来测量固定时刻点的jitter.
- Samples Per Period是用来指定每周期测量多少个时刻点
- Initial Sample Phase是用来指定第一个Sample的时刻点
- Add Specific Points用来指定特别关注的时刻点
sample Ratio
- 在Noise Type右边还有一个Sampled Ratio,该选项主要用在有divider/doubler的电路中
- 用PSS对该电路进行分析时, beat frequency需要设置成fin/8.如果是测量div8输出端的jitter,sample ratio设置成1
- 分频器或倍频器中使用,比如下图的分频器,第一个框周期是T/8,第二个框周期是T/4,第三个框输出周期是T,由于beat frequency设置的是1/T,但是观测点并不一定是下图第三个框的输出,如果选择第二个框的输出作为观测点的话,那么就要设置sample Ratio=4.

相关文章:
【模拟IC学习笔记】 PSS和Pnoise仿真
目录 PSS Engine Beat frequency Number of harmonics Accuracy Defaults Run tranisent?的3种设置 Pnoise type noise Timeaverage sampled(jitter) Edge Crossing Edge Delay Sampled Phase sample Ratio 离散时间网络(开关电容电路)的噪声仿真方法 PSS PSS…...
IPv6邻居发现协议(NDP)---路由发现
IPv6路由发现(前缀公告) 邻居发现 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器发现(Router Discovery),它定义了使用ICMPv6报文实现地址解析,跟踪邻…...
OpenPLC v3 代码结构
OpenPLC v3 是一个基于 C 的开源实时自动化平台,主要用于控制和自动化行业中的设备。该项目具有以下主要模块: 1. Core:核心模块,提供数据结构和算法实现。 2. Master:主设备模块,实现与从设备通信的接口。…...
安全防御之备份恢复技术
随着计算机和网络的不断普及,人们更多的通过网络来传递大量信息。在网络环境下,还有各种各样的病毒感染、系统故障、线路故障等,使得数据信息的安全无法得到保障。由于安全风险的动态性,安全不是绝对的,信息系统不可能…...
条款39:明智而审慎地使用private继承
1.前言 在之前挑款32曾讨论了C如何将public继承视为is-a关系,在那个例子中我们有个继承体系,其中class Student以public形式继承class Person,于是编译器在必要时刻将Student转换为Persons。。现在,我在以原先那个例子࿰…...
【数据库原理】(20)查询优化概述
查询优化是关系数据库系统设计和实现中的核心部分,对提高数据库性能、减少资源消耗、提升用户体验有着重要影响。虽然挑战重重,但凭借坚实的理论基础和先进的技术手段,关系数据库在查询优化方面有着广阔的发展空间。 一.查询中遇到的问题 数…...
FineBI实战项目一(18):每小时上架商品个数分析开发
点击新建组件,创建每小时上架商品个数组件。 选择线图,拖拽cnt(总数)到纵轴,拖拽hourStr到横轴。 修改横轴和纵轴的文字。 调节连线样式。 添加组件到仪表板。...
Pytorch常用的函数(六)常见的归一化总结(BatchNorm/LayerNorm/InsNorm/GroupNorm)
Pytorch常用的函数(六)常见的归一化总结(BatchNorm/LayerNorm/InsNorm/GroupNorm) 常见的归一化操作有:批量归一化(Batch Normalization)、层归一化(Layer Normalization)、实例归一化(Instance Normaliza…...
业务记录笔记
一、印尼支付现状 1、银行转账,在app发起转账,生成虚拟账户,在ATM对这个虚拟账户转账就可以,或者线上对这个虚拟账户转账。 2、电子钱包,机构:Gopay、OVO、Dana、LinkAja 3、运营商支付:主要是代付&#x…...
Leetcode16-有多少小于当前数字的数字(1365)
1、题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j ! i 且 nums[j] < nums[i] 。 以数组形式返回答案。…...
JavaWeb- Tomcat
一、概念 老规矩,先看维基百科:Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies.[2] It provides a "pure Ja…...
Android studio 各本版下载
搜索Android studio下载时发现各种需要付费下载的链接,在此记录一下官方的下载地址。 Android Studio 下载文件归档 | Android 开发者 | Android Developers...
[C#]winform部署PaddleOCRV3推理模型
【官方框架地址】 https://github.com/PaddlePaddle/PaddleOCR.git 【算法介绍】 PaddleOCR是由百度公司推出的一款开源光学字符识别(OCR)工具,它基于深度学习框架PaddlePaddle开发。这款工具提供了一整套端到端的文字检测和识别解决方案&a…...
谈谈Spring Bean
一、IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖,以及依赖的注入等等。 Spring 提供…...
kubernetes(一)概述与架构
云原生实战 语雀 官网 Kubernetes 文档 | Kubernetes 更新:移除 Dockershim 的常见问题 | Kubernetes B站课程:https://www.bilibili.com/video/BV13Q4y1C7hS/?p26 1.概述 概述 | Kubernetes 大规模容器编排系统 kubernetes具有以下特性…...
【Scala】——变量数据类型运算符
1. 概述 1.1 Scala 和 Java 关系 1.2 scala特点 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如&#…...
嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第十天-Linux下mplayer音乐播放器练习题(物联技术666)
更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…...
线性回归(Linear Regression)
什么是机器学习 线性回归是一种用于建立变量之间线性关系的统计模型。在简单线性回归中,我们考虑一个自变量和一个因变量的关系,而在多元线性回归中,我们考虑多个自变量和一个因变量之间的关系。 简单线性回归 简单线性回归模型可以表示为…...
matlab绘图修改坐标轴数字字体大小及坐标轴自定义间隔设置
一、背景 在matlab使用plot函数绘图后,生成的图片坐标轴数字字体大小及间隔可能并不符合我们的要求,因此需要自定义修改,具体方法如下 二、修改坐标轴数字字体大小 只需添加以下命令即可: set(gca,FontName,Times New Roman,F…...
C++入门教程,C++基础教程(第一部分:从C到C++)七
由C语言发展而来的一种面向对象的编程语言。 第一部分、从C语言到C 本章讲述 C 语言的简史,以及 C 语言中与面向对象关系不大、C语言中没有的特性。这些特性能够增加编程的便利性,提高程序的可扩充性。 十三、如何规范地使用C内联函数 inline 关键字…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
