| Signal Processing Toolbox | Search  Help Desk |
| pulstran | Examples See Also |
Syntax
y = pulstran(t,d,'func') y = pulstran(t,d,'func',p1,p2,...) y = pulstran(t,d,p,Fs) y = pulstran(t,d,p)
Description
pulstran
generates pulse trains from continuous functions or sampled prototype pulses.
y = pulstran(t,d,'func')
generates a pulse train based on samples of a continuous function, 'func', where func is:
gauspuls, for Gaussian-modulated sinusoidal pulse generator
rectpuls, for sampled aperiodic rectangle generator
tripuls, for sampled aperiodic triangle generator
pulstran is evaluated length(d) times and returns the sum of the evaluations y = func(t-d(1)) + func(t-d(2)) + ...
The function is evaluated over the range of argument values specified in array t, after removing a scalar argument offset taken from the vector d. Note that func must be a vectorized function that can take an array t as an argument.
An optional gain factor may be applied to each delayed evaluation by specifying d as a two-column matrix, with the offset defined in column 1 and associated gain in column 2 of d. Note that a row vector will be interpreted as specifying delays only.
pulstran(t,d,'func',p1,p2,...)
allows additional parameters to be passed to 'func' as necessary. For example,
func(t-d(1),p1,p2,...) + func(t-d(2),p1,p2,...) + ...
pulstran(t,d,p,Fs)
generates a pulse train that is the sum of multiple delayed interpolations of the prototype pulse in vector p, sampled at the rate Fs, where p spans the time interval [0,(length(p)-1)/Fs], and its samples are identically 0 outside this interval. By default, linear interpolation is used for generating delays.
pulstran(t,d,p)
assumes that the sampling rate Fs is equal to 1 Hz.
pulstran(...,'func')
specifies alternative interpolation methods. See interp1 for a list of available methods.
Examples
This example generates an asymmetric sawtooth waveform with a repetition frequency of 3 Hz and a sawtooth width of 0.1 sec. It has a signal length of 1 sec and a 1 kHz sample rate:t = 0 : 1/1e3 : 1; % 1 kHz sample freq for 1 sec d = 0 : 1/3 : 1; % 3 Hz repetition freq y = pulstran(t,d,'tripuls',0.1,-1); plot(t,y)This example generates a periodic Gaussian pulse signal at 10 kHz, with 50% bandwidth. The pulse repetition frequency is 1 kHz, sample rate is 50 kHz, and pulse train length is 10 msec. The repetition amplitude should attenuate by 0.8 each time:
![]()
t = 0 : 1/50E3 : 10e-3; d = [0 : 1/1E3 : 10e-3 ; 0.8.^(0:10)]'; y = pulstran(t,d,'gauspuls',10e3,0.5); plot(t,y)This example generates a train of 10 Hamming windows:
![]()
p = hamming(32); t = 0:320; d = (0:9)'*32; y = pulstran(t,d,p); plot(t,y)
![]()
See Also
chirp |
Swept-frequency cosine generator. |
cos |
Cosine of vector/matrix elements (see the online MATLAB Function Reference). |
diric |
Dirichlet or periodic sinc function. |
gauspuls |
Gaussian-modulated sinusoidal pulse generator. |
rectpuls |
Sampled aperiodic rectangle generator. |
sawtooth |
Sawtooth or triangle wave generator. |
sin |
Sine of vector/matrix elements (see the online MATLAB Function Reference). |
sinc |
Sinc or sin( t)/ t function. |
square |
Square wave generator. |
tripuls |
Sampled aperiodic triangle generator. |