文章目录
前言
一个动力学信号的描述方式有两种,一种是时间域的描述,另外一种是频率域的描述。在时间域,以时间为横坐标,可以研究信号随时间的变化过程,如速度、加速度。在频域,以频率为横坐标,信号被不同频率的谐波描述,可以研究不同频率下信号幅值的分布。根据信号类型的不同(周期信号,非周期信号,离散信号等),时-频变换关系有所区别,涉及到傅里叶级数(Fourier Series,FS)、傅里叶变换(Fourier Transform,FT)、离散时间的傅里叶变换(discrete-time Fourier Transform,DTFT)等,而这些变换方法本身又有一定的关联。商业计算软件中,最常用的时-频处理方法是快速傅里叶变换方法(Fast Fourier Transform,FFT)。FFT与上述FS、FT和DTFT之间的关系,以及时-频变换中的信号失真问题是本文重点计算的内容。
本文的理论来源于Siu-Kui Au的《Operational Modal Analysis》,感兴趣的可以阅读原版推导。受作者水平所限,部分内容再加工过程中可能出现错误,欢迎批评指正。
1、 周期信号的傅里叶级数
1.1 周期信号的多种傅里叶表示形式
根据傅里叶理论,对于任何周期为T的周期信号 x ( t ) x(t) x(t) 都可以表示为傅里叶级数(Fourier Series,FS)的形式
x ( t ) = a 0 + ∑ k = 1 ∞ a k cos ω ˉ k t + ∑ k = 1 ∞ b k sin ω ˉ k t ω ˉ k = 2 π k T (1) x\left(t\right)=a_0+\sum_{k=1}^{\infty}{a_k\cos{
{\bar{\omega}}_kt}}+\sum_{k=1}^{\infty}{b_k\sin{
{\bar{\omega}}_kt}}\ \ \ \ \ \ {\bar{\omega}}_k=\frac{2\pi k}{T} \tag{1} x(t)=a0+k=1∑∞akcosωˉkt+k=1∑∞bksinωˉkt ωˉk=T2πk(1)
傅里叶级数表示将周期信号分解为周期为 T / k T/k T/k 的无穷个简谐信号的和,当然也要考虑不随时间变化的常数项。对于特定的周期信号而言有限个简谐响应的和即可完成信号的模拟。
进一步可以将式(1)表示为幅值和相位的形式
x ( t ) = a 0 + ∑ k = 1 ∞ a k 2 + b k 2 cos ( ω ˉ k t − ϕ k ) ϕ k = arctan b k a k (2) x\left(t\right)=a_0+\sum_{k=1}^{\infty}{\sqrt{a_k^2+b_k^2}\cos{\left({\bar{\omega}}_kt-\phi_k\right)}}\ \ \ \phi_k=\arctan{\frac{b_k}{a_k}} \tag{2} x(t)=a0+k=1∑∞ak2+bk2cos(ωˉkt−ϕk) ϕk=arctanakbk(2)
利用欧拉公式,可以将式(1)表示为复指数的形式
x ( t ) = c 0 + ∑ k = 1 ∞ c k e i ω ˉ k t + ∑ k = 1 ∞ c − k e − i ω ˉ k t (3) x\left(t\right)=c_0+\sum_{k=1}^{\infty}{c_ke^{i{\bar{\omega}}_kt}}+\sum_{k=1}^{\infty}{c_{-k}e^{-i{\bar{\omega}}_kt}} \tag{3} x(t)=c0+k=1∑∞ckeiωˉkt+k=1∑∞c−ke−iωˉkt(3)
进一步简写为
x ( t ) = ∑ k = − ∞ ∞ c k e i ω ˉ k t ω ˉ k = 2 π k T (4) x\left(t\right)=\sum_{k=-\infty}^{\infty}{c_ke^{i{\bar{\omega}}_kt}}\ \ \ \ {\bar{\omega}}_k=\frac{2\pi k}{T} \tag{4} x(t)=k=−∞∑∞ckeiωˉkt ωˉk=T2πk(4)
复指数形式的傅里叶系数 { c k } k = − ∞ ∞ \left\{c_k\right\}_{k=-\infty}^\infty {
ck}k=−∞∞也是复数,与式(1)的系数关系为
c 0 = a 0 c k = 1 2 ( a k − i b k ) c − k = 1 2 ( a k + i b k ) (5) c_0=a_0 \\\ c_k=\frac{1}{2}(a_k-ib_k) \\\ c_{-k}=\frac{1}{2}(a_k+ib_k) \tag{5} c0=a0 ck=21(ak−ibk) c−k=21(ak+ibk)(5)
1.2 周期信号傅里叶级数系数的计算
对式(1)在周期 t ∈ − T / 2 , T / 2 t\in{-T/2,T/2} t∈−T/2,T/2 内积分,可以计算常数 a 0 a_0 a0 。分别对式(1)左右乘以 cos ω ˉ k t \cos{
{\bar{\omega}}_kt} cosωˉkt或者 sin ω ˉ k t \sin{
{\bar{\omega}}_kt} sinωˉkt ,并结合三角函数的正交性,可以计算系数 a k a_k ak 和 b k b_k bk ,计算结果为
a 0 = 1 T ∫ − T / 2 T / 2 x ( t ) d t a k = 2 T ∫ − T / 2 T / 2 x ( t ) cos ω ˉ k t d t b k = 2 T ∫ − T / 2 T / 2 x ( t ) sin ω ˉ k t d t (6) a_0=\frac{1}{T}\int_{-T/2}^{T/2}{x(t)dt}\\\ a_k=\frac{2}{T}\int_{-T/2}^{T/2}{x(t)\cos{
{\bar{\omega}}_kt}dt}\\\ b_k=\frac{2}{T}\int_{-T/2}^{T/2}{x(t)\sin{
{\bar{\omega}}_kt}dt} \tag{6} a0=T1∫−T/2T/2x(t)dt ak=T2∫−T/2T/2x(t)cosωˉktdt bk=T2∫−T/2T/2x(t)sinωˉktdt(6)
通过式(5-6)可以计算得到
c k = 1 T ∫ − T / 2 T / 2 x ( t ) e − i ω ˉ k t d t (7) c_k=\frac{1}{T}\int_{-T/2}^{T/2}{x(t)e^{-i{\bar{\omega}}_kt}dt}\tag{7} ck=T1∫−T/2T/2x(t)e−iωˉktdt(7)
另外系数 c_k 具有共轭对称的性质即
c − k = c ˉ k (8) c_{-k}={\bar{c}}_k \tag{8} c−k=cˉk(8)
其中 x ˉ {\bar{x}} xˉ 表示取共轭。
1.3 周期信号的Parseval能量等式
根据Parseval能量等式,信号的时域和频域应该具有相同能量。对于周期信号而言,在一个周期内其信号的能力是有限的,即 ∫ − T / 2 T / 2 x 2 ( t ) d t < ∞ \int_{-T/2}^{T/2}{x^2(t)dt}<\infty ∫−T/2T/2x2(t)dt<∞ 。其时-频域的能量等式为
1 T ∫ − T / 2 T / 2 x 2 ( t ) d t = a 0 2 + 1 2 ∑ k = 1 ∞ ( a k 2 + b k 2 ) = ∑ k = − ∞ ∞ ∣ c k ∣ 2 (9) \frac{1}{T}\int_{-T/2}^{T/2}{x^2(t)dt}=a_0^2+\frac{1}{2}\sum_{k=1}^{\infty}{(a_k^2+b_k^2)}=\sum_{k=-\infty}^{\infty}\left|c_k\right|^2\tag{9} T1∫−T/2T/2x2(t)dt=a02+21k=1∑∞(ak2+bk2)=k=−∞∑∞<