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)