求助matlab时域分析程序-峰值、均方根、裕度、峭度

求助matlab时域分析程序-峰值、均方根、裕度、峭度,第1张

x=0:0.1:2*pi

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)

可能还是没修改完全 你再查查看


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12532944.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存