核心内参:S参数的三个重要特性——因果性、无源性与互异性

2023-10-19 23:20

本文主要是介绍核心内参:S参数的三个重要特性——因果性、无源性与互异性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1

从一个报错开始

S参数在射频、高速领域的应用非常广泛,相关知识点也非常多。最近浏览了一本2020年新出版的书《S Parameter for Signal Integrity》,作者是IEEE Fellow、业界大牛Peter J. Pupalaikis,现任职于Teledyne LeCroy。该书写的非常棒,从理论分析到Python代码,书中分享了很多干货,当然该书读起来也很复杂需要仔细去琢磨,对读者的要求也比较高。小编将会抽空去啃啃这600多页的大作,然后有机会(估计没有~~)跟大家分享。

本文先介绍一下S参数的三个重要的特性吧,先从一个报错开始,如图 1所示是在ANSYS Circuit(以前称为Designer)软件中调用S参数时的报错,用户将这个S参数放在Kesight ADS里面去仿真却不报错。用户很快就得出结论Circuit软件不好用、或者有问题。

图 1 Circuit中电路仿真报错

本文不讨论哪款软件好用或不好用,我们来分析该问题的原因。从Ansys Circuit的Help文件可以查到关于Final Error报错的描述,大概原因是说Circuit默认采用的处理S参数的方法是状态空间模型(State Space Model)的方法,这种方法对于因果性不好的S参数模型做处理容易出现拟合误差很大,因此报错。如果切换到卷积的方法则可以解决该报错,但请注意并不是解决只是该报错,而并不是S参数模型因果性不好的问题。想要彻底解决该问题,只能重新提取S参数模型。那到底什么是因果性呢?

2

S参数的因果性

简而言之,有因才有果、有发生才有结果。比如:先有恋爱,才失恋(当然有些兄弟还没开始就结束的,不在此讨论之列~~)

一个S参数模型在电路仿真中,如果其响应明显比激励信号超前这便是不合理的,即不满足因果性。那如何事先去检查S参数文件是否满足因果性呢?方法有很多种,并且基本每个电磁、电路仿真工具都有这个功能。但是不是每个工具的检查结果都准确,则不一定(记得小编给SiSoft 反馈过2017及之前版本的因果性检查结果不对的Bug,不知道后面他们修复没有)。

以Ansys系列的工具为例,Network Data Explorer中使用的是希尔伯特变换的方法来检查,这是最准确的检查方法,检查结果用颜色来标明可以一目了然。只是这种方法在处理端口特别多的S参数文件(如连接器的.s96p或.s128p文件)时会非常非常慢,甚至跑不出来。

另外一种方法是通过观察S参数极坐标中的曲线是否都是按照顺时针旋转,如果有非顺时针的部分,则需计算非顺时针的一个严重程度。以下图为例,当然频点比较多的时候会很难肉眼观察,此时可以用式子计算出CQM(Causality Quality Metric)。

其中,Rn由下式表示:

Ansys 2020R2版本引入的SPISim工具就是用的该方法计算CQM来检查,结果界面如下图所示

通常,认为CQM大于80%时因果性是可以满足需求的,小于80%时则说明因果性很差,该S参数不适合用于时域仿真。

3

S参数的无源性

无源网路是指只会消耗或短暂保存能量而不能产生能量的网络,即整个网络中没有加电压源、放大器等,比如PCB、封装和铜缆等。在仿真和测试过程中,如果操作不当或者设置不合理,则会引起数据误差造成无源性问题。无源器件的S参数如果不满足无源性,可能会导致结果异常、时域仿真不收敛等。

如何在时域仿真前检查无源性呢?基本每个仿真软件都有这个功能,也可以自己用Matlab或Python写一个工具(~~),下图是Ansys NDE工具检查的界面。

其方法是判定[S*.S]矩阵的特征值是否小于1,其中S*表示S参数矩阵的共轭转置矩阵。

或者直接求解S参数矩阵的二范数(Norm)、或奇异值(SVD),当然二范数的值为矩阵中最大的奇异值,例如s4p文档每个频率点的矩阵是4*4,此时会有4个奇异值(即奇异矩阵的对角值,按从大到小排列)。如果最大的奇异值都小于1则表明该网络是无源网络。

一般来讲无源性的阈值是0.0001,即奇异值大于1.0001软件则会报无源性问题。或者要求PQM大于99%,其计算方法如下:

实际工程中从厂商拿到的连接器或线缆模型如果出现奇异值为1.0035,这个模型是否还能用;1.035能不能用?要回答这个问题,需要从两个方面来考虑。第一,处理无源性的方法;第二处理的后果。

点击完整阅读全文

核心内参:S参数的三个重要特性——因果性、无源性与互异性

这篇关于核心内参:S参数的三个重要特性——因果性、无源性与互异性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243036

相关文章

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Spring Boot 集成 mybatis核心机制

《SpringBoot集成mybatis核心机制》这篇文章给大家介绍SpringBoot集成mybatis核心机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值... 目录Spring Boot浅析1.依赖管理(Starter POMs)2.自动配置(AutoConfigu

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

深入浅出Java中的Happens-Before核心规则

《深入浅出Java中的Happens-Before核心规则》本文解析Java内存模型中的Happens-Before原则,解释其定义、核心规则及实际应用,帮助理解多线程可见性与有序性问题,掌握并发编程... 目录前言一、Happens-Before是什么?为什么需要它?1.1 从一个问题说起1.2 Haht

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返