作为一名工科学生,我在大二的上学期修了一门课,它的名字叫《复变函数与积分变换》。然而,数学具有很高的提炼性和抽象性,因此相信很多同学不仅学这门课的时候云里雾里的,即便是学完甚至考试之后,仍然对其中的知识一知半解。
本篇文章会尽可能少地使用数学工具(但无法避免,数学就是最重要的工具),为读者讲解几个重要的变换 :傅里叶变换、拉普拉斯变换、离散时间傅里叶变换、Z变换、小波变换
首先是烂大街(无论是科普、知名度还是工程应用意义上的)了的傅里叶变换,用一句话就能讲清楚该变换在做什么:通过积分变换,将时域上的信号(如果把函数视作是一种随时间变化的连续的输入信号的话)转换到频域上。以便工程师们能够窥探信号中的频率成分(哪几个赫兹的频率信号的占比是多少)
欸,这不巧了嘛,后面的几个家伙也起到了同样的作用。
那么问题来了,既然已经有了傅里叶变换,为啥还要发明后边的几个变换?
OK别急哈,慢慢把这个事情讲清楚。
首先,我们先提出一个暴论(没有严谨的数学证明或数理依据,便于理解使用的理论):所有的单输入单输出函数可以被视作一个无穷维度的向量
这个理论也许来自泛函分析,与希尔伯特空间有一些关系;但本人写作此文章时并未系统学习相关理论,欢迎读者有自己的高见
要理解这句话,一件非常重要的事情:在某些情况下,函数和向量都可以完成变量的映射操作。对于一个向量,一个确定的下标只会得来一个确定的结果(它不是矩阵或张量);而对于单输入单输出函数,一个确定的 输入只会有 一个确定的输出。
接着,我们知道,向量可以使用内积或点积,来计算两个向量的相似度。
对于向量\vec{a},\vec{b},假设\vec{a}=\{a_{1}, a_{2}, ..., a_{n}\},\vec{b}=\{b_{1}, b_{2}, ..., b_{n}\}
此时使用点积\vec{a}\cdot\vec{b}=a_{1}b_{1}+a_{2}b_{2}+...+a_{n}b_{n} = C,即可得到一个常数C,由另一个公式,我们可以通过归一化C,来确定两个向量之间的相关关系\vec{a}\cdot\vec{b}=|\vec{a}||\vec{b}|\cos <\vec{a},\vec{b}>C_{normed}=\frac{C}{|\vec{a}||\vec{b}|}
此时,C的取值在(-1, 1)之间,当取值为1时,两向量完全正相关,为-1则负相关。
欸,那既然我们的单输入单输出函数也是一个向量,那它是不是也可以拿来做点积呢?
你别说,还真可以。
我们假设存在两个函数f(x),\space g(x)。我们可以将函数上的点一一对应相乘并相加,来模仿点积这一行为。具体表现为:C=…+f(-1)g(-1)+f(0)g(0)+f(1)g(1)+…={\sum_{n=-\infty }^{\infty }}f(n)g(n),n\in Z
看起来貌似是那么回事,不过我们的函数可是连续的!,单单只是隔单位1采样一次可远远不够!这样的话,看来只能每隔dx采样一次,才足够分辨率了!这样下去,公式会变为:C=…+f(0-dx)g(0-dx)+f(0)g(0)+f(0+dx)g(0+dx)+…={\sum_{n=-\infty }^{\infty }}f(ndx)g(ndx)dx,n\in Z
C=\int_{-\infty}^{\infty} f(x)g(x)dx这一下,我们定义好函数的点积了,这是个大号的向量,使用积分后,事情也没那么难办。非常重要的:这个积分的结果也像向量的点积一样!表示了两个参与的函数的相关性!
不过问题总是接踵而至,哪怕只是一个最简单的单输入单输出函数,它也对应的是一个无穷维度的向量!
f(x)=x,(x>0),不错,看上去是那么的人畜无害。然而它对应的向量是…f(x)=x,(x>0)\space \longrightarrow \vec{f}(0,0+dx,…,1,1+dx,…)
这是一个无穷维的向量!完全包含了前者的值域,如果它参与到点积中,必然会产生可怕的后果。
\vec{f}\cdot \vec{f}=0\times0+…1\times 1+…\infty \times \infty +…最终的结果不可能是收敛的!事实就是这样,如果有一个向量是无穷维的,并且在无穷远处的维度上仍然有非零值,那么这样的两个向量点积就不可能收敛。
然而,这并不意味着我们所做的工作就毫无意义了。
如果我们的f(x)g(x)在无穷远处的值就是0呢,如果他们的乘积收敛得足够快呢?那么我们不是就能够得到那个我们想要的相关性C了呢?
于是,所有的积分变换都有了一个非常强硬的要求:积分的结果必须满足绝对收敛。
狄利克雷条件告诉我们,要存在傅里叶变换,函数必须在至少一周期内是绝对可积的,不过它的语境是在 周期函数 下,事实上,我们可以把非周期函数看作周期为\infty的周期函数,则此时狄利克雷条件告诉了我们,该函数必须在整个定义域上绝对可积。
我们用公式写出来就是:\int_{-\infty }^{\infty }|f(t)e^{-jwt}| dt = C
配合我们之前的暴论,你会发现在这里,其实就是在做我们定义的函数点积,在这里,f(x)还是f(t),而g(x)则被赋值为了e^{-jwt},这个式子的含义,就是在进行两个函数的相似性测试,最终得到的结果C就是两个函数的相似度!通过变换不同的w,测试原函数与不同频率的相似度。
暴论也能对应上狄利克雷条件,我们知道了在傅里叶变换中,这个g(x)实际上被赋值成e^{-jwt},而绝对值化之后有:|g(x)|=|e^{-jwt}|=1
所以此时,我们只需要原函数f(t)绝对可积即可,这正好对应上了狄利克雷条件的要求。
如果f(t)发散,不管g(x)=e^{-jwt}取哪一个函数,最终都将得到无穷的结果C=\infty,也就是这个函数对于所有频率都无穷地相似(?你自己看看这合理吗),这对于频率的分析将毫无意义。
自此我们知道了,所谓的积分变换,不过是把向量点积换了个形式摆了上来,起了个高大上的名字罢了。
下一集介绍其他的几个积分变换。