目錄標題
- 單變量的離散傅里葉變換
- 由取樣后的函數的連續變換得到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=?∞∑∞?fn?e?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?1?fn?e?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?=M1?m=0∑M?1?Fm?ej2πμ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?1?f(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)=M1?u=0∑M?1?F(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]