M=csvread('1.2.csv',1,1,[1,1,10000,1]); x=csvread('1.2.csv',1,1,[1,1,10000,1]); fs = 100; % 采样频率 % 时域分析 figure; subplot(2,1,1); plot(x); xlabel('样本序号'); ylabel('振动信号'); title('原始信号'); subplot(2,1,2); spectrogram(x, hann(1024), 512, 1024, fs, 'yaxis'); title('原始信号的短时傅里叶变换'); % 频域分析 N = length(x); % 信号长度 xdft = fft(x); % 进行傅里叶变换 xdft = xdft(1:N/2+1); % 只取正频率部分 psdx = (1/(fs*N)) * abs(xdft).^2; % 计算功率谱密度 freq = 0:fs/length(x):fs/2; % 构造频率向量 figure; subplot(2,1,1); plot(freq,10*log10(psdx)); grid on; xlabel('频率 (Hz)'); ylabel('功率谱密度 (dB/Hz)'); title('原始信号的功率谱密度估计'); subplot(2,1,2); pwelch(x, hann(1024), 512, 1024, fs); title('原始信号的Welch功率谱密度估计'); % 时频混合分析 figure; spectrogram(x, hann(1024), 512, 1024, fs, 'yaxis'); title('原始信号的时频分析'); % 双比例尺小波分析 figure; wscalogram('image',cwt(x,1:128,'sym2'),'scales',1:128,'ydata',1:length(x)); title('原始信号的小波分析');
时间: 2024-02-06 16:03:16 浏览: 65
Matlab读取CSV文件.docx
5星 · 资源好评率100%
这段代码的目的是对一个名为 '1.2.csv' 的文件中的数据进行时域、频域、时频混合和小波分析,并将结果以图形的形式展示出来。
首先,使用 `csvread` 函数将 '1.2.csv' 文件中的数据读取到变量 `x` 和 `M` 中,然后使用 `subplot` 函数在同一窗口中显示原始信号的时域波形和短时傅里叶变换图。
接下来,通过计算原始信号的傅里叶变换和功率谱密度,分别绘制了功率谱密度估计图和 Welch 功率谱密度估计图,以展示信号的频域特性。
然后,使用 `spectrogram` 函数对原始信号进行时频分析,并绘制出相应的时频图。
最后,使用 `cwt` 函数对原始信号进行小波分析,并使用 `wscalogram` 函数绘制出相应的小波图。
阅读全文