主要参考知乎大神回答:
参考三位知乎大神的回答,自己总结如下:
1.傅里叶变换实际上就是找一组合适的基,对原信号进行一个基变换,即:把原信号表示成几个新的信号现性相加的形式:。
2.对于寻找的这个基,不唯一,当你表示同一个信号 ,可以有多组 作为基,但是不同就会有不同的 。而你的目的决定了你怎样选择用怎样的 表示。
3.【我的理解】将离散的信号看做是周期函数,对于具有N个采样点的信号,至少需要N个正交基对其进行线性表示。我们选择N个正交的正弦函数作为基,我们只需要求其相应的系数即可。求系数的过程就是求基信号与原信号相关程度的过程。
一.知乎回答1:
作者:肖畅
链接:https://www.zhihu.com/question/21314374/answer/542909849
来源:知乎
对一段有限长的离散信号,找出它含有的各个频率的正弦波分量。(这是句大家都知道的废话)
但如果换个单独针对DFT的解释就会好理解很多:
在长度为N的离散信号中,针对k=(0,1,2...),分别找出在长度N内振动k次的三角波分量的权值
怎么做呢?举个例子,可以打开MATLAB一起做:
抛开时间抛开采样频率,只看点的个数,我们对某个余弦信号在两个周期内采样了40次:
现在我们想通过DFT知道它在40次采样时间内振动了几次(经历了几个周期?),算法是怎么处理的呢?其实很暴力:
事先选取40个长度为40个点的基信号,它们分别长这样:
第一个,40次采样内振动0个周期: ,即常值
第二个,40次采样内振动1个周期:
第三个,40次采样内振动2个周期:
第四个,40次采样内振动3个周期:
第五个,40次采样内振动4个周期:
......以此类推一直到40个采样内振动39个周期。
接下来,对于上述40个基信号,判断它们跟原信号的相关程度。代数里判断两个长度相同的离散函数的相关程度,就是把它们同一点的函数值相乘,再对所有点求和的方法,即下面的公式:
这个值越大,长得越像。于是DFT把到这40个基函数都跟当前函数 比较了一下,发现 和 跟它长得最像!
这很显然,因为 。
于是 。
下面,如果我们把这40次每次比较的correlation值记下来,就得到了原信号在每个频率上的分量大小,比如,我要看它跟40次采样中振动8次的那个基信号相似程度,就是:
把这40个correlation值记下来,就得到了原信号的频域X:
可以看到 ,其他值都是0
如果写成一般形式,用 替换原信号, 就是:
问题来了,虽然貌似联系很紧密,但这怎么跟DFT的公式长得不一样。。。DFT的公式应该是这样的:
就算用欧拉公式展开,我们得到的是:
这又是为什么?
这是因为,对于一个信号,如果只跟余弦函数比较,会损失一些信息,比如相位。
如果我们的原信号有一些相位偏移,。
如果对这个函数同样按照上面的方法计算频域,结果会有一些不一样:
虽然对应频率还是筛选出来了,但是权值大小不一样了,如果计算一下得知
在相位偏移前,这个值是20,我们没法通过频域信息知道原信号到底是什么。
解决方法是另选一组以正弦函数为基准的“基信号”,即 到 ,计算另一组原信号与正弦基的相关系数,这两组系数一起作为DFT的最终结果。而复数只是一个工具,用来方便地同时存储两组计算结果。当然它还有一个好处就是能够比较直观地表现出模和相位。如果一个信号跟某频率余弦和正弦的相关系数分别为a,b,那么代表这个信号差不多型如
根据高中数学可以求得其模为 ,相位为 ,这与复数的模和相位是相同的,因此DFT的公式
相当于同时把做了跟N个余弦基、N个正弦基的比对,结果用N个复数存储。如果想要看某个频率的相位和模,就看对应复数的相位和模。
我们再来看看上面有相位偏移的那个例子:
原信号:
与余弦比对:
与正弦比对:
在40个点内振动两个周期这个频率上,其DFT的结果为
其模为20,与相位偏移前相同。
其相位为 ,也没有问题。
如果将原信号变为 ,会求得该频率DFT结果为 ,求得其相位为 。因此,根据DFT结果求得的相位是相对余弦信号的相位。
对于实际信号
上面做的分析没有考虑时间和采样频率,但只要给定一个采样频率,时域的横轴就可以换算成时间,频域的横轴就可以换算成频率。
DFT所做的只是选取了在给定长度内振动了整数个(k个)周期的正弦和余弦波作为基。
上面的信号是40个采样,如果给一个采样频率是100Hz,那么信号长度就是0.4s,原信号在40个采样内振动了两个周期,可以算出其频率为5Hz。
对于频域,每个“在40个采样内振动了k个周期”的基信号的实际频率为 ,也就是说频域图中的每一个点代表2.5Hz,这个系统的频域分辨率是2.5Hz,所以我们从 得知原信号的实际频率为。
二.知乎回答2:
作者:智穎
链接:https://www.zhihu.com/question/21314374/answer/588436102
来源:知乎
1.信号的表示
一个很重要的概念就是信号的表示(signal representation),一个信号可以表示为如下的样子:
其中, 就是我们想要表示的信号。我们的目的就是为了把这个信号表示成几个新的信号 的linear combination。 是一个是实数,每个新的信号 对应一个 。
注意,我们现在说的不是DFS这一种信号表示,这个一个非常一般性的表达式:
- 可以是任何信号。
- 这个linear combination可以是有限项相加,也可以是无限项相加。
- 对于某一个信号 ,你总可以选出一组信号来表示它
- 当你表示同一个 ,你选的 不同就会有不同的
对于第1点和第2点,我只想强调我现在讨论的是比Discrete Fourier Transform更一般性的概念, 完全没有必要是periodic的。
对于第3点,你有没有发现,如果我有创造了一组 能够分别表示 ,那么我只用记住 这些signal一次,对于 ,我知道了每个 所对应的一组 值,我就知道了每一个信号的所有信息。
【类似于空间中一个点的表示,相当于是基,对应的一组 值相当于坐标值。所以知道基,再知道对应的 值,就确定了。】
有没有一种线性代数里change of basis的感觉?
因为每一个signal都一定有的表示方式就是:
那么所做的无非就是把basis从 变成了
第4点,说明了你的目的决定了你怎样选择用怎样的 表示 。举个例子:比如你想压缩信号,那么你就想选择一组 使得最后得到的一组 会很多是0,很少是非0。
同理,我现在想选择一组 来表示periodic signals,理由很简单因为periodic signals 有很多很nice的性质,所以就开始了Discrete time Fourier Series (DFS或DTFS)
二.DFS
Discrete time Fourier Series (DFS或DTFS) 是一种表示periodic signal的一种方法。
如果我想表示一个periodic signal,用这种形式,
那么 应该有什么特点呢?
已经是periodic的了,假设它的period为 , 那么 的period也为 。
那么我们完全可以用一个period来表示 ,即
我们都知道period signal可以用Euler's Identity表示,那么因为 ,我们就可以让 。注意 ,因为 。
同时注意 ,所以,without loss of generality,
那么,我们就有了
最后一个问题,如何求 ?
注意, 是orthogonal basis(标准正交基),因为
当 ,
当 ,
所以是orthogonal basis,那么求 就很直接了:
所以,
这就是DFS。
三.知乎回答3:
作者:杨宇翔
链接:https://www.zhihu.com/question/21314374/answer/25295545
来源:知乎
DFT可以这样推导:
1.标准正交基
向量空间(或)的标准正交基满足以下两个条件:
我们可以得到一个的标准正交基矩阵:
再把每一个标准正交基对应的系数写成一个列向量:
则信号的标准正交基表示:
那么(这里,是指的共轭转置矩阵,不难证明)
关键结论:
对于一组标准正交基和标准正交基矩阵,对于任意的信号,我们有以下的表达:
综合式:
分析式: 或
综合式表明信号可以表示成标准正交基的线性组合。
分析式给出了计算标准正交基对应系数的方法,的大小表征了信号与标准正交基向量
之间的相似度。
2.特征向量与特征值
结论:LTI系统的特征向量是复正弦谐波(证明略):
可以看出复正弦谐波是一组标准正交基。
3.标准化的DFT(Normalized DFT)
对于标准正交基和标准正交基矩阵,我们定义长度为的有限长信号的标准化DFT为:
综合式(IDFT):
分析式(DFT):
通过标准正交基得到的DFT一种表达,也是比较容易被人理解的一种形式。但这并不是我们通常能够见到的DFT表达。
4.未标准化的DFT(Unnormalized DFT)
未标准化的DFT是通过正交基而非标准正交基得到的一种DFT表达,这也是我们常见的一种形式。这种形式可以避免计算上的复杂性,对于计算机来说,这是一种比较优雅的形式。由于传统,在书本、文献中一般统一采用这种DFT表达。
综合式(IDFT):
分析式(DFT):
简单来说,DFT就是有限长信号的一种基变换,以复正弦谐波作为变换域的基是因为复正弦谐波是LTI系统的特征函数。这样,对于有限长信号,DFT就很自然成为分析LTI系统的工具了。
我的理解就是这样了,好像也不是很通俗。
注:本文整理网上资料,包括知乎、博客等,如有侵权立刻删除。