傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。
在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
在海洋工程的结构应力计算领域,尤其是疲劳分析的数据处理起到了非常重要的作用。
理解傅里叶变换的原理及意义,可以将频域分析和时频分析有效联系起来,从而使理论和实际相结合,这样就形成一个较为系统的概念,也加深自己的理解。
首先,介绍一下傅里叶变换的原理。
现实生活中的所有信号波形都可以视为一系列正弦信号的叠加,而傅里叶变换则是将原始波形分解为一系列的正弦频率。
傅里叶变换包括连续时间傅里叶变换和离散时间傅里叶变换。
连续时间傅里叶变换:
离散时间傅里叶变换:
根据欧拉公式:
这时我们就可以看出傅里叶变换的本质就是将原始信号变换为一系列正弦或余弦信号的叠加。
分别从时间方向和频率方向仔细观察下图,可知,在时间方向上,原始信号波形被分解为一系列正弦波形;在频率方向上,原始波形被分解为对应的单一正弦频率。
接下来,我将对Matlab中傅里叶变换函数FFT进行简要分析,解决一些相关问题。
首先举一个简单离散傅里叶变换的例子。
已知序列x = [ 1 2 3 4 5],求x的离散时间傅里叶变换y。
代码加上显示数值只有三行如下。
x = [1 2 3 4 5];
y = fft(x);
disp(y);
以下为运行代码的结果,得出五个复数。
15.0000+0.0000i -2.5000+3.4410i -2.5000+0.8123i -2.5000-0.8123i -2.5000-3.4410i
再举一个简单连续傅里叶变换的例子。
Fs = 1000; % 采样频率
t = 0:1/Fs:1-1/Fs; % 时间向量
x = sin(2*pi*5*t); % 信号
Y = fft(x);
P = abs(Y)/length(t); % 幅度谱
f = Fs*(0:length(t)/2)/length(t) - Fs/2; % 频率轴
plot(f, P(1:length(t)/2+1)) % 绘制单边频谱
这段代码首先定义采样频率Fs为1000Hz,并创建了一个时间向量t,从0开始,以1/Fs为间隔,直到1-1/Fs(即不包括1秒)。定义了一个正弦波信号x,其频率为5Hz,通过将时间向量t乘以2*pi*5(这是5 Hz正弦波的角频率)并使用sin函数计算得到的。对信号x进行了快速傅里叶变换(FFT),并将结果存储在变量Y中。并计算了FFT结果Y的幅度谱P和与FFT结果对应的频率轴f。最后使用plot函数绘制了单边频谱。