查看: 891|回复: 3|关注: 0

[已解决] 新手求助!MATLAB如何绘制某信号的均方根值曲线

[复制链接]

新手

7 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
本帖最后由 新的小蛋糕 于 2019-3-29 11:06 编辑

本人想对电压信号ua每个周期(0.02s)计算一次均方根值,然后绘制出一条曲线,不知应该如何编程实现,求帮助TAT
附上目前的程序如下(版本:64位WIN10,R2016a):
N=2048;
fs=2000;
t=(0:N-1)/fs; %定义时间样本向量;
w0=100*pi;
t1=0.1;
t2=0.1+0.5*rand; %扰动时间持续不超过0.5s;
c = rand;
    if(c<0.1)
        c=0.1;
    else if(c>0.9)
        c=0.9;
        end
    end
    t3=t2-t1;
    y1=stepfun(t,t1);y2=stepfun(t,t2);
    y3=y1-y2;
    y4=sin(w0*t);
    ua=(1-c*y3).*sin(w0*t);
    figure(1);
    plot(t,ua);
    axis([0,0.6,-1.5,1.5]);
    title('单相电压暂降');
    xlabel('时间/s');
    ylabel('幅值');
    grid off;   

新手

7 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-3-29 18:20:14 来自手机 | 显示全部楼层
顶一下

入门

102 麦片

财富积分


50500


0

主题

83

帖子

12

最佳答案
发表于 2019-3-29 18:50:51 | 显示全部楼层 |此回复为最佳答案
  1. N=2048;
  2. fs=2000;
  3. t=(0:N-1)/fs; %定义时间样本向量;
  4. w0=100*pi;
  5. t1=0.1;
  6. t2=0.1+0.5*rand; %扰动时间持续不超过0.5s;
  7. win = 0.02;
  8. c = rand;
  9. if(c<0.1)
  10.     c=0.1;
  11. else if(c>0.9)
  12.     c=0.9;
  13.     end
  14. end
  15. t3=t2-t1;
  16. y1=stepfun(t,t1);y2=stepfun(t,t2);
  17. y3=y1-y2;
  18. y4=sin(w0*t);
  19. ua=(1-c*y3).*sin(w0*t);
  20. figure(1);
  21. plot(t,ua);
  22. axis([0,0.6,-1.5,1.5]);
  23. title('单相电压暂降');
  24. xlabel('时间/s');
  25. ylabel('幅值');
  26. grid off;
  27. winLen = win*fs;
  28. uaPlus = [ua zeros(1,winLen-mod(size(ua,2),winLen))];
  29. uaRe = reshape(uaPlus,winLen,[]);
  30. uaRms = rms(uaRe);
  31. hold on; plot((0:win:max(t))+win/2,uaRms);
复制代码


untitled.jpg

新手

7 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-3-30 21:09:28 | 显示全部楼层

谢谢你!问题解决了。:hug:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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