目录标题
- 单变量的离散傅里叶变换
- 由取样后的函数的连续变换得到DFT
- 取样和频率间隔的关系
单变量的离散傅里叶变换
由取样后的函数的连续变换得到DFT
对原函数的变换取样后的业的发展的变换F~(μ)\tilde F(\mu)F~(μ),但未给出取样后的函数f~(t)\tilde f(t)f~(t)的变换F~(μ)\tilde F(\mu)F~(μ)的表达式。
F~(μ)=∫−∞∞f~(t)e−j2πμtdt(4.39)\tilde F(\mu) = \int_{-\infty}^{\infty} \tilde f(t) e^{-j2\pi\mu t} dt\tag{4.39}F~(μ)=∫−∞∞f~(t)e−j2πμtdt(4.39)
F~(μ)=∫−∞∞f~(t)e−j2πμtdt=∫−∞∞∑n=−∞∞f(t)δ(t−nΔT)e−j2πμtdt=∑n=−∞∞∫−∞∞f(t)δ(t−nΔT)e−j2πμtdt=∑n=−∞∞fne−j2πμnΔT(4.40)\begin{aligned} \tilde F(\mu) & = \int_{-\infty}^{\infty} \tilde f(t) e^{-j2\pi\mu t} dt = \int_{-\infty}^{\infty} \sum_{n = -\infty}^{\infty} f(t) \delta(t - n\Delta T) e^{-j2\pi\mu t} dt\\ & = \sum_{n = -\infty}^{\infty} \int_{-\infty}^{\infty} f(t) \delta(t - n\Delta T) e^{-j2\pi\mu t} dt \\ & = \sum_{n = -\infty}^{\infty} f_n e^{-j2\pi\mu n \Delta T} \end{aligned} \tag{4.40}F~(μ)=∫−∞∞f~(t)e−j2πμtdt=∫−∞∞n=−∞∑∞f(t)δ(t−nΔT)e−j2πμtdt=n=−∞∑∞∫−∞∞f(t)δ(t−nΔT)e−j2πμtdt=n=−∞∑∞fne−j2πμnΔT(4.40)
μ=mMΔT,m=0,1,2,⋯,M−1(4.41)\mu = \frac{m}{M\Delta T}, \quad m = 0, 1, 2, \cdots, M-1 \tag{4.41}μ=MΔTm,m=0,1,2,⋯,M−1(4.41)
下面表达式就是我们所求的离散傅里叶变换
Fm=∑n=0M−1fne−j2πμnm/M,m=0,1,2,⋯,M−1(4.42)F_m = \sum_{n = 0}^{M - 1} f_n e^{-j2\pi\mu n m/M}, \quad m = 0, 1, 2, \cdots, M-1 \tag{4.42}Fm=n=0∑M−1fne−j2πμnm/M,m=0,1,2,⋯,M−1(4.42)
离散傅里叶反变换
fn=1M∑m=0M−1Fmej2πμnm/M,n=0,1,2,⋯,M−1(4.43)f_n = \frac{1}{M}\sum_{m = 0}^{M - 1} F_m e^{j2\pi\mu n m/M}, \quad n = 0, 1, 2, \cdots, M-1 \tag{4.43}fn=M1m=0∑M−1Fmej2πμnm/M,n=0,1,2,⋯,M−1(4.43)
一般二维情况下,使用xxx和yyy表示图像坐标变量并使用uuu和vvv表示频率变量更为直观。离散傅里叶变换对可以改写为
F(u)=∑x=0M−1f(x)e−j2πux/M,u=0,1,2,⋯,M−1(4.44)F(u) = \sum_{x = 0}^{M - 1} f(x) e^{-j2\pi u x/M}, \quad u = 0, 1, 2, \cdots, M-1 \tag{4.44}F(u)=x=0∑M−1f(x)e−j2πux/M,u=0,1,2,⋯,M−1(4.44)
离散傅里叶反变换
f(x)=1M∑u=0M−1F(u)ej2πux/M,x=0,1,2,⋯,M−1(4.45)f(x) = \frac{1}{M}\sum_{u = 0}^{M - 1} F(u) e^{j2\pi u x/M}, \quad x = 0, 1, 2, \cdots, M-1 \tag{4.45}f(x)=M1u=0∑M−1F(u)ej2πux/M,x=0,1,2,⋯,M−1(4.45)
取样和频率间隔的关系
# 例4.4 计算DFT
# x = 0, 1, 2, 3
# f(x) = 1, 2, 4, 4
x = np.arange(4)
y = np.array([1, 2, 4, 4])
fft = np.fft.fft(y)
print('DFT')
print(fft)# IDFT反变换
ifft = np.fft.ifft(fft)
print('IDFT')
print(ifft)
DFT
[11.+0.j -3.+2.j -1.+0.j -3.-2.j]
IDFT
[1.+0.j 2.+0.j 4.+0.j 4.+0.j]