📄 sst.m
字号:
%function filterandst
clc;clear;
x=load('e:\v.txt'); %将读入的每列数据进行ST分析,并做图。
%y=load('e:\v1.txt')
figure(3);
plot((1:257),x); %绘制原始信号波性
%figure(4);
%plot((1:2001),y); %绘制原始信号波性
N=length(x);
set(0,'DefaultFigureColor','white'); %将背景设为白色
%调整分辨率
scale=1; %通过改变scale来调整分辨率,scale=1时,频率分辨率=fs/N/scale
fs=50000; %采样频率
[s,t,f]=st(x,1,N/2,1/fs,scale);
if scale==1
scale2=0.5;
elseif scale==0.5
scale2=1;
elseif scale==0.25
scale2=2;
elseif scale==0.125
scale2=4;
end;
sResult=abs(s(1:scale2*N,:));
ResultMatlab=sResult';
sResult=sResult*2/N;
fResult=f(1:scale2*N);
fResult=fResult';
Result=sResult';
figure(1);
startnumber=1; %控制显示和计算的起始点数
lastnumber=257; %控制显示和计算的终止点数
%contour(t*fs,fResult,sResult,80); %contour(t*fs,f(1:180),abs(s(1:180,:)),100); %后面的20表示登高线的线数 第一个参数为为tt/FS,则转化为时间
imagesc(t*fs,fResult,sResult);
axis([startnumber lastnumber 0 25000]); %显示振动
%axis([0 N 0 8000]); %显示缸压
axis('xy');
%grid;
colormap(gray);
title('S变换结果');
colorbar;
ylabel('f /Hz ');
xlabel('点数 /个');
%求频谱特性
FreResult=Result(startnumber:lastnumber,1:128); %显示振动
%a=Result(startnumber:lastnumber,1:60); %显示缸压
FreResult=sum(FreResult);
%求时间特性
%b=sResult(1:150,1:1200);
%timeResult=sum(b);
figure(2);
plot(fResult(1:128),FreResult(1:128));
fid=fopen('e:\STandFFT.txt','w'); %保存数据
%for i=1:1200
for i=3:128 %共60个频率
fprintf(fid,'%f %f\n',fResult(i:i),FreResult(i:i)); %频谱特性数据
%fprintf(fid,'%f\n',timeResult(i:i)); %时间特性数据
end;
fclose(fid);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -