Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

pulstran

Syntax

pulstran
y = pulstran(t,d,'func')
pulstran(t,d,'func',p1,p2,...)
pulstran(t,d,p,fs)
pulstran(t,d,p)
pulstran(...,'func')

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 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,'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

collapse all

This example generates an asymmetric sawtooth waveform with a repetition frequency of 3 Hz and a sawtooth width of 0.1 s. The signal length is 1 s and the sample rate is 1 kHz.

t = 0 : 1/1e3 : 1;         % 1 kHz sample freq for 1 s
d = 0 : 1/3 : 1;           % 3 Hz repetition frequency
y = pulstran(t,d,'tripuls',0.1,-1);

plot(t,y)
xlabel 'Time (s)', ylabel Waveform

This example generates a periodic Gaussian pulse signal at 10 kHz with 50% bandwidth. The pulse repetition frequency is 1 kHz, the sample rate is 50 kHz, and the pulse train length is 10 ms. Each pulse has 80% of the amplitude of the preceding pulse.

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)
xlabel 'Time (s)', ylabel 'Periodic Gaussian pulse'

Introduced before R2006a

Was this topic helpful?