📅  最后修改于: 2023-12-03 14:44:11.274000             🧑  作者: Mango
傅立叶变换(Fourier Transform, FT)是一种将时域信号转换为频域信号的数学工具。MATLAB作为一款强大的数学软件,自然也提供了傅立叶变换相关的函数。
MATLAB中提供了两种傅立叶变换函数:快速傅立叶变换(FFT)和离散傅立叶变换(DFT)。
fft(x)函数是MATLAB中快速傅立叶变换的函数之一。它的语法为:
Y = fft(X)
Y = fft(X,n)
Y = fft(X, [], dim)
Y = fft(X, n, dim)
其中X为输入的信号向量,n为可选参数,表示FFT变换的长度。dim为可选参数,表示沿着哪个维度进行FFT。
MATLAB中的DFT函数是在FFT函数的基础上实现的。它的语法为:
Y = fft(x, n)
其中X为输入的信号向量,n为可选参数,表示FFT变换的长度。
下面是一个简单的例子,展示如何使用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)|');
运行结果如下图所示。
MATLAB中的傅立叶变换函数fft和DFT提供了一种强大的数学工具,可以帮助我们将时域信号转换为频域信号,从而更好地理解信号的特性。