用 MATLAB 生成一个傅立叶变换的图形
代码:
% 生成一个信号
Fs = 1000; % 采样频率
T = 1/Fs; % 采样间隔
t = 0:T:1; % 时间向量
f1 = 50; % 信号频率
f2 = 150;
signal = sin(2*pi*f1*t) + 0.5*sin(2*pi*f2*t); % 合成信号
% 进行傅立叶变换
N = length(signal);
frequencies = Fs*(0:round(N/2))/N; % 使用 round 函数确保索引为整数
fft_result = fft(signal);
magnitude = abs(fft_result/N);
magnitude = magnitude(1:round(N/2)+1); % 使用 round 函数确保索引为整数
% 绘制原始信号和频谱
subplot(2,1,1);
plot(t, signal);
title('原始信号');
subplot(2,1,2);
plot(frequencies, magnitude);
title('信号的频谱');
xlabel('频率 (Hz)');
ylabel('幅度');
% 显示图形
grid on;