跳转至

傅立叶变换

傅立叶级数

P 为周期的周期函数 s(x) 可以分解为一系列三角函数之和:

s(x)=A0+n=1(Ancos(2πnxP)+Bnsin(2πnxP))

为了计算系数 AnBn,在一个周期上计算如下积分:

A0=1PPs(x)dxAn=2PPs(x)cos(2πnxP)dxBn=2PPs(x)sin(2πnxP)dx

实际上是在计算 s(x) 在由 cos(2πnxP)sin(2πnxP) 组成的正交函数集上的分解。定义正交之前,首先需要定义内积:两个函数的内积定义为在一个周期上两个函数的乘积的积分:

(fg)(x)=Pf(x)g(x)dx

需要注意 A0 项的系数中分子是 1,其余项的系数中分子是 2。这个系数可以用内积来计算出来。

根据欧拉公式:

eix=cos(x)+isin(x)

可得

cos(x)=eix+eix2sin(x)=eixeix2i

带入到傅立叶级数展开式:

s(x)=A0+n=1(Ancos(2πnxP)+Bnsin(2πnxP))=A0+n=1(Ane2πnxiP+e2πnxiP2+Bne2πnxiPe2πnxiP2i)=A0+n=1((AnBni2)e2πnxiP+An+Bni2e2πnxiP)

Fn=AnBni2,把 AnBn 的定义延拓到 n 为负数,发现:

An=2PPs(x)cos(2πnxP)dx=AnBn=2PPs(x)sin(2πnxP)dx=Bn

再带入傅立叶展开式,得到

s(x)=A0+n=1((AnBni2)e2πnxiP+An+Bni2e2πnxiP)=A0+n=1((AnBni2)e2πnxiP+AnBni2e2π(n)xiP)=A0+n=1((AnBni2)e2πnxiP)+n=1(AnBni2e2π(n)xiP)=A0+n=1((AnBni2)e2πnxiP)+n=1(AnBni2e2πnxiP)

F0=A0,那么上式可以写成:

s(x)=n=Fne2πnxiP

其中 F0=A0=1PPs(x)dx,同时:

Fn=AnBni2=12(2PPs(x)cos(2πnxP)dx2PPs(x)sin(2πnxP)idx)=1PPs(x)e2πnxiPdx

这个通项公式对 n=0 也成立。因此复指数形式的傅立叶系数为:

s(x)=n=Fne2πnxiPFn=1PPs(x)e2πnxiPdx

傅立叶变换

傅立叶级数:对周期函数的分解。

非周期函数,可以看成是周期无穷大的周期函数,也就是 P。但是这样计算出来的 Fn 也趋向于零。如果去掉系数 1P,把积分上下限替换为正负 ,进行代换 ξ=nP,就可以把傅立叶级数:

Fn=1PPs(x)e2πnxiPdx

变成傅立叶变换 Fourier Transform:给定 f(x),傅立叶变换得到 f^(ξ)

f^(ξ)=f(x)e2πiξxdx

Inverse Fourier Transform:给定 f^(ξ),傅立叶逆变换得到 f(x)

f(x)=f^(ξ)e2πiξxdξ

另一种傅立叶变换的表示形式,把 2πξ 换元为 ω

f^(ω)=f(x)eiωxdx
f(x)=12πf^(ω)eiωxdω

注意逆变换多了一个系数 12π。如果希望保持对称性,可以在正变换的时候也乘一个系数 12π

f^(ω)=12πf(x)eiωxdx
f(x)=12πf^(ω)eiωxdω

傅立叶级数和傅立叶变换的对比

傅立叶级数:

  • 针对周期函数
  • 离散的频率
  • 得到频率分量上的数值

傅立叶变换:

  • 针对非周期函数
  • 连续的频率
  • 得到频率分量上的密度

采样

理想采样是在时域上,以固定的采样间隔 T 对信号进行采样,相当于是给信号乘以一个冲激串函数(Dirac comb) p(t)。在时域上乘法,等价于频域上做卷积。冲激串函数 p(t) 在频域上是 P(ω),它依然是一个冲激串:

p(t)=n=δ(tnT)
P(ω)=2πTn=δ(ω2πTn)

注:根据傅立叶变换的形式不同,这里的系数可能不完全一样,例如可能没有 2π 的因子。

因此理想采样在频域上相当于是对信号的频域以 2π/T 为周期进行周期性延拓。

周期性延拓的时候,可能会出现频谱的混叠现象。如果发生了混叠,那么就无法从采样后的信号恢复出原始信号。为了不发生混叠,需要保证采样间隔满足 Nyquist 采样定理。

如果没有发生混叠,可以采用理想低通滤波器,去掉周期性延拓出来的多余频谱,恢复出采样前的原始信号。

离散时间傅立叶变换

离散时间傅立叶变换(DTFT)是傅立叶变换的离散时间版本:时域上是离散的。频域依然是连续的。离散时间傅立叶变换是傅立叶变换的特殊形式,它把一个离散的无限长序列 x[n],对应到单位时间周期的冲激串函数的幅度上,得到 f(t)=n=x[n]δ(tn),再进行傅立叶变换:

f^(ω)=f(t)eiωtdt=(n=x[n]δ(tn))eiωtdt=n=x[n]eiωn

为了简化,直接要求冲激串函数的周期为 1,这样就把采样率归一化了。

如果限定离散序列 x[n] 为有限长度,那么相当于对时域乘以一个矩形窗。假设有限的长度为 L,也就是 n 的取值范围从所有整数缩小到 {0,1,,L1},那么有限长度离散序列的离散时间傅立叶变换为:

X2π(ω)=n=0L1x[n]eiωn

离散傅立叶变换

离散傅立叶变换(DFT)是在离散时间傅立叶变换的基础上,在频谱上 [0,2π) 频率范围内均匀地取 N 个点的值。也就是说,把上式的 ω 替换为 2πkN,就得到了离散傅立叶变换的公式:

Xk=n=0L1xnei2πkNn

通常会让 N(频域上点的个数)等于 L(时域上点的个数)。

参考

评论