声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4301|回复: 9

[综合讨论] 求一可以计算波形平均值或有效值的程序

[复制链接]
发表于 2007-7-8 10:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
自己一直搞不定,谢谢各位高手指点:@(
回复
分享到:

使用道具 举报

发表于 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 编辑 ]

评分

1

查看全部评分

发表于 2007-7-8 14:28 | 显示全部楼层
y=sin([0:0.1:10]); %数据

ym=mean(y); %得到平均值
ye= sqrt(sum(y.^2)/length(y));%得到有效值
 楼主| 发表于 2007-7-8 15:22 | 显示全部楼层
发表于 2007-7-8 15:50 | 显示全部楼层

回复 #5 iceisland 的帖子

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

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

这是抛物线积分法,对函数的平方积分
发表于 2007-7-8 16:24 | 显示全部楼层
原帖由 花如月 于 2007-7-8 15:50 发表
那个算法我也不大明白。发那个只是想告诉你,许多问题在论坛是已经讨论过的。我用写的那个或者4楼的程序都可以,特别是4楼的程序最简洁(不足之处:结果0.6885精度受到取点的数据的影响和理论值(sqrt(2)/2) ...

要想提高精度,要么整周期采样,要么采非常长的样本。否则没戏。但是这么简单的问题,目前国际上还有许多SCI刊物发文章呢!
发表于 2007-7-8 16:32 | 显示全部楼层
我同意7楼的看法!

[ 本帖最后由 eight 于 2007-7-9 21:43 编辑 ]
发表于 2007-7-8 16:40 | 显示全部楼层

回复 #7 VibrationMaster 的帖子

受教了,数值积分那块我实在外行:loveliness:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-13 13:16 , Processed in 0.067262 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表