推荐阅读:http://www.dspguide.com/pdfbook.htm
傅里叶变换(Fotrier transform):线性的积分变换
- 连续傅里叶变换: F(w)=F[f(t)]=∫∞−∞f(t)e−iwtdt
-
连续傅里叶逆变换: f(t)=F−1[F(w)]=12π∫∞−∞F(w)eiwtdw
其中, w 可表示为w=2πf
傅里叶级数:连续傅里叶变换是傅里叶级数的推广
- f(x)=∑∞n=−∞Fneinx
-
Fn=a0+∑∞n=1[ancos(nx)+bnsin(nx)]
an 、 bn 表示实频率分量的幅度
离散时域傅里叶变换(DTFT):傅里叶级数的逆变换,时域离散,频域周期
离散傅里叶变换(DFT):时域、频域均为离散,DTFT频域的再次采样
-
xn=∑N−1k=0Xkei2πNknn=0,⋯,N−1
其中, Xk 为傅里叶幅度,计算复杂度为 O(n2) ,使用快速傅里叶变换(FFT)复杂度为 O(nlog(n))
1. 傅里叶变换的提出:
任何连续周期信号都可以由一组适当的正弦曲线组合来逼近。
对于有限长度离散的信号:(1)延拓为无限长信号,成为非周期性离散信号,使用DTFT;(2)延拓为无限长信号,成为周期性离散信号,使用DFT
计算机能处理的信号:离散的、有限长度数据,采用DFT处理
2. 实数离散傅里叶变换(Real DFT)
在计算机中,N个点可以表示周期为 0、1、2、3⋯N2 的余弦信号和正弦信号。因此,对于一个长度为N的离散信号,可以表示为 (N2+1) 个正弦信号、 (N2+1) 个余弦信号的和。
时域 | 频域 |
---|---|
x[0:N-1] | Re X[0: N2 ]、Im X[0: N2 ] |
N个时间点对应的幅值信号 | N2+1 个频率对应的余弦、正弦幅值信号 |
频率种类固定,关键在于每个频率幅度的估计
DFT频率到时间的合成公式:
x[i]=∑N2k=0ReX^[k]cos(2πkiN)+∑N2k=0ImX^[k]sin(2πkiN)
其中, i 表示第i时刻
ReX^[k] 、 ImX^[k] 表示每 2N 频谱范围的幅度和,其中, k=0、N/2 表示每 1N 频谱范围的幅度和,而 ReX[k] 、 ImX[k] 表示整个(1个)频谱范围的幅度总和,因此满足:
ReX^[k]=2ReX[k]N , ReX^[0]=ReX[0]N , ReX^[N/2]=ReX[N/2]N
ImX^[k]=−2ImX[k]N , ImX^[0]=−ImX[0]N , ImX^[N/2]=−ImX[N/2]N
其中, ReX[k] 、 ImX[k] 可利用相关性计算:
ReX[k]=∑N−1i=0x[i]cos(2πkiN)
ImX[k]=−∑N−1i=0x[i]sin(2πkiN)
由上,实现时域到频域的变换。
3. 复数傅里叶变换
根据Tayler展开,可推导得到欧拉等式:
Mejθ=Mcosθ+jMsinθ=a+jb
1)从时域到频域的变换
- 频率为 k 时的频谱密度可以表示为:
ReX[k]=∑i=0N−1x[i]cos(2πkiN)
ImX[k]=−∑i=0N−1x[i]sin(2πkiN)
将其表示为复数形式:
X[k]=∑i=0N−1x[i][cos(2πkiN)−jsin(2πkiN)]=∑i=0N−1x[i]e−j2πkiN
其中, k 的取值范围为0,1⋯N−1
【注:与实数傅里叶变换相异,实数傅里叶变换频谱范围只能取 0,1⋯N2 ,而复数傅里叶变换可以取负的频谱 −1⋯−N2 ,根据对称性,可取 k 为0,1⋯N−1】
-
频率为 k 时的频谱幅度可以表示为:
此时频率k所占据频谱范围变成 22N ,可得频谱幅度:
X^[k]=1N∑i=0N−1x[i]e−j2πkiNk∈0,1⋯N−1
4. 逆向傅里叶变换
按照傅里叶变换的思路,通过相关性计算时域的幅值,可推得以下表达式:
x[i]=∑k=0N−1X^[k][cos(2πkiN)+jsin(2πkiN)]=∑k=0N−1X^[k]ej2πkiNi∈0,1⋯N−1
直观上理解,将每个频域该时刻的幅值相加即得该时刻的幅值。如何进行数学上推导?