www.gusucode.com > signal 案例源码程序 matlab代码 > signal/CreateATimeVectorExample.m

    %% Create Uniform and Nonuniform Time Vectors
% You can create uniform and nonuniform time vectors for use in
% computations involving time series.

% Copyright 2015 The MathWorks, Inc.


%%
% Use the colon operator if you know the sampling frequency. If your system
% samples time at a rate of 15 Hz during one second, you get 16 readings,
% including the one at zero.

Fs = 15;
Ts = 1/Fs;
ts = 0:Ts:1;

%%
% Use |linspace| if you know the beginning and end of the time interval and
% the number of samples. Suppose you start a stopwatch and stop it one
% second later. If you know your instrument took 15 readings, you can
% generate the time vector.

tl = linspace(0,1,15);

%%
% You can compute the sample rate directly from the samples and use it to
% reconstruct the time vector.

sf = 1/(tl(2)-tl(1));

TL = (0:length(tl)-1)/sf;

ErrorTL = max(abs(tl-TL))

%%
% You can also reconstruct |ts| using |linspace|.

lts = length(ts);
TS = linspace(ts(1),ts(lts),lts);

ErrorTS = max(abs(ts-TS))

%%
% |linspace| and the colon operator create row vectors by default.
% Transpose them to obtain column vectors.

tcol = tl';
ttrans = ts';

%%
% Combine |linspace| and the colon operator to generate nonuniform time
% vectors of arbitrary characteristics.
%
% Suppose you have a Gaussian-modulated sinusoidal pulse that you must
% sample. The pulse changes rapidly during a one-second interval but slowly
% during the preceding and following seconds.
%
% Sample the region of interest at 100 Hz and take only five samples before
% and after. Concatenate the vectors using square brackets.

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)];

%%
% Generate 20001 samples of the function to simulate the continuous-time
% pulse. Overlay a plot of the samples defined by |tsf|.

Tcont = linspace(0,3,20001)';

plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)