现有一列震动时域数据data111,采样率为1000hz,使用matlab绘制其0-100Hz的时域图,频域图和时频图
时间: 2024-11-25 13:15:10 浏览: 20
在MATLAB中,你可以使用以下步骤来绘制一列震动时域数据(data111)的时域图、频域图以及时频图,假定数据已经存储为向量:
1. **时域图**(直方图或波形图)
```matlab
% 假设data111是时间序列数据
fs = 1000; % 采样率
t = (0:length(data111)-1) / fs; % 时间轴
figure;
plot(t, data111);
xlabel('Time (s)');
ylabel('Amplitude');
title('Data111 - Time Domain Plot (0-100 Hz)');
xlim([0 max(t)]); % 设置x轴范围
```
2. **频域图**(快速傅立叶变换,FFT)
```matlab
% 计算FFT并选择0-100 Hz范围
f = linspace(0, fs/2, length(data111)/2+1); % 频率轴
yfft = abs(fft(data111));
yfft = yfft(1:length(yfft)/2 + 1); % 只取正频率部分
figure;
plot(f, yfft);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Data111 - Frequency Domain Plot (0-100 Hz)');
xlim([0 100]);
```
3. **时频图**(短时傅立叶变换,STFT 或者 傅里叶变换窗方法)
```matlab
% 使用窗函数如汉明窗进行STFT
window = hann(length(data111)); % 例如用Hanning窗口
noverlap = floor(fs/2); % 滑动步长
nfft = 256; % 快速傅立叶变换大小
stft_data = spectrogram(data111, window, noverlap, nfft, fs);
% 绘制STFT图像
figure;
imagesc(t, f, stft_data(:, :, 1)); % 第一通道通常包含幅度信息
colormap('jet'); % 更改颜色映射
xlabel('Time (s)');
ylabel('Frequency (Hz)');
title('Data111 - Short-Time Fourier Transform (0-100 Hz)');
xlim([0 max(t)]);
ylim([0 100]);
```
阅读全文