今天复习了一下连续傅里叶变换和离散傅里叶变换的关系。
定义一个间隔为a的无限冲激序列串函数 S ( t a ) = ∑ n = − ∞ ∞ δ ( n a − t ) = ∑ n = − ∞ ∞ δ ( a ( n − t a ) ) = ∑ n = − ∞ ∞ 1 a δ ( n − t a ) S(\frac{t}{a})=\sum_{n=-\infty}^{\infty}\delta (na-t) =\sum_{n=-\infty}^{\infty}\delta (a(n-\frac{t}{a}))= \sum_{n=-\infty}^{\infty}\frac{1}{a}\delta (n-\frac{t}{a}) S(at)=∑n=−∞∞δ(na−t)=∑n=−∞∞δ(a(n−at))=∑n=−∞∞a1δ(n−at),可以推导出 S ( t ) S(t) S(t)的傅里叶变换是 1 a S ( a t ) \frac{1}{a}S(at) a1S(at).再定义连续函数 f ( t ) f(t) f(t)的傅里叶变换是 F ( f ) F(f) F(f),(傅里叶变换中的 f f f是频率的符号,不是代表连续函数的 f f f符号)。对连续函数 f ( t ) f(t) f(t)进行间隔a采样,就得到 ∑ n = − ∞ ∞ f ( n a ) δ ( n a − t ) = f ( t ) × S ( t a ) \sum_{n=-\infty}^{\infty}f(na)\delta (na-t)=f(t)\times S(\frac{t}{a}) ∑n=−∞∞f(na)δ(na−t)=f(t)×S(at),对采样后的离散值做连续傅里叶变换得到 F ( f ) ∗ 1 a S ( a t ) = Δ f ∑ n = − ∞ ∞ F ( f − n Δ f ) F(f)*\frac{1}{a}S(at)=\Delta f\sum_{n=-\infty}^{\infty}F(f-n\Delta f) F(f)∗a1S(at)=Δf∑n=−∞∞F(f−nΔf).注意: Δ f = 1 a \Delta f = \frac{1}{a} Δf=a1.分析上式,若 F ( f ) F(f) F(f)有有限的截止频率B(即当 ∣ f ∣ > B |f|>B ∣f∣>B时, F ( f ) = 0 F(f)=0 F(f)=0).那么要想完整恢复原始信号,只需要 Δ f > 2 B \Delta f>2B Δf>2B,也就是采样间隔 a ≤ 1 2 B a\le\frac{1}{2B} a≤2B1,这样采样后的频率域就不会发生混叠,只需要用一个截止频率为B的低通滤波器对采样后的信号进行滤波就可完整恢复频域,(当然幅值会变成 Δ f \Delta f Δf倍)进而恢复原始信号,这就是Nyquist-Shannon采样定理。
根据信号与系统课本,离散时间傅里叶变换函数 X ( e j w ) = ∑ n = − ∞ ∞ x [ n ] e − j w n X(e^{jw})=\sum_{n=-\infty}^{\infty}x[n]e^{-jwn} X(ejw)=∑n=−∞∞x[n]e−jwn。对比连续时间傅里叶变换, X ( j w ) = ∫ − ∞ ∞ x ( t ) e − j w t d t X(jw)=\int_{-\infty}^{\infty}x(t)e^{-jwt}dt X(jw)=∫−∞∞x(t)e−jwtdt,之所以一个自变量用 e j w e^{jw} ejw一个用 j w jw jw是为了区分离散和连续,离散的傅里叶变换有周期性, w w w变化 2 π 2\pi 2π后 X ( e j w ) X(e^{jw}) X(ejw)等于原值,连续的由于没有限制t为整数,所以 w w w变化 2 π 2\pi 2π后 X ( j w ) X(jw) X(jw)不等于原值。
再考虑定义 x [ n ] = f ( n a ) , x ( t ) = ∑ n = − ∞ ∞ x [ n ] δ ( n a − t ) x[n]=f(na),x(t)=\sum_{n=-\infty}^{\infty}x[n]\delta (na-t) x[n]=f(na),x(t)=∑n=−∞∞x[n]δ(na−t),代入 X ( j w ) X(jw) X(jw)公式化简,可得到 X ( j w ) = ∑ n = − ∞ ∞ x [ n ] e − j w n a X(jw)=\sum_{n=-\infty}^{\infty}x[n]e^{-jwna} X(jw)=∑n=−∞∞x[n]e−jwna,再对比 x [ n ] x[n] x[n]的离散时间傅里叶变换 X ( e j w ) X(e^{jw}) X(ejw),我们可以知道 X ( j w ) = X ( e j w a ) X(jw)=X(e^{jwa}) X(jw)=X(ejwa),这说明对连续函数 f ( t ) f(t) f(t)以间隔a采样后的连续函数 x ( t ) x(t) x(t)对应的序列 x [ n ] x[n] x[n], x [ n ] x[n] x[n]的离散时间傅里叶变换 X ( e j w ) X(e^{jw}) X(ejw)与 x ( t ) x(t) x(t)连续时间傅里叶变换 X ( j w ) X(jw) X(jw)的函数图像形状是一样的,只是 X ( e j w ) X(e^{jw}) X(ejw)函数图像横坐标被压缩了a倍。 我们又已知 X ( j w ) = Δ f ∑ n = − ∞ ∞ F ( f − n Δ f ) X(jw)=\Delta f\sum_{n=-\infty}^{\infty}F(f-n\Delta f) X(jw)=Δf∑n=−∞∞F(f−nΔf), X ( e j w a ) X(e^{jwa}) X(ejwa)中 w w w周期是 2 π a \frac{2\pi}{a} a2π,又因为 Δ f ∑ n = − ∞ ∞ F ( f − n Δ f ) \Delta f\sum_{n=-\infty}^{\infty}F(f-n\Delta f) Δf∑n=−∞∞F(f−nΔf)中 f f f周期是 Δ f \Delta f Δf,而 w = 2 π f w=2\pi f w=2πf,可以推出 2 π Δ f = 2 π a 2\pi\Delta f=\frac{2\pi}{a} 2πΔf=a2π.最终又得到 Δ f = 1 a \Delta f = \frac{1}{a} Δf=a1.(这一段是废话)
我们的计算机中对 x [ n ] x[n] x[n]做的是离散傅里叶变换,公式是 X ( k ) = ∑ n = 0 N − 1 x [ n ] e − j 2 π N k n X(k)=\sum_{n=0}^{N-1}x[n]e^{-j\frac{2\pi}{N}kn} X(k)=∑n=0N−1x[n]e−jN2πkn,观察这个公式,与离散时间傅里叶级数很像,离散时间傅里叶级数公式是: a k = 1 N ∑ n = 0 N − 1 x [ n ] e − j k ( 2 π / N ) n a_k=\frac{1}{N}\sum_{n=0}^{N-1}x[n]e^{-jk(2\pi/N)n} ak=N1∑n=0N−1x[n]e−jk(2π/N)n,只相差了一个系数 1 N \frac{1}{N} N1,因此我们只需要对 x [ n ] x[n] x[n]做离散时间傅里叶级数,然后再乘以 N N N就得到离散傅里叶变换。离散时间傅里叶级数的前提是序列 x [ n ] x[n] x[n]是无限长周期序列。因此要对计算机存储的有限长序列 x [ n ] x[n] x[n]做周期延拓。首先区分三个变量符号表示: x [ n ] x[n] x[n]是计算机存储的有限长序列,长度为 N N N, x ′ [ n ] x'[n] x′[n]是 x [ n ] x[n] x[n]拓展的数学上存在的无限长有限持续的序列,当 0 ≤ n < N 0\le n< N 0≤n<N时, x ′ [ n ] = x [ n ] x'[n]=x[n] x′[n]=x[n],否则 x ′ [ n ] = 0 x'[n]=0 x′[n]=0。 x ~ ′ [ n ] \tilde{x}'[n] x~′[n]为无限拓展的周期序列, 0 ≤ n < N 0\le n< N 0≤n<N时, x ~ ′ [ n ] = x [ n ] \tilde{x}'[n]=x[n] x~′[n]=x[n], x ~ ′ [ n ] = x ~ ′ [ n + N ] \tilde{x}'[n]=\tilde{x}'[n+N] x~′[n]=x~′[n+N].考虑 x ~ ′ [ n ] \tilde{x}'[n] x~′[n]离散傅里叶级数表示, a k = 1 N ∑ n = 0 N − 1 x ~ ′ [ n ] e − j k ( 2 π / N ) n = 1 N ∑ n = 0 N − 1 x ′ [ n ] e − j k ( 2 π / N ) n = 1 N ∑ n = − ∞ ∞ x ′ [ n ] e − j k ( 2 π / N ) n = 1 N X ′ ( e j k w 0 ) a_k=\frac{1}{N}\sum_{n=0}^{N-1}\tilde{x}'[n]e^{-jk(2\pi/N)n}=\frac{1}{N}\sum_{n=0}^{N-1}x'[n]e^{-jk(2\pi/N)n}=\frac{1}{N}\sum_{n=-\infty}^{\infty}x'[n]e^{-jk(2\pi/N)n}=\frac{1}{N}X'(e^{jkw_0}) ak=N1∑n=0N−1x~′[n]e−jk(2π/N)n=N1∑n=0N−1x′[n]e−jk(2π/N)n=N1∑n=−∞∞x′[n]e−jk(2π/N)n=N1X′(ejkw0).
上式我们可以知道对计算机中存储的序列 x [ n ] x[n] x[n]做离散傅里叶变换实质得到 1 N X ′ ( e j k w 0 ) × N = X ′ ( e j k w 0 ) \frac{1}{N}X'(e^{jkw_0})\times N=X'(e^{jkw_0}) N1X′(ejkw0)×N=X′(ejkw0),也就是对 X ′ ( e j w ) X'(e^{jw}) X′(ejw)在 [ 0 , 2 π ) [0,2\pi) [0,2π)做N个点等间隔采样,如果序列 x [ n ] x[n] x[n]来自连续函数 f ( t ) f(t) f(t)的等间隔a采样(即 x [ n ] = f ( n a ) x[n]=f(na) x[n]=f(na)),令 x ( t ) = ∑ n = 0 N − 1 x [ n ] δ ( n a − t ) = ∑ n = − ∞ ∞ x ′ [ n ] δ ( n a − t ) x(t)=\sum_{n=0}^{N-1}x[n]\delta (na-t)=\sum_{n=-\infty}^{\infty}x'[n]\delta (na-t) x(t)=∑n=0N−1x[n]δ(na−t)=∑n=−∞∞x′[n]δ(na−t),则 X ( j w ) = ∑ n = 0 N − 1 x [ n ] e − j w n a = ∑ n = − ∞ ∞ x ′ [ n ] e − j w n a = X ′ ( e j w a ) X(jw)=\sum_{n=0}^{N-1}x[n]e^{-jwna}=\sum_{n=-\infty}^{\infty}x'[n]e^{-jwna}=X'(e^{jwa}) X(jw)=∑n=0N−1x[n]e−jwna=∑n=−∞∞x′[n]e−jwna=X′(ejwa)。我们有以下逻辑:对计算机中存储的序列 x [ n ] x[n] x[n]做离散傅里叶变换得到 X ′ ( e j w ) X'(e^{jw}) X′(ejw)的 N N N个采样点,这 N N N个采样点的横坐标的 k w 0 kw_0 kw0实质对应 X ( j w ) X(jw) X(jw)的 w = k w 0 a w=\frac{kw_0}{a} w=akw0,即 f = k N a f=\frac{k}{Na} f=Nak,且 X ( j w ) = Δ f ∑ n = − ∞ ∞ F ′ ( f − n Δ f ) X(jw)=\Delta f\sum_{n=-\infty}^{\infty}F'(f-n\Delta f) X(jw)=Δf∑n=−∞∞F′(f−nΔf). F ′ ( f ) F'(f) F′(f)是连续函数 f ( t ) f(t) f(t)截取 [ 0 , ( N − 1 ) a ] [0,(N-1)a] [0,(N−1)a]后的有间断点的连续函数 f ′ ( t ) f'(t) f′(t)的傅里叶变换,为了保证 F ′ ( f ) F'(f) F′(f)傅里叶逆变换后在区间 [ 0 , ( N − 1 ) a ] [0,(N-1)a] [0,(N−1)a]能收敛到 f ′ ( t ) f'(t) f′(t),可以在 t = ( N − 1 2 ) a t=(N-\frac{1}{2})a t=(N−21)a截断,既保证不影响 f ( N a ) = 0 f(Na)=0 f(Na)=0,又保证在区间 [ 0 , ( N − 1 ) a ] [0,(N-1)a] [0,(N−1)a]能收敛到 f ′ ( t ) f'(t) f′(t)。在mathematica验证通过。