全文字数674 | 阅读需要3分钟
关键词:傅里叶变换,FFT
导读
使用傅里叶变换就必须假设输入信号是一个周期信号。如果不是周期信号就会引入误差。加窗函数(Windowing Function)可以减少误差。
历史
约瑟夫傅里叶(1768-1830)【1】在研究热传导的时候首先提出用正弦周期函数来代替任何连续函数。在他的理论基础上,人们完善了傅里叶级数;【2】傅里叶变换、离散傅里叶变换(DFT)、正弦变换,余弦变换等。计算机出现后,人们又发明了快速傅里叶算法(FFT)。
离散傅里叶变换(Discrete Fourier Transform, DFT)
N个点x[n]的傅里叶的正反变换定义为:
简单的数学推算可以得到:x[i+N] = x[i],即x[n]是一个周期函数。所以只要使用傅里叶变换,输入信号x[n]就被假设为一个周期函数,周期是N个采样点。如果采样间隔是Δt,周期就是T=N*Δt。
如何处理非周期信号
在实际应用中,如果x[n]不是周期信号图 1,
图 1 x[n]被采集的信号
但傅里叶变换会假设x[n]是周期信号图 2,
图 2 x[n]被假设为周期信号
但这个周期函数头尾就有可能不连续而带来很大的计算误差。为了保证连续性,我们通常会给x[n]加一个窗w[n] 图 3。y[n]=x[n]*w[n]
图 3 对输入信号加窗
在使用傅里叶变换时,加窗前后的x[n]和y[n]都会被假设成为周期信号,x[n]是不连续的,y[n]是连续的。(图 4只显示了两个周期)。
图 4 加窗前后的周期函数
不同的窗函数会给分析带来不同的影响,要视应用而定【3】。
参考
1. Joseph Fourier
2. 傅里叶级数