需要有人为我彻底解释这个代码(傅立叶变换,采样...)

时间:2013-12-29 17:20:09

标签: matlab plot

亲爱的stackoverflow成员,我有一个matlab作业。我很难理解这段代码:

m = [ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];  

被放了,它做了什么?

应该绘制这个函数:http://s22.postimg.org/8e3ieonoh/Untitled.gif

这是完整的代码:

t0 = 0.15;
ts = 0.001;
fc = 250;
fs = 1/ts;
df = 0.3;
t = [0:ts:t0];
m = [ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];

感谢。

1 个答案:

答案 0 :(得分:0)

这会将时间序列创建为长数组。 ones(1,t0/(3*ts))表示当t <= t0 / 3时,函数获得1; -2*ones(1,t0/(3*ts))表示原始函数中[t0/3,t0/3*2]范围内的第二个值。 zeros(1,t0/(3*ts)+1)是函数的其余部分。曲线中两个连续点之间的时间间隔为ts

要避免警告,请使用

m = [ones(1,floor(t0/(3*ts))),-2*ones(1,floor(t0/(3*ts))),zeros(1,floor(t0/(3*ts))+1)];