
y=sin(x) %信号
ma = max(y) %最大值
mi = min(y) %最小值
me = mean(y) %平均睁滚值
pk = ma-mi %峰-峰值
av = mean(abs(y)) %绝对值的平均值(整流平均值)
va = var(y) %方差
st = std(y) %标准差
ku = kurtosis(y) %峭漏者度
rm = rms(y) %均方根
S = rm/av %波形因子
C = pk/rm %峰值因子
Kr = sum(y.^4)/sqrt(sum(y.^2)) %峭度因子
I = pk/av %脉冲因子
xr = mean(sqrt(abs(y)))^2
L = pk/xr %裕度因子
刚好自返早薯己要用,整理了下。
有很多中文字符,修改下:%%%%%%%%%%%%%%%%%%%%%%%%
clear %消除内存中所有变量和函数
clc %消除工作窗口所显示的内容
close all hidden%关闭所有隐藏的窗口
%%%%%%%%%%%%%%%%%%%%%%%%%
%提示用键盘输入输入数据文件名
fni=input('消除多项式趋势项-输入数据文件名','s')
%以只读方式打开数据文件
fid=fopen(fni,'r')
sf=fscanf(fid,'%f',1) %读入采样频率值
m=fscanf(fid,'%d',1)%读入拟合多项式阶数
fno=fscanf(fid,'态返%s',1) %读入输出数据文件名
x=fscanf(fid,'%f',inf) %读入时程数据存成列向量
%关闭数据文件
status=fclose(fid)
%取信号数据长度
n=length(x)
%建立离散时间列向量
t=(0:1/sf:(n-1)/sf)
%计算趋势项的多项式系数待定系数向量a
a=polyfit(t,x,m)
%用x减去多项式系数a生成的趋势项
y=x-polyval(a,t)
%将分成2行1列的图形窗口的第1列设为当前绘图区域
subplot(2,1,1)
%绘制x对于t的时程曲线图形
plot(t,x)
%在图幅上添加坐标网络
grid on
%将分成2行1列的图形窗口的第2列设为当前绘图区域
subplot(2,1,2)
%绘制y对于t的时程曲线
plot(t,y)
%在图幅上添加坐标网络
grid on
%以写的方式打开文件或建立一个新文件
fid=fopen(fno,'w')
%进行n次循环将计算结果烂仔写到输出数据文件中
for k=1:n
%每行输出两个实型数据帆历饥,t为时间,y为消除趋势项后的结果
fprintf(fid,'%f%f\n',t(k),y(k))
%循环体结束语句
end
%关闭数据文件
status=fclose(fid)
可能还是没修改完全 你再查查看
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)