离散傅里叶变换的MATLAB代码
时间: 2024-09-08 08:02:36 浏览: 83
利用matlab证明离散傅里叶变换性质
离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将时间域信号转换到频率域的数学工具,在MATLAB中可以使用内置函数`fft()`来计算。下面是一个简单的示例,展示如何对一列数据应用离散傅立叶变换:
```matlab
% 创建一段示例数据
t = 0:0.01:1; % 时间序列
x = sin(2*pi*5*t) + 0.5*sin(2*pi*10*t); % 正弦波叠加
% 计算离散傅里叶变换
X = fft(x);
% 显示结果长度会比输入信号长1,所以我们只取一半的结果(排除直流分量)
N = length(x);
X_mag = abs(X(1:N/2+1)); % 绝对值表示幅度
f = (0:N/2)/N; % 频率轴,单位是周期/样本数
% 可视化原始信号和频谱
figure;
subplot(2,1,1);
plot(t, x);
title('Original Signal');
xlabel('Time');
ylabel('Amplitude');
subplot(2,1,2);
plot(f, X_mag, 'LineWidth', 2);
title('Discrete Fourier Transform');
xlabel('Frequency');
ylabel('Magnitude');
```
在这个例子中,我们首先生成了一个由两个不同频率正弦波组成的信号,然后使用`fft()`计算其DFT,并将其幅度可视化。
阅读全文