马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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时,频谱仪没有输出结果。
当然我们还可以改变窗函数类型,当窗函数类型设为其它时,实现同样的频谱分辨率需要增加采样点数。 此外,如果信号为一个非基带信号,应该先将其下变频到基带,这样可以极大减小采样频率,因而在实现同等频率分辨率的时候可以减小仿真时间。如下图所示,先将信号进行正交下变频(抑制镜像信号),然后进行抗混叠滤波,接着进行离散化,然后就可以送到频谱仪了。时域加窗则是通过频谱仪来完成的。 更多内容大家可以关注我的微信公众号:“模拟芯视界”,定期分享PLL ADC Serdes PMU的相关内容。
|