求一可以计算波形平均值或有效值的程序
自己一直搞不定,谢谢各位高手指点:@( 均值用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
建议问之前搜索论坛 写个简化版的供参考:
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 编辑 ] y=sin(); %数据
ym=mean(y); %得到平均值
ye= sqrt(sum(y.^2)/length(y));%得到有效值 原帖由 花如月 于 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
能解释下这个循环语句吗
我有点不懂,麻烦了
回复 #5 iceisland 的帖子
那个算法我也不大明白。发那个只是想告诉你,许多问题在论坛是已经讨论过的。我用写的那个或者4楼的程序都可以,特别是4楼的程序最简洁(不足之处:结果0.6885精度受到取点的数据的影响和理论值(sqrt(2)/2)差距明显)。 原帖由 iceisland 于 2007-7-8 15:22 发表 http://www.chinavib.com/forum/images/common/back.gif能解释下这个循环语句吗
我有点不懂,麻烦了
这是抛物线积分法,对函数的平方积分 原帖由 花如月 于 2007-7-8 15:50 发表 http://www.chinavib.com/forum/images/common/back.gif
那个算法我也不大明白。发那个只是想告诉你,许多问题在论坛是已经讨论过的。我用写的那个或者4楼的程序都可以,特别是4楼的程序最简洁(不足之处:结果0.6885精度受到取点的数据的影响和理论值(sqrt(2)/2) ...
要想提高精度,要么整周期采样,要么采非常长的样本。否则没戏。但是这么简单的问题,目前国际上还有许多SCI刊物发文章呢! 我同意7楼的看法!
[ 本帖最后由 eight 于 2007-7-9 21:43 编辑 ]
回复 #7 VibrationMaster 的帖子
受教了,数值积分那块我实在外行:loveliness:
页:
[1]