【模拟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 关键字…...
三极管信号滤波原理与工程实践
1. 三极管在信号滤波中的独特应用作为一名嵌入式硬件工程师,我经常需要处理各种传感器信号。最近在无刷电机驱动项目中,遇到了霍尔信号毛刺干扰的问题。传统教科书上总是强调三极管的放大作用,但实际工程中,我发现三极管在信号滤波…...
Qwen Pixel Art企业级应用:游戏公司美术外包降本提效实战路径
Qwen Pixel Art企业级应用:游戏公司美术外包降本提效实战路径 1. 游戏美术外包的痛点与机遇 游戏开发中,美术资源制作往往占据大量成本和时间。传统像素美术外包存在三个核心痛点: 成本高:资深像素画师日薪通常在800-1500元&am…...
ESP8266天气时钟DIY全攻略:从零搭建到个性化定制
1. 硬件准备与成本控制 作为一个玩了多年智能硬件的爱好者,我强烈推荐从ESP8266开始入门物联网项目。这款芯片的价格实在太香了,9块钱就能买到NodeMCU开发板,性能却足够应付大多数DIY场景。我去年做过统计,用ESP8266搭建的天气时钟…...
GG3M贝叶斯决策数学体系:六大核心领域落地应用与差异化壁垒
GG3M贝叶斯决策数学体系:六大核心领域落地应用与差异化壁垒摘要 GG3M的贝叶斯更新与决策数学体系,基于原创“事实层—模型层—元模型层”三层级架构,以系统长期反熵增演化为核心决策标尺,从“智能参数优化”跨越至“智慧框架迭代”…...
Unity URP 中 Mipmap 纹理多级渐远技术 解决远处纹理闪烁(摩尔纹)与性能优化的完整指南
什么是 Mipmap?Mipmap(多重贴图渐远技术)是一种经典的纹理渲染优化技术。它为每张纹理生成一系列预计算的缩小版本,从原始分辨率开始,逐级缩小至 11 像素。工作原理当 3D 场景中的物体远离摄像机时,其在屏幕…...
Llama-3.2V-11B-cot快速部署:Docker镜像开箱即用,5分钟启动视觉CoT服务
Llama-3.2V-11B-cot快速部署:Docker镜像开箱即用,5分钟启动视觉CoT服务 1. 项目概述 Llama-3.2V-11B-cot是一个支持系统性推理的视觉语言模型,基于LLaVA-CoT论文实现。这个模型能够理解图像内容并进行逐步推理,最终给出合理的结…...
万兴剧厂AI漫剧APP2025推荐,打造个性化漫剧体验
万兴剧厂AI漫剧APP2025推荐,打造个性化漫剧体验在当今数字化娱乐的浪潮中,漫剧以其独特的表现形式和丰富的内容吸引了众多用户。据《2025中国数字娱乐行业发展报告》显示,2025年漫剧市场规模持续增长,用户对于优质漫剧的需求也日益…...
Go开发工具终极对决:GoLand与VSCode深度评测与实战指南
1. Go开发工具的选择困境 刚接触Go语言那会儿,我像大多数新手一样纠结:到底该用哪个开发工具?市面上主流的GoLand和VSCode各有拥趸,论坛里的讨论经常演变成"编辑器党"和"IDE党"的论战。经过三年多的实战&…...
CTF实战:手把手教你用fastcoll工具复现MD5碰撞攻击(附Python验证脚本)
CTF实战:手把手教你用fastcoll工具复现MD5碰撞攻击(附Python验证脚本) 在网络安全竞赛和渗透测试中,MD5碰撞攻击是一个经典且实用的技术点。本文将带你从零开始,完整复现MD5碰撞攻击的全过程,包括工具使用、…...
零成本玩转千问大模型!OpenClaw 配置秘籍(附每日500 Token福利)
🚀零成本玩转千问大模型!OpenClaw 配置秘籍(附每日500 Token福利) 这份教程将带你完成从环境准备到成功验证的全过程,让你手中的工具“活”起来。 前期准备:搭建基石 在开始代码操作之前,我们需…...
