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

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

先对t离散化,然后fft,再画个幅频和相频就可以了。

不过貌似你这个式子有点问题,randn产生1*1024的高斯噪声已经指定了s的维数了,所以t必须去1024个离散橡扒戚值,限定了t的取值了。

你可以参考下面的程序,建议你看懂之后自己编一下。

这是对sin(x)求幅频相频

%用fft求幅频相频

clc%清空

clearall%清除所有变量

closeall%关闭所有窗口

a=10%振幅

fw=50%固有频率

phi=pi/3%相位

step=1000

t=0:1/step:10*pi%时间t

y=a*sin(2*pi*fw*t+phi)%正弦函数y

f=step*(0:256)/512%频率

subplot(3,1,1)%三行一列第梁陵一幅图

plot(t,y)%绘制图形

xlabel('t/s','fontsize',13)%横坐标显示t/s,字号13

ylabel('y','fontsize',13)%纵坐标显示y,字号13

title('正弦函数曲线','fontsize',13)%显示标题

y=fft(y,512)%对y进行傅里叶变换

subplot(3,1,2)%三行一列第二幅图

plot(f,abs(y(1:257)))%绘制图形

xlabel('f/hz','fontsize',13)%横坐标显示f/hz,字号13

ylabel('幅值','fontsize',13)%纵坐标显示幅值,字号13

title('幅频特性曲线','fontsize',13)%显示标题

[value,index]=max(abs(y))%将abs(y)最大值点的横坐标、纵坐标分别赋给

value和index

text(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fonts

ize',13)%显示最大值点坐标

subplot(3,1,3)%三行一列第三幅图

plot(f,angle(y(1:257))*180/pi)%绘制图形

xlabel('f/hz','fontsize',13)%横坐标此闭显示f/hz,字号13

ylabel('相位/°','fontsize',13)%纵坐标显示相位/°,字号13

title('相位特性曲线','fontsize',13)%显示标题


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

原文地址: http://outofmemory.cn/yw/12402478.html

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

发表评论

登录后才能评论

评论列表(0条)

保存