# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the 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'```