FFT算法程序的matlab代码
时间: 2024-07-28 16:00:19 浏览: 63
FFT(Fast Fourier Transform)算法在MATLAB中被广泛应用,用于快速计算复数序列的频域表示。以下是一个简单的MATLAB代码示例,展示了如何使用内置函数`fft()`执行快速傅立叶变换:
```matlab
% 生成一个长度为N的正弦波信号
N = 1024; % 你可以根据需要调整这个数值
fs = 1000; % 采样频率
t = (0:N-1)'/fs; % 时间向量
f = 10; % 信号频率
x = sin(2*pi*f*t); % 正弦信号
% 使用fft()函数计算快速傅立叶变换
X = fft(x);
% 将结果转换为频率轴
X_mag = abs(X/N); % 取绝对值并归一化
frequencies = (0:N-1)*(fs/N); % 生成频率向量
% 绘制原始信号和频谱
figure;
subplot(2,1,1);
plot(t, x);
title('Original Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(frequencies, X_mag);
title('Frequency Spectrum');
xlabel('Frequency (Hz)');
ylabel('|X(freq)|');
% 如果需要计算离散谱,取前半部分
X_mag_half = X_mag(1:N/2+1);
frequencies_half = frequencies(1:N/2+1);
```
这个代码首先生成了一个正弦波信号,然后使用`fft()`函数将其转换为频域表示,并将结果绘制成两个子图:一个是时间域的原始信号,另一个是频域的谱。
阅读全文