matlab向量分割不能均等,创建均匀和非均匀时间向量

创建均匀和非均匀时间向量

您可以创建均匀和不均匀时间向量以用于涉及时序的计算。

如果您知道采样频率,请使用冒号运算符。如果您的系统在一秒内以 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)

d470a03bc087173ed66d539f1ab77e72.png

另请参阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值