创建均匀和非均匀时间向量
您可以创建均匀和不均匀时间向量以用于涉及时序的计算。
如果您知道采样频率,请使用冒号运算符。如果您的系统在一秒内以 15 Hz 的速率对时间采样,您将获得 16 个读数,包括在零处的一个读数。
Fs = 15;
Ts = 1/Fs;
ts = 0:Ts:1;
如果您知道时间区间的开始和结束以及样本数量,请使用 linspace。假设您启动秒表并在一秒后停止它。如果您知道您的仪器获得了 15 个读数,您可以生成时间向量。
tl = linspace(0,1,15);
您可以直接基于样本计算采样率,并使用它来重新构造时间向量。
sf = 1/(tl(2)-tl(1));
TL = (0:length(tl)-1)/sf;
ErrorTL = max(abs(tl-TL))
ErrorTL = 0
您还可以使用 linspace 重新构造 ts。
lts = length(ts);
TS = linspace(ts(1),ts(lts),lts);
ErrorTS = max(abs(ts-TS))
ErrorTS = 1.1102e-16
默认情况下,linspace 和冒号运算符用于创建行向量。对行向量进行转置可获得列向量。
tcol = tl';
ttrans = ts';
将 linspace 和冒号运算符结合使用,可生成任意特征的非均匀时间向量。
假设您必须对一个高斯调制正弦脉冲进行采样。该脉冲在某个一秒区间内变化迅速,但在前几秒和后几秒内变化缓慢。
以 100 Hz 的频率对关注的区域进行采样,在之前和之后只采集五个样本。使用方括号串联向量。
gpl = @(x) 2.1*gauspuls(x-1.5,5,0.4);
Ffast = 100;
Tf = 1/Ffast;
Nslow = 5;
tdisc = [linspace(0,1,Nslow) 1+Tf:Tf:2-Tf linspace(2,3,Nslow)];
生成函数的 20001 个样本来对连续时间脉冲进行仿真。叠加由 tsf 定义的样本绘图。
Tcont = linspace(0,3,20001)';
plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)
另请参阅