求助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 %裕度因子

刚好自己要用,整理了下。

建立一个实测信号的样本,这里我建立四个随机信号的样本,因为方便显示,蓝色信号为有用信号(正弦信号),黑色的四个信号是随机信号分别与正弦信号叠加形成的实测信号,最后红色的信号为样本的均值信号,即为时域同步平均效果下的信号。

N=200

f0=10

fs=100

ts=1/fs

tscale=[0:N-1]*ts

sig1=sin(2*pi*f0*tscale)

xmax=max(sig1)

subplot(321)

plot(tscale,sig1,'b')

title('这是一个正弦函数')

xlabel('时间 /s')

ylabel('幅值 /mm') YLIM([-2*xmax 2*xmax])

sum=0

for k=2:1:5

sig0=0.3*randn(N,1)sigk=sig1+sig0'sum=sum+sigk

subplot(3,2,k)

plot(tscale,sigk,'k')

end

sig0=sum/4

subplot(326)

plot(tscale,sig0,'r')

disp('传递函数形如Xo/Xi=a/(b*s^2+c*s+d)')

disp('输入参数')

a=input('a=')

b=input('b=')

c=input('c=')

d=input('d=')

num=[a]

den=[b,c,d]

sys=tf(num,den)

wn=sqrt(d/b)

e=c/(b*2*wn)

disp('欠阻尼二阶系统时域性能参数计算结果:')

disp('上升时间tr')

tr=(pi-atan(sqrt(1-e*e)/e))/wn/sqrt(1-e*e)

disp('峰值时间tp')

tp=pi/(wn*sqrt(1-e*e))

disp('最大超调量mp')

mp=exp(-e*pi/sqrt(1-e*e))

disp('调整时间ts')

ts=-log(0.05)/(e*wn)

disp('震荡次数n')

n=1.5*sqrt(1-e*e)/(e*pi)


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

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

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存