iceisland 发表于 2007-7-8 10:54

求一可以计算波形平均值或有效值的程序

自己一直搞不定,谢谢各位高手指点:@(

花如月 发表于 2007-7-8 12:22

均值用mean函数
有效值计算
function y=CalcuRMS(data,n)
%计算有效值函数
y=0;
ga(1)=data(1)^2;
ga(2)=data(2)^2;
for i=3:n
    ga(i)=data(i)^2;
    y=y+(ga(i-2)+4*ga(i-1)+ga(i))/6;
end
y=sqrt(y/n);
参考资料http://forum.vibunion.com/forum/viewthread.php?tid=27659
建议问之前搜索论坛

花如月 发表于 2007-7-8 12:52

写个简化版的供参考:
syms t a y;
y=@(t)(10*sin(t)).^2;%定义幅值为10的正弦信号
RMS=sqrt(quad(y,0,pi,1e-7)/pi)%按照定义进行有效值计算
%幅值如果为a则可以用符号计算的方式
y1=(a*sin(t)).^2;
R=int(y1,t,0,pi);
RMS1=simple(sqrt(R/pi))%按照定义进行有效值计

结果如下:
RMS =
    7.0711

RMS1 =

1/2*2^(1/2)*a
说明程序是没问题的

[ 本帖最后由 花如月 于 2007-7-8 13:21 编辑 ]

VibrationMaster 发表于 2007-7-8 14:28

y=sin(); %数据

ym=mean(y); %得到平均值
ye= sqrt(sum(y.^2)/length(y));%得到有效值

iceisland 发表于 2007-7-8 15:22

原帖由 花如月 于 2007-7-8 12:22 发表 http://www.chinavib.com/forum/images/common/back.gif
for i=3:n
    ga(i)=data(i)^2;
    y=y+(ga(i-2)+4*ga(i-1)+ga(i))/6;
end

能解释下这个循环语句吗
我有点不懂,麻烦了

花如月 发表于 2007-7-8 15:50

回复 #5 iceisland 的帖子

那个算法我也不大明白。发那个只是想告诉你,许多问题在论坛是已经讨论过的。我用写的那个或者4楼的程序都可以,特别是4楼的程序最简洁(不足之处:结果0.6885精度受到取点的数据的影响和理论值(sqrt(2)/2)差距明显)。

VibrationMaster 发表于 2007-7-8 16:22

原帖由 iceisland 于 2007-7-8 15:22 发表 http://www.chinavib.com/forum/images/common/back.gif

能解释下这个循环语句吗
我有点不懂,麻烦了
这是抛物线积分法,对函数的平方积分

VibrationMaster 发表于 2007-7-8 16:24

原帖由 花如月 于 2007-7-8 15:50 发表 http://www.chinavib.com/forum/images/common/back.gif
那个算法我也不大明白。发那个只是想告诉你,许多问题在论坛是已经讨论过的。我用写的那个或者4楼的程序都可以,特别是4楼的程序最简洁(不足之处:结果0.6885精度受到取点的数据的影响和理论值(sqrt(2)/2) ...
要想提高精度,要么整周期采样,要么采非常长的样本。否则没戏。但是这么简单的问题,目前国际上还有许多SCI刊物发文章呢!

caoxingjun 发表于 2007-7-8 16:32

我同意7楼的看法!

[ 本帖最后由 eight 于 2007-7-9 21:43 编辑 ]

花如月 发表于 2007-7-8 16:40

回复 #7 VibrationMaster 的帖子

受教了,数值积分那块我实在外行:loveliness:
页: [1]
查看完整版本: 求一可以计算波形平均值或有效值的程序