📜  MATLAB 中的傅立叶变换(1)

📅  最后修改于: 2023-12-03 14:44:11.274000             🧑  作者: Mango

MATLAB 中的傅立叶变换

1. 简介

傅立叶变换(Fourier Transform, FT)是一种将时域信号转换为频域信号的数学工具。MATLAB作为一款强大的数学软件,自然也提供了傅立叶变换相关的函数。

2. 常用函数

MATLAB中提供了两种傅立叶变换函数:快速傅立叶变换(FFT)和离散傅立叶变换(DFT)。

2.1 FFT函数

fft(x)函数是MATLAB中快速傅立叶变换的函数之一。它的语法为:

Y = fft(X)
Y = fft(X,n)
Y = fft(X, [], dim)
Y = fft(X, n, dim)

其中X为输入的信号向量,n为可选参数,表示FFT变换的长度。dim为可选参数,表示沿着哪个维度进行FFT。

2.2 DFT函数

MATLAB中的DFT函数是在FFT函数的基础上实现的。它的语法为:

Y = fft(x, n)

其中X为输入的信号向量,n为可选参数,表示FFT变换的长度。

3. 实例

下面是一个简单的例子,展示如何使用MATLAB中的fft函数进行频域分析。

Fs = 1000;            % 采样率
t = 0:1/Fs:1-1/Fs;    % 时间向量
x = sin(2*pi*50*t)+sin(2*pi*120*t);  % 信号向量

subplot(2,1,1);
plot(t,x);
title('原始信号');
xlabel('时间(秒)');
ylabel('幅值');

N = length(x);
X = fft(x);
P2 = abs(X/N);
P1 = P2(1:N/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(N/2))/N;

subplot(2,1,2);
plot(f,P1) 
title('单边幅度谱');
xlabel('频率(赫兹)');
ylabel('|X(f)|');

运行结果如下图所示。

fft_example

4. 总结

MATLAB中的傅立叶变换函数fft和DFT提供了一种强大的数学工具,可以帮助我们将时域信号转换为频域信号,从而更好地理解信号的特性。