用MATLAB读取以上数据文件,画出S.mat文件时域和频域(fft)波形
时间: 2023-07-18 12:10:07 浏览: 279
好的,您可以参考以下代码来实现:
```matlab
load('S.mat'); % 加载数据文件
% 时域波形
figure;
plot(t, s);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time-domain waveform');
% 频域波形
N = length(s); % 信号长度
fs = 1/(t(2)-t(1)); % 采样率
f = (0:N-1)*fs/N; % 频率向量
Y = fft(s)/N; % 傅里叶变换
P = 2*abs(Y(1:N/2+1)); % 单侧频谱
P(1) = P(1)/2; % 直流分量只算一半
figure;
plot(f(1:N/2+1), P);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency-domain waveform');
```
这段代码会先加载数据文件 S.mat,然后绘制时域波形和频域波形。其中时域波形使用 plot 函数绘制,频域波形使用 fft 函数进行傅里叶变换,然后再用 plot 函数绘制。注意在绘制频域波形时,需要将双侧频谱转化为单侧频谱,并且将直流分量除以 2。
阅读全文