用matlab写一段求积分的代码

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:27:44
信号是20Hz的方波信号,
t=(0:0.00025:12)
m = square(2*pi*20*t)
需要得到的是对m的积分,怎么用代码写?谢谢了
对于t取每一个值都要取积分而不是算出最后的某一个值

建议使用matlab自带的函数,采用梯形积分法:
t=(0:0.00025:12);
m = square(2*pi*20*t);
result=trapz(t,m)
添加最后一行就可以得到结果

如果你要求信号积分,用以下的代码
t=(0:0.00025:12);
m = square(2*pi*20*t);
dt=0.000025;
len=length(m);
len_new=10*(len-1)+1;
result=zeros(2,len_new);
result(1,1)=0;
result(2,1)=0;
for i=2:1:len_new
result(1,i)=m(ceil(i/10));
result(2,i)=result(2,i-1)+result(1,i-1)*dt;
end
t_new=0:dt:12;
figure(1);
plot(t_new,result(1,:),'r-',t_new,result(2,:),'b-');
legend('square\_wave','integrated\_signal');
title('two signals in one figure');
xlabel('t: s');

figure(2);
plot(t_new,result(1,:));
title('orignal square wave')
xlabel('t: s');

figure(3);
plot(t_new,result(2,:));
title('integrated signal');
xlabel('t: s');

简单点的话直接用求和代替就可以了,我经常这么干呵呵