这里的讨论主要是对几个基本公式的简易推导。先有一个简单的结论吧,就是
时域离散,频域周期
时域周期,频域离散
时域不周期,频域不离散
然后这个结论会在接下来的几个式子中得到证明。(待续)
傅里叶发现形如x(t) = a k e s t a_ke^{st} akest在经过卷积之后形式是没有发生改变的,改变的是前面的系数如 y ( t ) = ∫ − ∞ ∞ x ( t − τ ) h ( τ ) d τ . \ y(t)= \int_{-\infty}^\infty x(t-\tau)h(\tau)d\tau\,. y(t)=∫−∞∞x(t−τ)h(τ)dτ.把x(t)带进去之后的是 y ( t ) = H ( s ) e s t 且 H ( s ) = ∫ − ∞ ∞ h ( τ ) e − s τ d τ y(t) = H(s)e^{st}且H(s)=\int_{-\infty}^\infty h(\tau)e^{-s\tau}d\tau y(t)=H(s)est且H(s)=∫−∞∞h(τ)e−sτdτ所以可以想是否普通的函数也能够分解成有若干这种形式的函数的和
在学高数的时候我们就已经学过 :满足迪利克雷条件的函数可以进行傅里叶的分解,不过那个基本上是进行三角函数的分解它的复指数形式是
x ~ ( t ) = ∑ k = − ∞ ∞ a k e j k ω 0 t = ∑ k = − ∞ ∞ a k e j k ( 2 π / T ) t \tilde{x}(t)=\sum_{k=-\infty}^{\infty}a_ke^{jk\omega_0 t}=\sum_{k=-\infty}^{\infty}a_ke^{jk(2\pi/T)t} x~(t)=k=−∞∑∞akejkω0t=k=−∞∑∞akejk(2π/T)t
这个形式是比较好理解的,因为它能够最直接的联系起我们以前学的知识。同理求 a k a_k ak的话只需要利用他的正交性,即
a k = 1 T ∫ T x ( t ) e − j k ω 0 t a_k=\frac {1} {T} \int_Tx(t)e^{-jk\omega_0t} ak=T1∫Tx(t)e−jkω0t
a k a_k ak被称为频谱系数,这两个公式是最简单的最容易记的,接下来的公式几乎都可以以这种思想推导。然后对这个连续周期函数进行频域上的分析,我们都知道傅里叶变换的公式是
X ( j ω ) = ∫ − ∞ ∞ x ( t ) e − j ω t d t X(j\omega)=\int_{-\infty}^{\infty} x(t) e^{-j\omega t} dt X(jω)=∫−∞∞x(t)e−jωtdt
这个式子和上一个式子对比发现是
a k = 1 T X ( j ω ) ∣ ω = k ω 0 a_k = \frac{1}{T}X(j\omega)\mid _{\omega = k\omega _0} ak=T1X(jω)∣ω=kω0,OK我们继续。这个 X ( j ω ) X(j\omega) X(jω)式子看起来已经不错了,挺简洁。但是他的含义是什么呢,或者说他的图像是什么呢。这样,把前面 x ( t ) x(t) x(t)的傅里叶级数套进去,那么
X ( j ω ) = ∫ − ∞ ∞ ∑ k = − ∞ ∞ a k e j k ω 0 t e − j ω t d t X(j\omega)= \int_{-\infty}^{\infty} \sum_{k=-\infty}^{\infty}a_ke^{jk\omega_0 t} e^{-j\omega t}dt X(jω)=∫−∞∞k=−∞∑∞akejkω0te−jωtdt
然后呢,我们交换一下符号的顺序,得到以下的式子
X ( j ω ) = ∑ k = − ∞ ∞ a k ∫ − ∞ ∞ e − j ( ω − k ω 0 ) t d t X(j\omega)= \sum_{k=-\infty}^{\infty}a_k \int_{-\infty}^{\infty} e^{-j(\omega - k\omega_0)t}dt X(jω)=k=−∞∑∞ak∫−∞∞e−j(ω−kω0)tdt
然后我们又会问,这个积分怎么求啊,貌似不管怎么积都会无穷大,事实上他的确是无穷大。但是我们有一个无穷大的函数——脉冲函数。那用脉冲函数怎么表示呢?
我们想一想,什么时候会出现 ∫ − ∞ ∞ e − j ω t d t \int_{-\infty}^{\infty} e^{-j\omega t} dt ∫−∞∞e−jωtdt呢,是不是1的傅里叶变换 F ( 1 ) = 2 π δ ( ω ) {\frak F}(1) = 2\pi \delta(\omega) F(1)=2πδ(ω)啊(手写体的F打不出来),这个公式我们在积分变换这门课里面应该有讲到(假如没学过的话可以在文章的结尾看一下简单的证明过程)所以 ∫ − ∞ ∞ e − j ( ω − k ω 0 ) t d t = 2 π δ ( ω − k ω 0 ) \int_{-\infty}^{\infty} e^{-j(\omega - k\omega_0)t}dt=2\pi \delta(\omega-k\omega_0) ∫−∞∞e−j(ω−kω0)tdt=2πδ(ω−kω0)把这个式子带进去就发现
X ( j ω ) = ∑ k = − ∞ ∞ a k 2 π δ ( ω − k ω 0 ) X(j\omega)= \sum_{k=-\infty}^{\infty}a_k 2\pi \delta(\omega-k\omega_0) X(jω)=k=−∞∑∞ak2πδ(ω−kω0)
这样一看的话就比较明朗了因为 δ \delta δ函数有筛选性质, X ( j ω ) X(j\omega) X(jω)肯定是离散的,而且有值得点都位于 ω = k ω 0 \omega =k\omega_0 ω=kω0这些点,这些点得高度取决于 2 π a k 2\pi a_k 2πak或者说是取决于 a k a_k ak,(因为2 π \pi π是常量)验证了开头时域周期,频域离散,
从式子上来看这个图象是
仅在 k ω 0 k\omega_0 kω0处有值,且值的大小与 a k a_k ak有关
可能这样看还是比较比较抽象,放个图吧
已知一个周期方波函数,要画出这个周期函数得频谱密度函数,我们先求出 ω 0 = 2 π / T \omega_0 =2\pi /T ω0=2π/T,然后我们利用正交性求出 a k = 2 s i n ( k ω 0 T 1 ) T k ω 0 a_k=\frac{2sin(k\omega_0T_1)}{Tk\omega_0} ak=Tkω02sin(kω0T1)又因为 X ( j ω ) = T a k = 2 s i n ( k ω 0 T 1 ) k ω 0 = 2 s i n k ( 2 π / T ) T 1 k ω 0 = 2 s i n ω T 1 ω ∣ ω = k ω 0 X(j\omega)=Ta_k=\frac{2sin(k\omega_0T_1)}{k\omega_0} = \frac{2sink(2\pi/T) T_1}{k\omega_0} = \frac{2sin\omega T_1}{\omega} \mid_{\omega=k\omega_0} X(jω)=Tak=kω02sin(kω0T1)=kω02sink(2π/T)T1=ω2sinωT1∣ω=kω0当 T T T和 T 1 T_1 T1的关系发生变化时他的频谱密度函数是这样的
那么连续周期函数的简单讨论就这样了
这个在前面的基础上讨论就会变得简单一点了,把握一个重要的思想就是非周期函数可以看作是周期为无限长的函数有了这个思想你只需要 lim T → ∞ \lim_{T\to\infty} T→∞lim然后做适当的讨论,那我们开始吧。
假设我们先求 a k a_k ak那么利用上述的公式会发现当 T → ∞ , 1 / T → 0 , a k → 0 T\to\infty ,1/T\to0,a_k\to0 T→∞,1/T→0,ak→0说明我们不能像刚才一样显式的写出 a k a_k ak的具体值,OK,那我们就不求它,但是我们把 T T T移到等式的左边,发现 X ( j ω ) = T a k = ∫ − ∞ ∞ x ( t ) e − j ω t d t X(j\omega) = Ta_k =\int_{-\infty}^{\infty} x(t) e^{-j\omega t} dt X(jω)=Tak=∫−∞∞x(t)e−jωtdt还是可以求得的,好了,频域上的表示有了,但是 x ( t ) x(t) x(t)怎么表示呢,我们可以看看连续周期的是怎么表示的
x ( t ) = ∑ k = − ∞ ∞ a k e j k ω 0 t = ∑ k = − ∞ ∞ a k e j k ( 2 π / T ) t x(t)=\sum_{k=-\infty}^{\infty}a_ke^{jk\omega_0 t}=\sum_{k=-\infty}^{\infty}a_ke^{jk(2\pi/T)t} x(t)=k=−∞∑∞akejkω0t=k=−∞∑∞akejk(2π/T)t
可现在问题来了,我们并不知道 a k a_k ak的表达式,所以我们可以选择用 T a k Ta_k Tak麻。将上述的 Σ \Sigma Σ里面乘个T,外面除个T,有
x ( t ) = 1 T ∑ k = − ∞ ∞ ( T a k ) e j k ω 0 t = 1 T ∑ k = − ∞ ∞ X ( j ω ) e j k ω 0 t x(t)=\frac{1}{T} \sum_{k=-\infty}^{\infty}(Ta_k)e^{jk\omega_0 t}=\frac{1}{T} \sum_{k=-\infty}^{\infty} X(j\omega) e^{jk\omega_0 t} x(t)=T1k=−∞∑∞(Tak)ejkω0t=T1k=−∞∑∞X(jω)ejkω0t
接下来呢考虑到 T → ∞ T\to \infty T→∞所以 ω 0 = 2 π / T = d ω , k × ω 0 = ω , Σ 换 成 ∫ \omega_0 = 2\pi/T=d\omega,k\times\omega_0=\omega,\Sigma换成\int ω0=2π/T=dω,k×ω0=ω,Σ换成∫所以上述式子变成
x ( t ) = 1 2 π ∫ − ∞ ∞ X ( j ω ) e j k ω t d ω x(t)=\frac{1}{2\pi} \int_{-\infty}^{\infty} X(j\omega) e^{jk\omega t} d\omega x(t)=2π1∫−∞∞X(jω)ejkωtdω
OK,时域和频域的两个式子都有了,注意看表达式,时域不周期,频域不离散发现是不是对的上这句话?拿个简单的图看一下。自己随便取一个 门函数,然后直接积分就行了
时域离散的要比连续的要麻烦一点,因为时域离散的话还得考虑 ω \omega ω的周期性,形如 e j ω n e^{j\omega n} ejωn的每当在 ω \omega ω是 2 π 2\pi 2π的倍数时会发生周期性重复,所以要多考虑一点
时域离散的话是什么意思呢,我们可以这样想,就是每过单位时间后我们再进行取样。在时间t内取样n次,每次的间隔设为 Δ t \Delta t Δt,有 t = n Δ t t=n\Delta t t=nΔt再参考最开始的连续周期的情况,
x ~ ( t ) = ∑ k = − ∞ ∞ a k e j k ω 0 t = ∑ k = − ∞ ∞ a k e j k ( 2 π / T ) t \tilde{x}(t)=\sum_{k=-\infty}^{\infty}a_ke^{jk\omega_0 t} = \sum_{k=-\infty}^{\infty}a_ke^{jk(2\pi/T)t} x~(t)=k=−∞∑∞akejkω0t=k=−∞∑∞akejk(2π/T)t
将t换成n,因为 Δ t \Delta t Δt我们可以看成是一个单位1麻,即1ms,1s等等,所以替换后 Δ t \Delta t Δt可以不写,且我们只需要考虑一个周期N内的,有(最好不要写成 ω 0 \omega_0 ω0的形式,如果要的话题目中的变量关系就必须满足 ω 0 = 2 π / N \omega_0 = 2\pi/N ω0=2π/N)
x ~ [ n ] = ∑ k = < N > a k e j k ω 0 n = ∑ k = < N > a k e j k ( 2 π / N ) n \tilde{x}[n]= \sum_{k=
同理,求 a k a_k ak的话可以套用连续且周期的方法(正交性质),再把相应的字母符号换过来
a k = 1 N ∑ n = < N > x ~ [ n ] e − j k ( 2 π / N ) n a_k=\frac {1} {N} \sum_{n=
OK,原函数可以用离散时间的傅里叶级数表示了,接下来考虑频谱 X ( j ω ) X(j\omega) X(jω)怎么用 x ( n ) x(n) x(n)表示,同样的我们先写出连续周期的式子即连续时间的傅里叶变换 ( F T ) \color{red}{(FT)} (FT)
X ( j ω ) = ∫ − ∞ ∞ x ( t ) e − j ω t d t X(j\omega)=\int_{-\infty}^{\infty} x(t) e^{-j\omega t} dt X(jω)=∫−∞∞x(t)e−jωtdt
把 t = n Δ t t=n\Delta t t=nΔt带进去( n Δ t n\Delta t nΔt中的 Δ t \Delta t Δt取作单位1, d t 用 Δ t dt用\Delta t dt用Δt带)有离散时间的傅里叶变换
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n ( D T F T ) X(e^{j\omega})=\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n}\quad \quad \color{red}{(DTFT)} X(ejω)=n=−∞∑∞x[n]e−jωn(DTFT)
OK,我们看这个式子和 a k a_k ak的关系,发现这是 a k = 1 N X ( e j ω ) ∣ ω = k ω 0 a_k=\frac{1}{N}X(e^{j\omega})\mid_{\omega=k\omega_0} ak=N1X(ejω)∣ω=kω0,可能会有小小的疑问,为啥 Σ \Sigma Σ相加的区间一个是无穷,一个是N,其实 a k a_k ak也可以写成无穷大的区间,只不过因为 ω \omega ω的周期性,所以就只写一个周期的,这个周期之外的 a k a_k ak是一样的。再带进去就有
x ~ [ n ] = ∑ k = < N > 1 N X ( e j k ω 0 ) e j k ( 2 π / N ) n \tilde{x}[n] = \sum_{k=
这个可以再化简一下,就是把1/N再拆开成 ω 0 / 2 π \omega_0 /2\pi ω0/2π,所以原式变为
x ~ [ n ] = 1 2 π ∑ k = < N > X ( e j k ω 0 ) e j k ( 2 π / N ) n ω 0 \tilde{x}[n] =\frac{1}{2\pi} \sum_{k=
虽然我们现在把时域上和频域上的表达式都求出来了,但是频谱图的样子却依然是比较模糊,我们同样是考虑在连续时间上我们是怎么求得,当 x ( t ) = e j ω 0 t x(t)=e^{j\omega_0 t} x(t)=ejω0t时,它的频谱图是 X ( j ω ) = 2 π δ ( ω − ω 0 ) X(j\omega)=2\pi \delta(\omega-\omega_0) X(jω)=2πδ(ω−ω0)所以我们考虑当 x [ n ] = e j ω 0 n x[n]=e^{j\omega_0n} x[n]=ejω0n时 X ( e j ω ) ? = 2 π δ ( ω − ω 0 ) X(e^{j\omega} )\quad?= \quad 2\pi \delta(\omega-\omega_0) X(ejω)?=2πδ(ω−ω0)呢?显然,我们得考虑到 w w w的在离散时间下的周期性,即当 ω = ω 0 + 2 l π \omega = \omega_0 + 2l\pi ω=ω0+2lπ时是相同的,所以可以猜测 X ( e j ω ) = 2 π δ ( ω − ω 0 − 2 l π ) X(e^{j\omega} )= 2\pi \delta(\omega-\omega_0-2l\pi) X(ejω)=2πδ(ω−ω0−2lπ),l为任意整数。经过证明这个是正确的,所以有
x [ n ] = ∑ k = < N > a k e j k ( 2 π / N ) n x[n]= \sum_{k=
X ( j ω ) = ∑ k = − ∞ ∞ 2 π a k δ ( ω − 2 π k N ) X(j\omega)= \sum_{k=-\infty}^{\infty}2\pi a_k\delta(\omega-\frac{2\pi k}{N}) X(jω)=k=−∞∑∞2πakδ(ω−N2πk)所以可得周期函数的频谱图是周期的,也满足时域离散,频域周期这句话
同样非周期的情况我们也可以考虑成是周期无限大的周期函数即有 lim N → ∞ \lim N\to \infty limN→∞,将上述几个比较重要的公式的周期变为无限大有, ω 0 = 2 π / N → 0 , 即 有 k ω 0 = ω \omega_0 = 2\pi/N \to0, 即有k\omega_0 = \omega ω0=2π/N→0,即有kω0=ω,带入有:
x [ n ] = 1 2 π ∫ − ∞ ∞ X ( e j ω ) e j ω n d ω {x}[n] =\frac{1}{2\pi} \int_{-\infty}^{\infty} X(e^{j\omega}) e^{j\omega n}d\omega x[n]=2π1∫−∞∞X(ejω)ejωndω
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n ( D T F T ) X(e^{j\omega})=\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n}\quad \quad \color{red}{(DTFT)} X(ejω)=n=−∞∑∞x[n]e−jωn(DTFT)
用接下来的方式推导给一个函数 f ( t ) = e − a ∣ t ∣ , a > 0 f(t)= e^{-a\mid t \mid},a>0 f(t)=e−a∣t∣,a>0然后对他做傅里叶变换可得 F ( j ω ) = 2 a a 2 + ω 2 {\frak F}(j\omega )= \frac{2a}{a^2+\omega^2} F(jω)=a2+ω22a然后发现当 a → 0 , f ( t ) → 1 a\to0,f(t)\to1 a→0,f(t)→1
F ( j ω ) = { 0 , if ω ≠ 0 + ∞ , if ω = 0 {\frak F}(j\omega)= \begin{cases} 0, & \text {if $\omega \not= 0$ } \\ +\infty, & \text{if $\omega = 0$ } \end{cases} F(jω)={0,+∞,if ω=0 if ω=0
但此时假如直接让 F ( j ω ) = δ ( ω ) {\frak F}(j\omega)=\delta (\omega) F(jω)=δ(ω)是不正确的,因为你不知道这是“多少倍”的无穷大,所以接下来求 δ ( ω ) \delta(\omega) δ(ω)前面的系数。对 F ( j ω ) {\frak F}(j\omega) F(jω)进行积分有
lim a → 0 ∫ − ∞ ∞ F ( j ω ) d ω = lim a → 0 ∫ − ∞ ∞ 1 1 + ( ω a ) 2 d ω = lim a → 0 2 a r c t a n ω a ∣ − ∞ ∞ = 2 π \lim_{a\to0} \int_{-\infty}^{\infty} {\frak F}(j\omega) d\omega = \lim_{a\to0} \int_{-\infty}^{\infty} \frac{1}{1+({\frac{\omega }a)}^2} d\omega = \lim_{a\to0} 2arctan\frac{\omega}{a} \mid_{-\infty}^{\infty} = 2\pi a→0lim∫−∞∞F(jω)dω=a→0lim∫−∞∞1+(aω)21dω=a→0lim2arctanaω∣−∞∞=2π所以 F ( j ω ) → 2 π δ ( ω ) {\frak F}(j\omega) \to2\pi \delta(\omega) F(jω)→2πδ(ω)所以 F ( 1 ) = 2 π δ ( ω ) {\frak F}(1) = 2\pi\delta(\omega) F(1)=2πδ(ω)。简易的证明就完成了,然后借助这个函数,还可以构造出 s y n ( t ) syn(t) syn(t)和阶跃函数 u ( t ) u(t) u(t),然后同样用这个趋近思想得到 F ( s y n ( t ) ) 和 F ( u ( t ) ) {\frak F}(syn(t)) 和 {\frak F}(u(t)) F(syn(t))和F(u(t))
此时我们考虑到,t我们把它离散化了( t = n Δ t t=n\Delta t t=nΔt),但是 ω \omega ω还没有离散化,在计算机内是无法进行储存的,我们一样这样考虑,在每个周期内取样N次,所以 ω = k 2 π T \omega=k \frac{2\pi}{T} ω=kT2π,再者,上面的这个DTFT在频率变化时是以 2 π 2\pi 2π为周期的,所以我们只取 k = 0 , 1 , 2... N − 1 k=0,1,2...N-1 k=0,1,2...N−1有
X ( k ) = ∑ n = < N > x [ n ] e − j k ( 2 π / N ) n (k=0,1...N-1) ( D F T ) X(k)=\sum_{n=