在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4388|回复: 10

[原创] 数字信号处理与模拟IC设计

[复制链接]
发表于 2019-12-15 20:23:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 血荐轩辕HIT 于 2019-12-15 23:38 编辑

信号与系统、数字信号处理和随机信号处理是电子信息类专业的专业基础课,作为信号处理系列课程,它们均从数学的角度来分析信号,但又有各自的侧重点。其中,信号与系统主讲连续信号分析,数字信号处理侧重离散分析,而随机信号处理则是分析不确定信号,如噪声和抖动。虽然侧重点各异,但它们最最重要的一点就是引入了从频域分析信号的概念,打破了大家原有的认知。此外,这一系列课程乍看都是讲电路的,但在实际学习过程中发现,几乎没有任何实际的电路,可谓是非常抽象的,但却是我们不得不掌握的分析工具。相比于信号系统,数字信号处理与实践结合更为紧密,因为算机系统只能处理离散信号。接下来我们一起看看数字信号处理中那些对IC设计者非常实用的理论内容。更多内容大家可以关注我的微信公众号:“模拟芯视界”,定期分享PLL ADC Serdes PMU的相关内容。

模拟角频率与数字角频率
通过对现实世界的模拟信号进行抽样、量化得到数字信号,数字角频率Ω和模拟角频率ω有如下关系:

                               
登录/注册后可看大图
其中,Tsam代表抽样周期。模拟信号采样后的频谱是以采样频率fsam为周期进行周期延拓。该频率对应的数字角频率为:

                               
登录/注册后可看大图
这是一个非常有意思的结论,因为2π正是一个圆周。也就是说,离散信号的频谱以模拟角频率的角度来看时,是以fsam为周期,以数字角频率来看时,是以2π为周期的。
在文献中,有些是用模拟角频率来描述离散信号的频谱,有些是用数字角频率来描述,它们本质上并没有区别。采用模拟角频率更符合人们直观的认识,数字角频率则是数学运算的产物。比如,一个信号的最高频率为1MHz,可以用2MHz的时钟去采样,得到的离散信号的基带信号频率范为-1~1MHz(看DC附近的一个周期),如果换算成数字角频率,该基带信号的频率范围是-π~π,很显然,大家对用-1~1MHz来描述信号频率更能接受。
DFT(离散傅里叶变化)
针对不同的信号有不同的傅里叶分析方法,如下图所示,分别为连续时间信号傅里叶变换,连续时间傅里叶级数,离散时间傅里叶变换,离散时间傅里叶级数。这些包含了所有信号的分析方法,那为什么还要引入DFT呢?


                               
登录/注册后可看大图


仔细观察可以发现,前三种信号的时域和频域至少有一个是连续的,对于计算机来讲,只能处理离散的信号,包括它的输入和输出。因此,只有离散周期信号适合于计算机处理。那么对于一个非周期离散信号的频谱可以用计算机计算得到吗?
我们可将一个有限长信号进行周期化,然后计算其频谱,可以发现,周期化之后的信号频谱可以看作是该信号周期化之前频谱的采样,因此,近似得到了非周期信号的频谱。


                               
登录/注册后可看大图


这就是DFT的求解思路,它可以用来计算一般离散信号的频谱。
时域周期化对应频域离散化(频域抽样定理)
时域离散化对应频域周期化(时域抽样定理)
DFT计算模拟信号的频谱
现实生活中的大部分信号都是非周期的模拟信号,我们如何用计算机来得到它们的频谱呢?
我们可以采用如下图所示的步骤,首先对模拟信号离散化,然后对得到的离散信号进行周期化,进而通过DFT计算频谱。


                               
登录/注册后可看大图


在做DFT后,得到离散的频谱。做N点的DFT就意味着在连续谱里采样N个点,一般N取2的幂次,以方便DFT的快速算法FFT进行计算。

                               
登录/注册后可看大图


对模拟信号做DFT的步骤:
  • 将模拟信号离散化。首先要对非带限信号进行抗混叠滤波,可以采用模拟低通滤波器。采样离散化,对应频谱周期化。
    -- 模拟LPF的主要类型有:巴特沃斯型,切比雪夫Ⅰ型,切比雪夫Ⅱ型,椭圆型,它们的主要区别在于通带波动、阻带波动和过渡带的下降速率不同,其中椭圆形的过渡带下降最快,但它的极点靠近虚轴,容易不稳定。
    -- 抗混叠滤波会丢失一部分信息,称为截断误差,但这个要比混叠误差小。
  • 将离散的时域信号进行周期化。
    -- 这里要保证时域信号为有限长序列,否则在时域周期化的过程中会出现时域混叠。
    -- 如果信号为无限长序列,则需要在时域进行加窗截断,使其成为有限长序列。
    -- 常见的窗函数类型有矩形窗、汉宁窗、海明窗、凯塞窗、布莱克曼窗等,它们的区别在于主瓣宽度和旁瓣衰减不同,时域加窗会导致频谱泄露,后面会详细介绍。
  • 接下来就可以对该有限长序列进行DFT了,DFT主要需要考虑DFT的点数,为防止时域混叠,频域抽样定理给出:

                                   
    登录/注册后可看大图

    N为DFT点数,L为序列长度。



频谱泄露

从DFT分析连续非周期信号的过程中我们可以看到,我们希望处理的信号是时域有限,频域有限的信号,这样就省去了抗混叠滤波和时域加窗的步骤,但这样的信号存在吗?
时域有限的信号,频谱无限
时域无限的信号,频谱有限
答案是不存在。现实存在的信号要不是时域有限、频带无限,要不是时域无限、频带有限。
对于时间有限信号,在做DFT之前需要加窗截断。时域加窗之后的信号频谱和原信号频谱会一模一样吗?
直觉告诉我们,会不一样的,毕竟加窗之后信号会丢失一部分信息。从下图可以看出,当给信号加一个矩形窗之后,信号的频谱变“胖“了一些,这个也是可以预料到的,因为信号成为时域有限信号之后,会产生高频分量。


                               
登录/注册后可看大图


给信号时域加窗相当于原信号和窗函数在时域乘积,对应于频域卷积。矩形窗函数的频谱为sinc函数,如下图所示,它包含了高频分量。


                               
登录/注册后可看大图


从下图可以清楚地看出,任何一个频谱和sinc函数做卷积,都会发生一定程度的展宽,因为只有和无限冲击

                               
登录/注册后可看大图
函数做卷积才是它本身,不发生任何的展宽。

                               
登录/注册后可看大图



接下来再看一个无限长余弦信号的频谱,它和sinc函数卷积之后得到的频谱如下,可以发现原本的一个δ函数被展宽,展宽后的主瓣宽度和矩形窗函数带宽一样,此外还有一些高频旁瓣,这称为频谱泄露现象。
因为任何信号都可以表示为δ函数的加权求和,所以该信号的频谱泄露现象具有代表性,可以用来定义频谱分辨率。同时,N越大,频谱泄露现象减弱,N增加,意味着观察时间增长。所以改善频谱泄露的一个方法就是加大窗函数长度N。
如果大家用过频谱仪测试,或者用Simulink做过频谱分析的话,就可以观察到这一现象。任何的一个单音信号,在频谱图上并不是显示为一条直线,而是有一定的宽度,频谱泄露可以解释这一现象。

                               
登录/注册后可看大图

无限长余弦信号的频谱


                               
登录/注册后可看大图

矩形窗函数的频谱 && 有限长余弦信号的频谱

频谱分辨率
频谱泄露现象产生了频谱分辨率的概念,如果没有频谱泄露,分辨率为无限大。为解释这一现象,先举个栗子。如下图所示,对于两个余弦信号,加矩形窗截断导致频谱泄露,单边扩展的宽度为2π/N,为区分两个信号,需要满足:

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
N同时也决定了观察时间长度:

                               
登录/注册后可看大图

                               
登录/注册后可看大图


如果仿真一个1Hz的信号,那应该至少观察一个周期才能看到它的全貌,也就是1s,直观解释了上述结论。


窗函数

从下表可以看出,不同窗函数的区别主要在于主瓣宽度和旁瓣衰耗,显然我们希望窗函数的主瓣宽度窄,同时旁瓣衰耗大,但这两者之间同样存在矛盾。那么该怎么选择合适窗函数的类型呢?


                               
登录/注册后可看大图



根据频谱分辨率的需求,选择主瓣宽带最窄的矩形窗有利于提高频谱分辨率,那么旁瓣衰耗又有什么作用呢?
想象一种情况,如果想看到一个系统输出信号对supr的抑制,而supr极有可能淹没于信号泄露的频谱中,因此我们并不能得到准确的supr抑制性能,因此需要旁瓣衰耗更大的窗函数。
其实当我们仿真或者测量一定时间得到的数据,相当于给一个无限长的信号加了一个矩形窗,如果需要旁瓣衰耗大,可以对有限长序列进行进一步的整形,因此产生了其它的窗函数。

栅栏效应

通过DFT得到的频谱为一些离散的点,这些离散的点就位于信号真实频谱的轮廓上,这就像隔着栅栏在看一个信号一样。显然我们希望离散的点越密越好,由于离散的点的数目等于做DFT的点数N,所以可以采取增加N的方式来改善栅栏现象。但是一般来讲,对于一个长度为L的序列,应该是做L点的DFT刚刚好,这就意味着DFT的点数N应该被有限长序列的长度N,或者说是时域窗函数的宽度所限制,那么DFT的点数还能任意增大吗?答案是可以的,我们可以给有限长的序列后面补零,从而将N点的序列加长为L点,进而做L点的DFT。其实给序列后面补零,并没有改变信号本身的频谱,如下图的实线所示,但是补零可以有更多的点位于轮廓上,方便我们观察。

                               
登录/注册后可看大图



前面提到,频谱泄露可以通过增加序列长度来改善,那么现在给大家一个思考的问题,序列补零能改善频谱泄露问题吗?欢迎大家在下方评论区留言,期待大家的答案。

Simulink中的频谱仪使用
对于稍微复杂点儿的电路,比如PLL、ADC、CDR等,我们往往需要进行系统行为级建模。Simulink作为一个可视化程度高,工具箱庞大的仿真环境,深受模拟IC工程师的青睐。
采用频谱仪观测信号是对信号分析的一种有效的手段,Simulink的频谱仪设置稍复杂,它的应用几乎运用了前面所提到的所有知识。因此,我们来实践一下。
首先看一下下图图1,设置里面的Type可以选择功率或幅度。RBW代表频谱分辨率,也可以设置窗函数长度来间接确定频谱分辨率,如下图图2。这两者之间是可以互换的,前面也给出过它们两种之间的关系。同时,系统还会自动计算出需要采样的点数,在Sample/update处显示。如下图图1,当窗口长度为1024,自然需要采样1024个点。如下图图2,当采样频率BW为360MHz,频谱分辨率设为360M/512时,采用矩形窗函数时,计算得到N为512,和系统自动计算得到的是完全相同的。


一般我们设置RBW,因为这样很快可以计算得到仿真时长,因为它们之间是简单的倒数关系。这里应该为1.42us,当仿真时间设为小于1.42us时,频谱仪没有输出结果。

                               
登录/注册后可看大图

图1


                               
登录/注册后可看大图

图2

当然我们还可以改变窗函数类型,当窗函数类型设为其它时,实现同样的频谱分辨率需要增加采样点数。
此外,如果信号为一个非基带信号,应该先将其下变频到基带,这样可以极大减小采样频率,因而在实现同等频率分辨率的时候可以减小仿真时间。如下图所示,先将信号进行正交下变频(抑制镜像信号),然后进行抗混叠滤波,接着进行离散化,然后就可以送到频谱仪了。时域加窗则是通过频谱仪来完成的。
更多内容大家可以关注我的微信公众号:“模拟芯视界”,定期分享PLL ADC Serdes PMU的相关内容。

                               
登录/注册后可看大图




发表于 2019-12-15 21:40:33 来自手机 | 显示全部楼层
太棒了
发表于 2019-12-16 14:20:20 | 显示全部楼层
很好很强大
发表于 2022-11-11 11:29:52 | 显示全部楼层
谢谢
发表于 2023-7-19 20:15:47 | 显示全部楼层
十分感谢
发表于 2023-7-20 09:48:27 | 显示全部楼层
公众号搜不到哎
发表于 2023-9-21 21:51:11 | 显示全部楼层
11111
发表于 2024-4-12 15:08:07 | 显示全部楼层
太强啦
发表于 2024-4-12 15:37:58 | 显示全部楼层
感谢
发表于 2024-4-15 16:58:48 | 显示全部楼层
感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-30 22:26 , Processed in 0.032657 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表