首页/文章/ 详情

EVM,嗖的一下,就飞了

11月前浏览1427
(1)

上周,把射频微电子中的数字调制部分给过了一遍,给自己扫了一下盲。

昨天,在更完公 众号后,就开始忙仿真。说实话,在动手之前,我是信心满满。

心里是这样打算的,仿真验证分三步走:

  •  纯射频层面,纯射频概念的验证,这是目前课程中已经完成的部分

  • 纯射频层面,数字调制的验证,这是昨天打算做的工作。

  •  以第2点的结果作为参考,进行数字层面,数字调制的仿真。


(2)

在ADS里面,有关于星座图和EVM计算的公式。分别是constellation(),const_evm(),evm()。

仿真模版,是基于ADS以前版本上的designguide(目前新版本已经删掉)。

虽然模版是旧的,但是里面的函数都是有效的。而且感觉这些函数,对射频人员很友好。

他们的输入信号,都是从射频链路中节点处读取的电压数据。不用DF控件,也不用考虑联合仿真。一样的射频电路,把对应节点的数据添加进去,就可以。

(3)

在模板上,是RF_Freq>LO_Freq,所以,在选择Vfund_out的时候,选择的是{-1,1}。

刚开始,我也只是把RF_Freq和LO_Freq按照我链路的实际值,代入了进去。虽然RF_Freq是小于LO_Freq的,我也没有改mix{-1,1}这个部分,心里想着,虽然是负值,但是咱们射频上,一般也不太讲究,先试试看再说。

仿了一下,EVM结果不错。

然后又回到原理图,想着还是把mix{-1,1}改成mix{1,-1}吧。然后结果一出来,懵了,EVM的值直接飞了。

(4)

我的第一反应,是看这些函数的help文件。不过瞄了几眼,没能看出啥子道道来。不过,在const_evm()的help文件中,有这样一段话。

于是,我就把这个工程文件打开,把它上面的计算EVM的dds文件拷到我现在的工程文件夹下。

看了一下dds上面的公式,它计算EVM的时候,大概分了下面几个步骤:

  • 基于理想输入信号,计算出理想的星座图

  • 基于链路输出信号,计算出输出的星座图

  • 计算出两个星座图之间的幅度差别

  • 计算出两个星座图之间的相位差别

  • 对输出的星座图,进行幅度和相位校正,计算出校正后的星座图

  • 基于理想星座图和校正后星座图,计算出EVM。

模版给的信息量挺大,看完后,收获也颇丰。然而,算出来的EVM还是很差。

(5)

没办法,然后我在help文件上面,还看到了这样一条信息。

于是,我又去相应的文件夹下,去看这个ael文件。

这个ael文件里,包括了constellation()等函数的内部计算方法。

我凭着本科的那些java功底,和我还算可以的英文水平,勉勉强强地读出个意思。

constellation()里面有几个if else,不过我们只用其中的一个if,然后用到的主函数大概是这个。

没看出来,为啥会引起这个EVM的大变化。

然后又看了一下const_evm()下面的内容,感觉流程和上面dds模版中的差不多。

(6)

昨天晚上搞到8点多,也没搞出个所以然来。今天早上再坐到电脑前,把envelope的stop从小慢慢加。

发现,当mix选择的是{-1,1}时,也就是IF=-LO_Freq+RF_Freq时,Vfund_in和Vfund_out出来的星座图的变化趋势是一样的,

但是原理图上其他啥也不改,只是将mix{-1,1}改为{1,-1},即中频为LO_Freq-RF_Freq。出来的星座图,发现变化趋势都是相反的,当仿真的符号数增加的时候,IN是逆时针变化,OUT是顺时针变化。

(7) 

所以,这是镜像了?

从频谱上看,频率高低不同的话,确实频谱是镜像的。

是因为这个原因么?

当EVM不好的时候,我把VFund_out取了一下共轭,结果确实是变好了。

不过我不是很确定啊!

(8)

这礼拜要是还不能按时讲课,我真的要去趟雍和宫了!




来源:加油射频工程师
电路电子ADS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-12-02
最近编辑:11月前
加油射频工程师
分享所学知识
获赞 246粉丝 81文章 559课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈