matlab FFT 頻率 皆次解析 範例程式
时间: 2023-10-16 20:21:49 浏览: 25
以下是一个MATLAB代码示例,演示如何计算FFT的频率分辨率和频率向量:
```matlab
% 定义信号参数
fs = 1000; % 采样率
T = 1/fs; % 采样间隔
L = 1000; % 信号长度
t = (0:L-1)*T; % 时间向量
% 生成信号
f1 = 50; % 信号频率1
f2 = 120; % 信号频率2
S = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t);
% 计算FFT
NFFT = 2^nextpow2(L); % FFT点数
Y = fft(S,NFFT)/L; % 傅里叶变换
% 计算频率向量
f = fs/2*linspace(0,1,NFFT/2+1); % 离散频率向量,单位为Hz
f_res = fs/NFFT; % 频率分辨率,单位为Hz
% 绘图
figure
subplot(2,1,1)
plot(t,S)
title('信号时域波形')
xlabel('时间 (s)')
ylabel('幅值')
subplot(2,1,2)
plot(f,2*abs(Y(1:NFFT/2+1)))
title('信号频域波形')
xlabel('频率 (Hz)')
ylabel('幅值')
```
这段代码生成包含两个正弦波的信号,然后计算FFT,并绘制信号的时域波形和频域波形。在计算FFT之后,通过使用linspace函数计算离散频率向量,通过fs/NFFT计算频率分辨率。