Signal Processing Toolbox | ![]() ![]() |
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
generates a pulse train based on samples of a continuous function, =
pulstran(t,d,'func
')
'
func
'
, where '
func
'
is:
'gauspuls'
, for generating a Gaussian-modulated sinusoidal pulse'rectpuls'
, for generating a sampled aperiodic rectangle 'tripuls'
, for generating a sampled aperiodic triangle 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,'
allows additional parameters to be passed to func
',p1,p2,...)
'
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(...,'
specifies alternative interpolation methods. See func
')
interp1
for a list of available methods.
Example 1
This example generates an asymmetric sawtooth waveform with a repetition frequency of 3 Hz and a sawtooth width of 0.1s. It has a signal length of 1s 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)
Example 2
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)
Example 3
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
|
Generate a swept-frequency cosine. |
|
Compute the cosine of vector/matrix elements (see the MATLAB documentation). |
|
Compute the Dirichlet or periodic sinc function. |
|
Generate a Gaussian-modulated sinusoidal pulse. |
|
Generate a sampled aperiodic rectangle. |
|
Generate a sawtooth or triangle wave. |
|
Compute the sine of vector/matrix elements (see the MATLAB documentation). |
|
Compute the sinc or sin(![]() ![]() |
|
Generate a square wave. |
|
Generate a sampled aperiodic triangle. |
![]() | psdplot | pwelch | ![]() |