现有一列震动时域数据data11,采样率为1000hz,使用matlab绘制其0-100Hz的频域图
时间: 2024-11-25 11:13:37 浏览: 6
Matlab绘制时域和频域图
在MATLAB中,要绘制一列震动时域数据`data11`(假设是一行向量)的0-100 Hz频域图,你可以使用快速傅立叶变换(FFT),因为MATLAB提供了内置的`fft`函数。以下是如何操作的:
```Matlab
% 假设data11就是你的时域数据
Fs = 1000; % 采样率
data11 = ...; % 输入实际数据
% 对数据进行离散傅立叶变换
N = length(data11); % 数据长度
Y = fft(data11, N); % FFT结果
% 频率轴,从0到采样率减1(半个采样率对应最高频率)
f = (0:N-1) * Fs/N; % 注意这里是取频谱,所以频率范围是0-Hz/2
% 将正频率和负频率部分分开,并只保留0-100 Hz的数据
Y_mag = abs(Y(1:N/2+1)); % 只取一半,因为对称
f_mag = f(1:N/2+1); % 取正频率部分
idx_100Hz = find(f_mag <= 100); % 找到100 Hz频率点的索引
% 画出0-100 Hz频域图
figure;
plot(f_mag(idx_100Hz), Y_mag(idx_100Hz));
hold on;
grid on;
xlim([0 100]); % 设置X轴范围
xlabel('频率 (Hz)');
ylabel('幅度 (dBFS or magnitude)');
title('0-100 Hz频域图');
title(['Data: ' num2str(data11)]);
hold off;
```
这段代码将生成0-100 Hz频域图,其中横坐标是频率,纵坐标是幅值(通常以分贝(dBFS)显示)。记得替换`data11`为你实际的数据。如果有多个数据列,你需要先合并成矩阵再进行操作。
阅读全文