形象地展示信号与系统中的一些细节和原理——卷积、复数、傅里叶变换的幅度其实正比于信号振幅×持续时间、拉普拉斯变换及其指导意义、为何零极图能几乎唯一确定因果LTI系统


看懂本文需要读者具备一定的微积分基础、至少开始学信号与系统了
本文主要讲解欧拉公式、傅里叶变换的频率轴的负半轴的意义、傅里叶变换的缺陷、为什么因果LTI系统可以被零极图几乎唯一确定等等容易被初学者忽略但对深入理解非常重要的细节问题
本文秉承尽量直观、尽量不生硬地说教的原则,尽量少用纯数学推导,而多用形象直观的物理意义、几何意义、举例
作者还没本科毕业,水平有限,读者如发现本文的错误、读不懂的地方,恳请提出
全文原创,转载请标明出处
2020年7月2日,总第2次更新

 

信号与系统是电子信息类专业的专业课,这门课看上去很像数学分析,不像模电数电电磁场微机原理那样与物理世界贴合得紧密、容易想象
信号与系统里存在δ(t)、复指数信号、非因果信号与系统等不存在于物理世界中的难以想象的东西,但它们在信号处理领域非常重要,为了帮大家建立直观理解,特地写作此文,以解决初学者们的一些疑问,这些疑问都是我初学的时候曾有过的

 

本文已假设读者掌握了

  • 极限、积分
  • 无穷级数、狄利克雷条件
  • 时域与频域
  • LTI系统

等知识点

 

卷积

LTI系统的输出信号=输入信号卷积LTI系统的单位冲激响应。卷积的积分表达式是-∞+∞f(τ)g(t-τ)dτ,乍一看感觉不知所云,咋又有t又有τ还反褶再平移呢?其实这个表达式具有非常直观的物理意义,举个很简单的例子:

  • f(τ)是在τ时刻用一次会打出多颗子弹的枪命中敌人的子弹数
  • g(t)是敌人被命中1发子弹后的掉血函数,例如第1秒掉5血、第2秒掉3血、第3秒掉1血、然后不再掉。显然g(t-τ)是敌人在τ时刻被命中1发子弹后的掉血函数
  • t时刻敌人实际的掉血量是过去和当前命中的子弹各自产生的作用求和
  • 把离散的子弹换成连续的激光束,那么上述的求和就成为积分

    t=t0时,让τ取遍所有值,相当于算入在所有单位时段内发出的激光束产生的效果;将这些效果叠加起来得到y(t0),相当于算得从t0时刻开始的单位时段内敌人实际的掉血量
    用类似的方法算出t取所有值时的y(t)即可算出f(t)*g(t),相当于算出敌人最终的掉血函数

注意:上图中的两个参与卷积的信号都非因果,相当于你现在发出的激光不仅会让敌人在现在和未来掉血,还会让敌人在过去也掉血,这违背常理,但是非因果信号也是有应用价值的,例如可以应用于数字图像处理
还注意:卷积的积分表达式里的积分区间是τ∈[-∞,+∞],因为这样能让公式适用于铺满整个时间轴的被卷积函数
简而言之:卷积的物理意义是——输出信号=“输入信号的各片段产生的各输出信号”作用的总和

 

 

 

欧拉公式

早在高中数学就引入了复数(complex number),高中数学只说了√(-1)等于1个虚数单位,可以用i表示虚数单位,有虚部的数叫复数(complex number),只有虚部没有实部的数叫纯虚数(pure imaginary number)。高中数学并没帮我们对复数形成直观理解,它只说了复数在电子技术等很多领域有非常广泛的应用,然后就是教如何计算复数的运算、在复平面表示复数

电子信息技术中,为了让虚数单位的符号不与表示电流的符号混淆,改用j表示1个虚数单位

复数、虚数的英文名字complex number、imaginary number,看上去是在说复数是复杂的数、虚数是想象出来的数,在知道虚数的英文名之前,我一直以为虚数的"虚"表示虚假,实际上应该表示虚构
虚数的英文名字imaginary number似乎表明了引入虚数的原因:实数不能满足需求,于是虚构出能满足需求的数即虚数。同时这也似乎表明虚数并不存在于物理世界中,否则干嘛还要"虚构"出虚数呢。欧拉公式阐述了虚数需要满足的"需求"是什么
推荐看这个直观的视频来了解欧拉公式
视频作者是斯坦福大学数学系毕业生,他在Youtube、Bilibili用名字3Blue1Brown发布了很多形象地展示数学之美的视频,推荐给对数学感兴趣的同学们
弹幕中有很多还没上大学的中小学生发表的撞壁言论。为了让你自己专注于知识而非弹幕撕逼战,为了不被撞壁言论打击学习的积极性和自信心,建议关闭弹幕以保护智商。同时你也要保持对知识的敬畏之心,当你掌握更多知识之后,你可能会发现你之前对某些知识引以为傲的理解非常片面甚至错误


欧拉公式e=-1表明了虚数单位j在复平面上的作用:乘j相当于绕原点逆时针旋转90°,乘e相当于绕原点逆时针旋转α rad

 

 

 

LTI系统的特征信号

任何满足狄利克雷条件的周期函数都可以被展开为三角级数,欧拉公式又表明任一三角函数能展开为一对频率、瞬时相位都互为相反数的复指数函数之和
信号与系统教材已用纯数学手段证明复指数信号是LTI系统的特征信号,即如果把铺满整个时间轴的复指数信号输入给LTI系统,那么LTI系统的输出信号一定是铺满整个时间轴的同频的复指数信号,可能只是相位、幅度发生变化
物理世界的所有信号都功率有限(即振幅有限、斜率有限)、能量有限(即不会无止境地存在),天然地满足狄利克雷条件
显然如果LTI系统总是对频率互为相反数的复指数信号具有互为相反数的相移、相同的幅度增益/衰减,那么把铺满整个时间轴的正弦信号输入给LTI系统,LTI系统的输出信号也一定是铺满整个时间轴的同频正弦信号,可能只是相位、幅度发生变化,从而正弦信号也能是LTI系统的特征信号
幸运的是物理世界的LTI系统能将正弦信号作为特征信号

如果能知道物理世界的LTI系统对各个频率的正弦信号会产生多大的增益/衰减、多大的相移 、知道信号里的各种正弦频率成分的幅度、初始相位,根据LTI系统的线性性质,也能得知输出信号的波形
就像模电教材分析电路的频率特性总是拿正弦信号作为输入信号。得知电路对感兴趣的频率的正弦信号的相移、增益/衰减,就得知了这个电路的频率特性
你现在可能觉得这比在时域上x(t)*h(t)麻烦一些,但你得注意到:
在现实世界中可能造出完美的δ(t)吗?造出的δ(t)的持续时间是不是无穷小?能测量出持续时间就说明持续时间不是无穷小。既然弄不出完美的δ(t)那又怎么得知精准的h(t)?
有些情况下的信号处理任务在频域下进行,例如你很可能见过的音频播放器软件或者音响设备控制台的均衡器(equalizer),可能长这样:

图中的这个均衡器的顶部表示正弦频率、底部表示增益/衰减程度(正比于以某个统一值为底数的增益/衰减倍数的对数),显然图中的均衡器的目标是提升声音中的低频、高频分量幅度,衰减中频分量幅度,有的均衡器设置能让100块钱的音响放出1000块钱的效果
在音频均衡器的例子中,推导出输出信号需要知道输入信号中感兴趣的频率的幅度


如何知道系统对各频率成分的增益/衰减、滞后/超前?信号与系统教材已经证明过δ(t)包含所有频率分量,知道LTI系统对输入信号是δ(t)时的响应h(t),就相当于知道了LTI系统对所有频率的响应
下面就来这个问题:如何知道信号里各正弦频率成分的幅度、初始相位

 

 

 

正弦函数的正交性、连续时间傅里叶变换

高等数学讲过三角函数具备正交性,即两个不同频率的正弦函数的积函数,在积函数的整数个周期内的积分是0,即:
不妨记这2个频率分别为Ω1Ω2,积函数为cosΩ1tcosΩ2t,直接计算积函数的积分可能很困难,但是可以借助欧拉公式来简化
把cosΩ1t、cosΩ2t都展开为复指数的和的表达式,然后乘开乘积,再把频率互为相反数的复指数函数合并为正弦函数
所以cosΩ1tcosΩ2t=[cos(Ω1+Ω2)t+cos(Ω1-Ω2)t]/2,再算积分就非常简单了:

  • 如果Ω1=Ω2,那么cos(Ω1-Ω2)t就成为常数1,这时cosΩ1tcosΩ2t≥0,从而无论在哪段t上积分,结果都非0
  • 如果Ω1Ω2,那么显然在积函数的整数个周期内cos(Ω1+Ω2)t和cos(Ω1-Ω2)t的积分都是0

再结合高等数学推导出的"周期趋于+∞时的三角级数"的知识,可以把物理世界的信号(记为x(t))写为无穷个不同频率的正弦信号的线性组合,如果想知道这个线性组合里Ω0分量有多少,那就计算x(t)cos(Ω0t)的积分,积分区间必须盖住x(t)有值的时间段,干脆就设为cos(Ω0t)的无穷个周期即铺满整个时间轴吧,反正x(t)=0的时刻完全不影响积分值,而且能保证积分区间一定盖满x(t)非0的时间段

但是仍然存在问题:

  • 积分值无法反映x(t)中的Ω0分量在t=0时刻的相位
  • 如果积分时间段不是cos(Ω0t)的整数个周期,那么cos(Ω0t)的初始相位会影响积分值;

于是引出傅里叶变换

傅里叶变换的思路和前文所述的以正弦信号为基分解信号的思路相当,只是傅里叶变换的基是物理世界并不存在的复指数信号
很好理解基是正弦信号的情况,也可以用欧拉公式把正弦信号基分解为一对复指数信号基,从而理解基是复指数信号的情况。但还有一种更直观地理解基是复指数信号的情况的方法,推荐看看这个视频
这个视频依然是3Blue1Brown的作品,依然建议关闭弹幕、保护智商

 

视频为了能演示,选用的信号长度是有限的
如视频中的操作:根据欧拉公式的几何含义,把x(t)e-jΩt看作把x(t)在复平面上从相角为0的地方、绕着原点、向逆时针方向、以角速度Ωrad/s旋转铺开,如果信号中真的含有e-jΩt,那么旋转铺开得到的形状肯定会显然不关于原点对称,从而质心明显偏离原点;

如果信号不包含e-jΩt,那么旋转铺开得到的形状就会非常像关于原点中心对称,从而质心离原点很近

同时也容易想象到:如果信号的初始相位变化,那么最终旋转铺开得到的形状会绕原点旋转,从而很容易理解从原点指到质心的相量的模能反映信号中e-jΩt的振幅、幅角能反映信号中e-jΩt的初始相位
对一个信号,取从-∞到+∞的所有复指数频率,进行上面的操作,得到各复指数频率下对应的质心在复平面的坐标值,这就是连续时间傅里叶变换(The Continuous-Time Fourier Transform,简称CTFT),记x(t)的傅里叶变换为X(Ω)
再看傅里叶变换的公式X(Ω)=-∞+∞x(t)e-jΩtdt,有没有感觉这个公式非常直观

 

你可能仍有疑问,例如视频中这个时域信号的幅频图中,时域信号不包含的频率的振幅并不是0,而是在0的上下跳动

这是因为参与变换的时域信号有限长、持续时间不是e0t的周期整数倍,导致旋转铺开的形状并不密闭,就像下图这样:下图中的绿色波形最右侧的线条没有闭合,所以这个形状的质心并没严格落在原点,从而算得的振幅值在0的上下

如果让信号持续的时间再长几倍,那么这个不完整的形状就会更趋于完整,从而质心离原点更近
这个现象非常像数字信号处理中的频谱泄露
视频作者说他在下一个视频中讨论这个问题,按作者在YouTube发布视频的顺序,"下个视频"是这个视频。依然建议大家关闭弹幕保护智商

 

如果要画傅里叶变换的图谱,横轴为复指数频率,那么在平面上是做不到让一维的纵轴表示视频里的质心的二维坐标的。那就分出2个图谱吧,纵轴分别是幅度和相移,这2个图谱分别叫幅频谱和相频谱

 

 

 

无限长连续时间傅里叶变换的缺陷——基的频率范围连续且取值数量无限、持续时间无限长,难以直接应用于工程实际中

这一章的目的是强调信号与系统教材里的连续时间傅里叶变换的基铺满时间轴、频率取值连续且取遍所有值、用傅里叶变换积分公式得到的某频率的振幅值正比于那个频率分量的持续时间×真正的振幅
为了直观,下面所有参与变换的信号x(t)都是实信号。看懂了实信号,分析物理世界并不存在的复信号也能触类旁通

 

考虑从t=0开始由cosπtn(n为整数)个周期首尾拼接成的信号x(t),用傅里叶变换计算x(t)里e-jπt的幅度时
(1)如果n=1,原本铺满整个时间轴的积分区间就相当于是t从0到2,因为x(t)=0的时刻对积分无贡献。记计算得到的e-jπt的"幅度"为|X1|
(2)如果n=2、让时域波形振幅减半,积分区间相当于是t从0到4,是刚才的2倍,但由于振幅减半,所以积分表达式前面需要乘0.5,计算得到的e-jπt的"幅度"仍为|X1|
再按照傅里叶变换的公式算出上述2中情况下的相频表达式,可得这2种情况下e-jπt的振幅、初始相位完全一样,但显然违背直觉

(3)如果取n=2,不改变波形振幅,则这时计算得到的e-jπt的"幅度"为2|X1|
(1)、(3)中x(t)中的cosπt的幅度根本没有变化,变化的只是cosπt的周期数即积分区间,导致计算得到的|X(Ω)|变化了


显然傅里叶变换计算出的|X(Ω0)|正比于x(t)非0时,频率为Ω0的复指数信号分量的幅度×持续时长

 

如果x(t)中Ω0分量铺满整个时间轴,例如x(t)=cos(Ω0t),那么显然根据公式计算得|X(Ω0)|趋于+∞
这时的x(t)显然不满足狄利克雷条件,按理说不能做傅里叶变换,但拿出傅里叶变换频谱的物理意义,很容易画出这时的x(t)的幅频谱、相频谱的形状,不考虑幅频谱中的谱线值的绝对值的话

是不是感觉很矛盾?|X(Ω)|并不能100%地反映x(t)非0的时间段内e-jΩt的幅度、不满足狄利克雷条件的信号也能有傅里叶变换

 

于是我去搜索为什么傅里叶变换算出的幅度值无法绝对表示信号中的频率分量的幅度,遗憾的是靠前的汉语搜索结果没一个符合我描述的意思

于是换用英语搜索,看上去靠前的第1、4、5个英语搜索结果都符合我描述的意思


我爱汉语,希望我们的汉语互联网也能这么开放互联、信息也能这么丰富

尽管上图中的英文搜索结果里的回答也是网友们写的,不能算是绝对权威,但他们说的也很有道理。英文搜索结果里的回复表达的意思与本文下面根据Adobe Audition的幅频图和其它必要信息还原出时域信号的方法相同。那么难道说教科书上说的是错的?
并不是。如果能写出X(Ω)的表达式,那么一定能唯一确定x(t)的形状,这已被数学证明过,不会有错

信号与系统教科书里讲傅里叶变换的方式更像是数学家们思考的方式,和工程实际还有一定差别,和你能想象出的物理世界的实情也有一定差别,比如物理世界
哪有cos(+∞t)?
你的大脑和计算机都非常难以想象用无限个频率取值连续分布的复指数信号去相加拟合一个信号,倒是很好想象用有限个频率取值离散分布的复指数信号去相加拟合
物理世界中当幅度小于一定值的时候,信号已几乎无法被测量到
数学家告诉你,正是上述的这些无穷大频率分量、无穷个频率值连续分布的分量、几乎不能准确测出来的频率分量导致了最终结果的巨大差异

 

接下来看看工程实际中是如何用傅里叶变换进行频谱分析的。工程实际中广泛运用计算机计算傅里叶变换,这涉及到数字信号处理,本文不涉及到数字信号处理

单看傅里叶变换的表达式无法判断基的确切长度,因为只要基在t=0时相位为0、基的持续时间段盖满信号的持续时间段,那么积分结果就不会受到基的长度的影响
再看傅里叶逆变换的表达式x(t)=(-∞+∞X(Ω)e-jΩtdΩ)/2π。被积函数是X(Ω)e-jΩt,它铺满整个时间轴,即傅里叶变换的基铺满整个时间轴

 

基无限长是存在一些缺陷的,比如信号当①没铺满整个时间轴或②非周期或③周期非常长等等
以①举例(其实刚才举过),假设一首歌的时长是1分钟,那么把这首歌以铺满整个时间轴的不同频率正弦函数为基进行分解,得到的结果无法反映某个具体的时刻下这首歌的特征,例如在这首歌已经放完了的t=2分钟时根本听不到任何声音,但傅里叶变换告诉你此时依然有各种频率的分量,这显然违背直觉

 

为什么要把基设为铺满时间轴呢?我猜测是为了让基严格满足LTI系统的特征信号的条件,本文推荐的第3个视频也表达了类似观点
如果输入信号有限长,那么输入信号从非0开始变为全0的片段,无法保证输入给LTI系统后,输出的信号能保持原样、最多只存在幅度和相位的区别

 

但是在工程实际中没必要总是把基设为铺满整个时间轴啊,持续1小时、1分钟、半分钟的1kHz声音无法让机器检测出1kHz分量吗,当然可以。但是持续1秒、0.5秒、0.00001秒就可能无法让精密的机器检测出了。所以这涉及到选定基的长度、参与变换的信号片段长度的问题(本文提到的第3个视频也讨论过这个问题。这个问题类似于数字信号处理里的频谱的物理分辨率)
为了解决傅里叶变换的上述缺陷,于是有了短时傅里叶变换、小波变换。我搜到过很形象地演示小波变换的原理的文章,还排在搜索引擎结果很靠前的位置,例如这篇

 

有的信号,各频率分量幅度的绝对值并不重要,而相对值很重要,例如语音信号。显然如果把某个语音信号x(t)中所有的频率分量的幅度全部同时扩大到相同倍数,就像扭动音响设备控制台的总音量旋钮,那么x(t)包含的信息完全没有变化,依然能听出x(t)被放大之前所传达的信息

其实也很好理解:话筒把声音转成微弱的电信号后,这个电信号肯定会被模数转换器(analog to digit converter,ADC)的前端电路处理得恰好铺满ADC的模拟输入端的输入范围(其实不会恰好铺满,而是会留有一定裕量)以充分利用ADC的精度

对ADC和听声音的人来说,话筒转换得到的电信号的幅度的绝对值没有意义。用专业些的音频处理软件Adobe Audition来举例:

Audition的傅里叶变换是短时傅里叶变换(其实是数字信号处理里的离散傅里叶变换,不过离散傅里叶变换选用的信号片段长度确实是"短时"的),每次变换所用的信号并不是整个音频文件,而是可以由用户设定使用多长的信号片段,现在只关注Audition的幅频图的纵轴

Audition的幅频图的纵轴标注的刻度以分贝(decibel,简称dB)为单位,分贝可以表示倍数。工程中出现的倍数可能在末尾或者紧挨着小数点右侧有非常多的0,为了让人类看这样的倍数时不用把精力浪费在仔细地数0的个数上,于是分贝诞生了
如果用分贝表示2个电压值U1U2之间的倍数关系,那么可以把U1定义为0dB,计算出U2=20lg(U2/U1)dB
如果用分贝表示2个功率值P1P2之间的倍数关系,如果把P1定义为0dB,计算P2时,却应该是P2=10lg(P2/P1)dB,因为如果用电压U表示功率PP正比于U2U扩大至k倍后,P会扩大至k2倍,P已暗含了平方关系,类似地,用分贝表示暗含了平方关系的物理量之间的倍数关系时,对数式前乘的系数都是10


再看上图:纵轴刻度的最大值是0dB=1倍,纵轴向下是负的分贝
所以Audition的幅频谱把能达到的最大幅度定为0dB,其它幅度的值根据它相对于0dB的比例计算出。这个幅频谱没有反映频率分量幅度的绝对值,而反映了相对值。这样反映出的幅度也叫归一化(normalized)幅度,就是把最大的值定为1,其它值根据它占最大值的比例算得。同学们以后会经常碰到"归一化"这个词
如果频率分量的幅度的绝对值重要、而幅频谱仍然像Audition的这样只给出各频率分量幅度的相对值,那就再规定幅频谱里的0dB表示的绝对值是多少,这样就能算出所有频率分量幅度的绝对值啦;再拿到相频谱、规定参与变换的时域信号的长度,那么就一定能还原出时域信号。注意看这段话里的红色字,它们都是工程实际中还原出时域信号必备的信息,缺一不可

 

 

 

滤波器

再来看前面的音频均衡器的例子,图中推子的连线像不像幅频曲线?

一些音乐软件有音质优化功能,这个功能里预设了一些效果曲线,比如一些预设效果叫室内、KTV、金属、人声等等,每个预设效果都对应着一条声音调整曲线。可以说每个预设效果都是一个滤波器(filter),预设效果对应的声音调整曲线就是这个滤波器的幅频图
滤波器是信号处理领域非常重要的研究课题,LTI系统就是典型的滤波器
滤波器嘛,顾名思义,滤除不想要的波形用的。其实不止滤除波形,滤波器还能提升需要的波形的幅度。都说了幅频图里的谱线的绝对值不重要,只提升想保留的频率的幅度算不算是抑制不想要的频率的幅度?

 

 

 

计算傅里叶变换时的一些细节问题

本节进行变换时把时域信号当作无穷长,选用的基也铺满整个时间轴。反正你的作业和考试就是这么设定的
同样为了直观,参与变换的信号x(t)依然是实信号

以复指数信号为基分解实信号,为了让这些基最终拟合出的虚部是0,那么显然频率互为相反数的复指数信号的幅度相同、瞬时相位互为相反数(你要说幅度互为相反数、瞬时相位相同也没错,但习惯上不这么说)

 

x(t)是周期信号,不妨设x(t)=cost+2cos2t

如果用短时傅里叶变换:根据傅里叶变换的物理意义,傅里叶变换的基是铺满整个时域的不同频率的单频复指数信号,显然幅频图中复指数频率1、-1、2、-2的谱线长度非0,且1、-1的谱线长度是2、-2的谱线长度的一半,其它所有复指数频率的谱线长度都是0,规定复指数频率Ω=1的分量的幅度是1;幅度非0的复指数频率的初始相位都是0;选用的基铺满整个时间轴

按照教科书教的计算:这个信号完全不满足狄利克雷条件,但是引入冲激信号δ(t)之后,可以认为复指数频率1、-1的幅度是δ(t)、复指数频率2、-2的幅度是2δ(t);幅度非0的复指数频率分量的初始相位都是0。即复指数频率为1的分量的幅度是1个单位的+∞、复指数频率为2的分量的幅度是2个单位的+∞

 

x(t)仍然是周期信号,不妨设周期是T0

幅频图上,非0的正弦频率的频率一定是1/T0 Hz的整数倍,其它频率处严格为0,否则x(t)的周期不可能是T0。幅频图中的1/T0 Hz、2/T0 Hz、3/T0 Hz、……、n/T0 Hz的分量就是x(t)中的基波、二次谐波、三次谐波、……、n次谐波
这就是"时域周期则频域离散、非周期"
同上,基波和各次谐波的幅度都是(t),k是常数

 

x(t)有限长

用铺满整个时间轴的基去拟合有限长的信号,看上去无法在x(t)彻底为0的时刻严格地拟合得到0,所以必须提升拟合精度,即频谱图铺满整个频率轴
这时一个数学家跳出来说:我说基取遍所有频率能严格拟合物理世界的所有信号就能严格拟合
咱又不能真的实现"把所有频率的铺满整个时间轴的基都取遍,加起来看看是不是有限长的x(t)的时域波形",那么数学家说是就是吧,工程师和物理学家不都只有经常从数学家的乐(lè)色桶里捡乐色才能维持的了研究??

 

x(t)无限长且非周期

这时x(t)必须得满足狄利克雷条件,否则如果非得算其傅里叶变换,那么根据公式算出来的所有复指数频率的幅度可能都是+∞,而且还不知道这些+∞是多少倍δ(t)
你可能会觉得,如果x(t)是持续时间无限长的语音信号,精密的机器肯定能听出任何时刻的幅频图,这样能做傅里叶变换啊
但是别忘了这一节的傅里叶变换的基铺满整个时间轴,参与变换的信号片段是铺满整个时间轴的整个x(t)。机器能绘制出任何时刻的幅频图,但每个幅频图对应的时域信号都是完整的x(t)吗,这台机器肯定也像Audition一样实际上做的是短时傅里叶变换

 

x(t)是等间隔序列,即只在等间隔的有限个时刻的值非0、其它所有时刻的值严格为0

特别说明:为避免歧义,特地假定x(t)在其持续时间段内一直非0


其实物理世界根本不存在完全符合这个要求的信号,因为这样的信号在x(t)从非0变为0时的斜率为∞,那就说明x(t)的功率是+∞,这不可能
所以这种信号的傅里叶变换频谱图的极高频分量的幅度也是∞,而且算不出来到底是哪些频率的幅度是多少个δ(t)
那就改变基,把基换为铺满整个时间轴的等间隔复指数序列,基的频率范围也铺满整个频率轴。这时再把时域信号的自变量设为时间t已不太准确,那就把序列值的编号n设为自变量吧,既然序列铺满整个时间轴,那么序列值的编号也能取尽所有整数
这就是离散时间傅里叶变换(Discrete Time Fourier Transform,简称DTFT)

计算机等数字电子设备不能处理连续的信号,所以得把连续信号变为离散序列后才能让数字设备处理。掌握好离散时间傅里叶变换才能学习今后的数字信号处理课程
这时的基(为了直观,假设基是正弦序列。如果是复指数序列,我就得分别画幅度序列和相位序列,反而更不直观)的频率有这样的特征:

  • 只看Ω∈[0,2π]时,Ω=Ω0Ω=2π-Ω0的基的波形完全一样

    你可能会问:如图,这2个信号作差后不是全0,它们的波形不一样啊
    那是因为计算机表示的小数位数有限,看上图中第3个图的纵轴数量级,都到了10-15,如上图红框内容。显然作差后不全0是计算机的舍入误差造成的。不信的话,你问64位的MATLAB,看它认为cos(π/2)是否等于0,如果不等于0那等于什么

    历史上就有过美军导弹因舍入误差而打中美军基地的事故
  • Ω=Ω0Ω=Ω0+2π的基的波形也完全一样
  • 基变化得最快时频率是π和所有与π隔2的值,基停止变化时频率是2π和所有与2π隔2的值

上述特征反映到离散傅里叶变换的幅频谱就是:

  • 显然这时的频谱图的频率轴肯定会被铺满、频谱图以2π为周期、每个Ω∈[2,2(k+1)π]的周期内的频谱图关于周期中线Ω=(2k+1)π对称,进而所有的x=kπ都是对称轴
    这个性质也是数字信号处理里的离散傅里叶变换的图谱的性质
  • 由于离散时间傅里叶变换的基的频率Ω是连续的,所以x(n)的DTFT的频谱图也是连续的

这就解释了教材说的"时域离散、周期,则频域连续、非周期"。注意:这是描述离散时间傅里叶变换DTFT用的,而不是描述连续时间傅里叶变换CTFT

 

但计算机依然不能处理DTFT,因为DTFT的频谱图依然是连续的,如果要让计算机计算傅里叶变换,就得让DTFT的频谱图也离散,这就是离散傅里叶变换(Discrete Fourier Transform,简称DFT)

 

DTFT的频谱图能再次验证前述的"工程实际中幅频谱的谱线长度的绝对值不重要而相对值才重要":
显然如果把这样的频谱图里的所有频率(从-∞到+∞)的基与它们各自在频谱图里的幅度值相乘后全部相加,那么得到的x(n)的波形绝对会在几乎所有n时都是∞(无穷个频率的基相加,频率每隔2π的基的波形完全一样,从无穷个频率里也能抽出无穷个波形完全一样的基,这无穷个"波形完全一样"的基相加肯定会让时域幅度无穷大)
所以不如只拿出频谱图里Ω∈[0,π]的部分、纵轴表示归一化幅度,Audition就是这么做的

前面假设过x(n)是实信号,所以可以只根据频谱图里一段长为π的连续片段补全Ω铺满整个频率轴的频谱图;
如果x(n)是物理世界不存在的复信号,那么得至少根据复指数频率频谱图里一段长为2π的连续片段才能补全
因为对于实信号,根据X(Ω0)一定能推出X(-Ω0),因为实信号没有虚部,所以e0te-0t的幅度一定要相同、瞬时相位一定要互为相反数,否则就会加出虚部。前面已说过
而复信号却无法根据X(Ω0)推出X(-Ω0)

 

 

 

拉普拉斯变换

还记得教科书证明了复指数信号是LTI系统的特征信号吧,本文前面的部分只讨论了复指数是纯虚数的情况,复指数还可以是既有实部又有虚部的一般复数,接下来就来讨论以一般复指数信号为基的变换
记一般复数a+jΩ=s,一般复指数信号e(a+)t=e-st,把傅里叶变换表达式里的e-jΩt换成e-st,这就是拉普拉斯变换(Laplace Transform),记x(t)的拉普拉斯变换为X(s)


e-st可以被拆为e-ate-jΩt,如果让e-at跟着e-jΩt,让你想象用指数衰减/增长的基去分解信号,你可能感到很困难
那就让拉普拉斯变换表达式里的e-at跟着x(t)吧,相当于把x(t)乘上指数衰减/增长的信号后再做傅里叶变换,现在好想象了吧


你可能会感到疑惑:乘上增长的指数信号不是更不能保证让积信号符合狄利克雷条件吗?但如果x(t)是当t→-∞时幅度不趋于0的非因果信号呢?当t→-∞时增长的指数信号趋于0,积信号是不是更容易符合狄利克雷条件?
指数是数学里的魔鬼,单调递增的指数函数可能在某个时刻函数值低于非指数函数,但随着自变量越来越大,指数函数的函数值一定会远超非指数函数的,而且越拉越远
x(t)乘上指数增长/衰减的信号,在信号处理领域的意义就是,有些不铺满整个时间轴的信号不满足狄利克雷条件从而不能算傅里叶变换,如果当t趋于+∞时这个信号仍不趋于0,那就给它乘上指数衰减的信号,把它压得趋于0;如果选用的一个指数函数压不住,那就换用个底数绝对值更大的单调递减指数函数,总有个指数函数能压住,从而能做傅里叶变换

 

平面不够表示拉普拉斯变换的幅频谱,得用立体空间


这个图谱的俯视图就是个复平面,不过对于拉普拉斯变换,这个平面叫s平面

 

实轴表示用来乘x(t)的e-at的指数a,虚轴表示x(t)e-at的傅里叶变换幅频谱的频率轴
显然如果x(t)能直接做傅里叶变换,那么a=0时(即上图中虚轴处)的|X(s)|就是|X(Ω)|。把|X(s)|沿复平面虚轴切开,切面就是|X(Ω)|
再看拉普拉斯变换幅频图的侧视图,其实就是固定了表达式的x(t)e-at的傅里叶变换的幅频谱(如果x(t)e-at有傅里叶变换的话)


假如x(t)=cos(πt)etu(t),显然x(t)的包络线即etu(t)当t→+∞时趋于+∞,x(t)不满足狄利克雷条件。于是给x(t)乘上指数信号e-at,显然

  • a<1时x(t)e-at仍然不能做傅里叶变换
  • a=1时x(t)e-at=cos(πt)u(t),恰好能根据傅里叶变换的物理意义画出幅频图,这时的x(t)e-atΩ=π、-π的分量的幅度是(t),k是常数,(t)仍然是+∞
  • a>1时x(t)e-at已被指数衰减的e-at压得符合狄利克雷条件,这时可以用傅里叶变换的公式套x(t)e-at

所以x(t)=cos(πt)etu(t)的拉普拉斯变换的幅频图的俯视图上,点1+、1-处的谱线高度为(t),(t)是+∞。在俯视图上出现+∞高度谱线的点处标上"×",并说这些点是X(s)的极点

实轴上a<1的部分对应的e-at并不能让x(t)e-at具有傅里叶变换,如果非要用傅里叶变换的公式计算这些x(t)e-at的傅里叶变换,那就像前文所说的那样所有的频率分量的幅度都是+∞,而且不知道这些+∞等于多少个δ(t);

a=1时虽然能根据物理意义画出x(t)e-at的傅里叶变换幅频谱,但这时的x(t)e-at=cos(πt)u(t)在无限长的时间里非0,这在物理世界中是不可能的,而且按照傅里叶变换的公式算得的幅频谱的谱线高度是+∞,并不是有限值;所以如果有个拥有足够能量的信号处理LTI系统的h(t)长这样,这个系统无法正常工作,因为给它输入δ(t)后,撤掉所有输入信号,这个系统的输出就能无止境地振荡下去,这是不希望信号处理系统出现的现象;但如果要设计模拟的信号发生器(在"的"后断句),这样的系统是很符合要求的

 

as的实部,a可以被记为Re[s],"re"是"实"的英文单词real的前2个字母。于是说a≤1即Re[s]≤1时X(s)不收敛,同样地,可以说a>1即Re[s]>1是X(s)的收敛域(Region of Convergence,简称ROC)
记住咯:拉普拉斯变换不能收敛的域下不存在傅里叶变换,这些域下|X(s)|不是0、也不是可以算出k(t),而是如果硬要算的话几乎所有的频率分量的幅度都是+∞,而且不知道这些+∞是δ(t)的多少倍
相当于X(s)不收敛的域内|X(s)|的谱线全都是+∞,但给拉普拉斯变换不收敛的域的所有点都画上"×"并不现实,那就用深色覆盖这个域吧

更一般点,如果x(t)=x1(t)+x2(t)+x3(t),X1(s)、X2(s)、X3(s)收敛域边界上的极点如下图分布,假设从左到右依次为X1(s)、X2(s)、X3(s)的极点,下面来分析ROCX可能的范围

 

 

ROCX肯定不能包含任一极点,图中符合这一要求的区间有4个
如果ROCX是B区,那么ROCX3一定会包含X2(s)不收敛的区域(即黄色的C区),所以ROCX不能是B区,同理也不能是C区,只有ROCX是A区或D区时才可能让X1(s)、X2(s)、X3(s)全都收敛

 

如果把X1(s)、X2(s)、X3(s)各自不收敛的区域分别用深色填充,再组合出X(s)的极点分布图,那么你应该不会再一开始就认为B区或C区可能是ROCX

我初学拉普拉斯变换时就有过这样的疑问:上图中B区、C区明明不包含极点(现在才知道其实一定会包含),为什么不能是ROCX。B区、C区只是没有包含X1(s)、X2(s)和X3(s)收敛域边界上的极点,但一定会包含X1(s)、X2(s)或X3(s)不收敛的区域

 

 

 

用拉普拉斯变换确定信号和系统的稳定性和因果性

有的LTI系统不稳定,例如把话筒对准扬声器,扬声器会发出啸叫声。这个LTI系统就不稳定,只给一丁点输入信号(空气的轻微流动导致话筒能产生一丁点电压信号),就能产生不趋于0的时间无穷长(如果能给这个音响系统无穷的能量)、幅度无穷大(如果这个音响能输出幅度无穷大的声音)的输出信号,这种现象叫自激振荡,显然这个系统的h(t)也是时间无穷长的啸叫声,但如果非要分析这个系统的特性,傅里叶变换做不到,但拉普拉斯变换可以做到

对一个LTI系统的h(t)做拉普拉斯变换得到H(s),如果ROCH包含Re[s]=0,那么这个LTI系统一定稳定,如果h(t)还是因果信号,那么ROCH一定包含复平面的整个右半平面。这显而易见:Re[s]=0时相当于不对x(t)乘指数信号,Re[s]>0时相当于对x(t)乘衰减的指数信号,如果x(t)是因果信号,既然不乘指数衰减的信号的x(t)都能符合狄利克雷条件,那么乘了指数衰减的信号得到的x(t)e-at一定也能满足狄利克雷条件

 

衰减的指数信号当t<0时振幅大于1,所以只要x(t)e-at存在非因果的片段,那么总有个Re[s]>0的s能让这个非因果片段大得不满足狄利克雷条件;
如果x(t)的非因果片段不趋于0的时间无穷长(例如cos(t)),那么任何为正的Re[s]都可以让x(t)e-att→-∞时趋于无穷,所以这时Re[s]>0一定不在ROCX内;
Re[s]<0时会将x(t)的非因果片段指数扩大,有没有可能Re[s]<0时也能让x(t)e-at的非因果片段满足狄利克雷条件呢?当然可以,x(t)的非因果片段有限长时就行,这时甚至所有有限的Re[s]<0的s都能让x(t)e-at满足狄利克雷条件;


综上,任何非因果信号的收敛域都包含Re[s]小于某个值的区域

 

如果x(t)是因果信号,同上,任何因果信号的收敛域都包含Re[s]大于某个值的区域

综上还能得出有限长、幅度有限的信号的收敛域是整个s平面,不论这个信号的因果性如何

 

如果把不稳定的LTI系统的h(t)做拉普拉斯变换得到H(s),那么H(s)的收敛域的边界就能指导我们如何修改这个不稳定系统从而让它稳定。假设前面啸叫的音响系统的ROCH是Re[s]>5、对所有频率的相移都是2π的整数倍(实际上自激振荡的条件还和系统的相移有关,为了简化讨论,做出这个假设,这样这个系统就既有相移但不改变各频率分量的相位。直接假设系统没有相移不行???确实不行,后面会分析),那么这个收敛域边界就告诉了我们:h(t)如果被比e-5t衰减得更快的指数信号衰减,那么这个系统就稳定了
你可能又有疑惑:很好想象固定比例衰减,比如电阻分压可以固定比例衰减电压信号;但怎么实现指数衰减环节?
注意这个音响系统是反馈(feedback)系统。声音(输入信号)进入话筒,被功率放大器放大后从扬声器输出(输出信号,假设刚从扬声器出来的音量是快要进入话筒的音量的k倍),输出信号在空气中传播(衰减,假设再次进入话筒的音量是刚从扬声器出来的音量的1/m)后又进入话筒(反馈环节)

 

看好咯:输入给话筒的声音被转为电信号(假设是x(t))、经功率放大器放大、经扬声器输出、经空气衰减,再次到达话筒前、又被话筒转为电信号(假设是y(t)),显然这一个循环下来y(t)成了x(t)的k/m倍(如果系统没有相移,那就相当于这个循环不消耗时间,从而不论输入什么信号,输出信号都会瞬间振幅无穷大,这将是假设系统没有相移所引入的Bug。为了不引入这个Bug,所以假设了对所有频率的相移是2π的整数倍,这样既让这个循环需要消耗时间,也不改变信号的相位)
如果经过n个循环,那么最后被话筒转换得到的电信号(假设是q(t))会成为最初被话筒转换得到的电信号(假设是x(t))的(k/m)n
有指数增益/衰减的感觉了吧

  • 如果k=m,那么h(t)是铺满正半时间轴的周期信号(稍后解释为什么是周期的),相当于将原h(t)乘了指数衰减的信号,用反馈成功地将定比例衰减转为了指数衰减,但系统依然不稳定


新h(t)是不是相当于给旧h(t)乘了衰减的指数信号?

  • 如果k>m,且音响能输出的音量无上限,那么这时的h(t)是k=m时的h(t)乘指数增长的信号,系统更加不稳定
  • 如果k<m,系统稳定

所以只要把话筒放得离扬声器远一些、让衰减倍数m够大,系统就稳定了

下面来解释为什么振荡的音响系统输出的信号是周期信号或周期信号×指数增长的信号:
不考虑波形失真、空气再轻微流动、机器老化等因素的话,相当于输入了δ(t)之后再也没有输入信号,如果h(t)不是周期的,那么这个非周期信号包含的信息来自哪里呢?
你可能会感到疑惑:假设音响能输出幅度无穷大的声音时,h(t)最终趋于无穷大,这个h(t)就是非周期的
实际上这时的h(t)是周期信号被不断放大的结果,如果知道了h(t)被放大的速度、h(t)被适当衰减后的一个周期的波形,那么能写出h(t)的表达式。表达式都有了,它再长也没没有包含更多信息。为什么?这涉及到信息论的知识。信息的作用是消除不确定度,表达式都有了,哪还有不确定度呢
δ(t)包含所有频率,那么振荡系统的h(t)的一个周期内的信息或者增长的速度信息来自哪里呢?当然是来自系统本身了:这个系统就是能选出这些频率,或者就是能以这个速度放大信号

 

 

 

用零极图几乎唯一确定因果LTI系统

显然傅里叶变换所用的基——铺满整个时间轴的复指数信号,其拉普拉斯变换在整个s平面都不收敛。很好想象:e0teRe[s]t在Re[s]=0时能根据物理意义写出X(Ω0)=δ(t),在其它Re[s]下e0teRe[s]t一定会沿时间轴的某个方向指数增长,从而不满足狄利克雷条件
不过没关系,物理世界的信号与系统都是因果的

 

再来回顾LTI系统的线性性质:如果用包含输入输出信号的方程式描述LTI系统,那么方程式中绝对不会出现非1次项、幂函数、指数函数、对数函数等等非线性函数,否则就不满足线性性质
例如9=32,16=42,而9+16≠(3+4)2,说明不能出现2次项
例如5=4+40,6=5+50,而5+6≠(4+5)+(4+5)0,说明不能出现0次项
例如2=lg100,3=lg1000,而2+3≠lg(100+1000),说明不能出现对数函数
其它的就不再举例了

 

所以为了满足LTI系统的线性性质,描述LTI系统的方程式中只能出现一次项、微分这些线性函数、线性运算的线性组合。积分不是线性运算,因为积分会引入常数项,这个常数项导致了非线性
刚才举了输出只与输入有关的例子,实际上有的LTI系统现在的输出还与过去的输出有关,例如前述的存在反馈环节的系统
接下来的部分就看信号与系统教材的了

这就是本节标题所说的"用零极图几乎唯一确定因果LTI系统",这个操作对分析物理世界的系统很有用
前面说了在零极图上用"×"标注极点。零点用"·"(点号)标注

 

为什么本节标题说"几乎"呢?因为如果把形如"y(t)=啥啥啥"的方程的"啥啥啥"乘上常数k,这个"y(t)=啥啥啥"的零极点并不会变化,即零极图无法体现k。不过这在归一化面前都不是事

有了零极图就能几乎唯一确定描述LTI系统的时域和频域方程,从而才能像教材9.4节说的那样"由零极点图对傅里叶变换进行几何求值"

 

 

 

完结撒花

又到了我最喜欢的环节

  • 卷积的物理意义是:输出信号=输入信号的各片段产生的各输出信号作用的总和
  • 欧拉公式表明了引入复数的原因。虚数单位j在复平面上的作用是乘j相当于绕原点逆时针旋转90°,乘e相当于绕原点逆时针旋转α rad,参考视频1
  • 复指数信号est是任何LTI系统的特征信号,其中s=a+jΩaΩ是实数
  • 正弦信号是物理世界的LTI系统的特征信号
  • 连续时间傅里叶变换(CTFT)的任务是以铺满时间轴的复指数信号ejΩt为基,分解时域连续信号,参考视频2视频3
  • 理论上的CTFT使用无限长、频率取值连续的基,工程实际中实际上使用有限长、频率取值离散的基,算得的振幅是归一化的
  • 根据CTFT计算得:振幅为1、铺满整个时间轴的单频(若频率为Ω0)复指数信号的幅频谱是|δ(Ω-Ω0)|。δ(t)叫单位冲激信号,其只在t=0时幅度为”1个单位的”+∞,在其它时刻为0
  • 离散时间傅里叶变换(DTFT)的任务是以铺满时间轴的复指数序列ejΩn为基,分解时域离散序列,得到的频谱图连续、以2π为周期
  • 物理世界的信号都满足狄利克雷条件、是实信号,其频谱图中Ω<0的片段的信息是冗余的
  • 拉普拉斯变换相当于将信号乘指数信号后再做傅里叶变换,能让积信号存在傅里叶变换的指数信号的指数组成拉普拉斯变换的收敛域
  • 由LTI系统的线性性质,可以用零极图几乎唯一确定因果LTI系统,从而才能由零极点图对傅里叶变换进行几何求值

 

更新历史

版本

日期

变动

鸣谢

1

2020年4月24日

完成初稿

 

2

2020年7月2日

  1. 将全文字母、数字字体换为Somic Sans MS,以解决以前用的字体π和n太像的问题
  2. 将体现离散卷积和的第1幅图画得更直观