【免责声明】
本公众号的主体为个人,作者在本公众号发表的所有文章均是出于无私分享、交流学习的目的。
作者在该公众号发表文章纯属个人行为,文章的观点也纯属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织均没有任何关系。
作者已经发表或者即将发表的MMIC设计系列文章将会严重倚赖于各类EDA软件,尤其是ADS和Cadence;作者个人的确没有实力购买这些软件的使用授权,但作者保证仅用于业余研究和交流学习的目的,绝对不会用于商业盈利;若软件商有异议,作者全力配合删除相关软件和文章。
文章中可能有些素材取材于网络,若有侵权请读者提醒,作者会在第一时间进行更正。
对于声明原创的文章,欢迎任何人转载分享,但须注明出处。
首先给各位读者说一声抱歉,由于作者近期工作繁忙,已经快两个月没有更新公众号了.考虑再三,暂且发一篇ADS应用小技巧的短文充数吧,希望大家理解.
已经有两期文章分别介绍过Q值()和滤波器()了,前段时间有位朋友给作者提了一个问题:"谐振器的Q值是3dB带宽除以中心频率,那么这个带宽和中心频率在ADS里面怎么计算?"
3dB带宽从S21曲线上是很容易人工判定出来的,但如何用在ADS环境下直接计算3dB带宽,作者之前也并没有研究过.一开始跟这位朋友讨论的方法是:
用max(dB(S21))计算出幅度的最大值,此时对应的频率即为中心频率fc.
在此基础上-3dB画一条线,与dB(S21)曲线的交点区间就是3dB带宽bw3db.
为了取它们的交点,进一步"曲线救国":abs(dB(S21)-3-max(dB(S21))),交点处差值为0,
因此取绝对值后的最小值点就是交点:min(abs(dB(S21)-3-max(dB(S21))))
原理上是这样,但是操作起来很麻烦,需要写一大堆公式不说,如果SP扫频步进太大,可能找不到0值点,而是最接近的一个最小值点,则需要通过插值来提高精度.
懒人的想法自然是:"ADS有没有现成的函数可以直接计算中心频率和3dB带宽?"一开始我本以为是没有的,但是经过一番help查找,竟然以3db为关键词搜索到了这两个函数!
来看一下这两个函数的用法:
fc = center_freq(Data, ReferenceBW)
Data:需要分析的数据,可以是S参数,也可以是任何complex类型的数组
ReferenceBW:参考带宽,例如3dB
例如,利用S参数计算谐振器的3dB中心频率:
We assume that a S-Parameter analysis has been performed.
fc3 = center_freq(db(S21), 3) returns the center frequency using the 3dB point as reference
计算xdB带宽:
bw = bandwidth_func(Data, DesiredValue, Type)
Data:需要分析的数据,可以是S参数,也可以是任何integer或complex类型的数组,数组维度范围是1~4维.
DesiredValue:期望带宽,例如3dB
† Type:曲线类型
0 - Band-pass(默认取值)
1 - Band-stop
2 - Low-pass
3 - High-pass
例如,利用S参数计算带通滤波器的3dB带宽:
We assume that a S-Parameter analysis has been performed.
bw3dB = bandwidth_func(db(S21), 3) returns the 3dB bandwidth
所以这两个函数的主要用途就是计算滤波器响应的中心频率/xdB带宽,利用它可以进一步计算滤波器的矩形系数.下面以一个带通滤波器为例,验证这两个函数.
首先新建原理图,插入一个butterworth带通滤波器,滤波器中心频率1.5GHz,3dB带宽1GHz,20dB衰减带宽2GHz.
其S21仿真曲线如下图所示,从Marker标注来看,其中心频率为1.5GHz,3dB带宽为1GHz,20dB带宽约为1.78GHz
插入几个公式计算其中心频率/3dB带宽/20dB带宽,以及以20dB带宽定义的矩形系数sf:
计算结果如上表所示,
中心频率fc=1.5GHz,
3dB带宽bw3db=1GHz,
20dB带宽bw20db=1.777GHz,
20dB矩形系数sf=1.777
结论:没事多看看help,会有很多惊喜!
历史文章
微信扫一扫或者长按二维码关注