SendCustomPulseTrain()

Description

Sends a sequence of onset times and voltages describing a train of monophasic pulses.

  • The train can be mapped to any output channel by specifying a custom train ID in the output channel's parameters (see ProgramPulsePal).

  • Two custom trains can be created, with 1,000 pulses each (PulsePal r0.4).

  • While this function allows custom onset times, the duration of each pulse in the custom train is set by adjusting each output channel's parameters.

    • Pulses that are continuous or overlapping will merge (see the Parameter guide)

Syntax

ConfirmBit = SendCustomPulseTrain(TrainID, PulseTimes, Voltages)

Parameters

  • TrainID: The custom train to program (1 or 2)

  • PulseTimes: A 1 x n array of up to 1,000 pulse onset times in seconds.

    • The pulse times may range from 0 to 3600 seconds, and must be multiples of 0.0001s.

    • Pulse times must be positive and monotonically increasing.

  • Voltages: A vector of the voltage of each pulse in the train.

    • There must be a voltage for each pulse.

    • Votages can range from -10 to 10V.

Returns

1 if custom train was sent successfully.

0 if an error occurred during transmission.

Example

% 1. This code generates a train of three 250μs pulses when trigger channel 2 receives a TTL pulse.

% The pulses occur at at times 0ms, 1ms and 10ms.

% Their voltages are -8V, 2V and 10V.

Voltages = [-8 2 10];

PulseTimes = [0 .001 .01];

SendCustomPulseTrain(1, PulseTimes, Voltages); % Uploads our train in slot 1 of 2

% For the next three lines, note the parameter codes for ProgramPulsePalParam.

ProgramPulsePalParam(1, 14, 1); % Sets output channel 1 to use custom train 1

ProgramPulsePalParam(1, 4, 0.00025); % Sets output channel 1 to use 250μs pulses

ProgramPulsePalParam(1, 13, 1); % Sets output channel 1 to respond to triggers on trigger channel 2

TriggerPulsePal('1');


% 2. This code accomplishes the same thing

% but using ProgramPulsePal instead of ProgramPulsePalParam to adjust output channel settings.

Voltages = [-8 2 10];

PulseTimes = [0 .001 .01];

SendCustomPulseTrain(1, PulseTimes, Voltages); % Uploads our train in memory location 1 of 2

load('C:\Users\JohnDoe\Documents\MATLAB\PulsePal 0_4\Programs\PulsePalProgram_Example.mat');

% Note the layout of parameters in the example matrix.

ParameterMatrix{15,2} = 1; % Sets output channel 1 to use custom train 1.

ParameterMatrix{5,2} = 0.00025; % Sets output channel 1 to use 250μs pulses

ParameterMatrix{14,2} = 1; % Sets output channel 1 to respond to triggers on trigger channel 2

ProgramPulsePal(ParameterMatrix); % Sends parameter changes to Pulse Pal

TriggerPulsePal('1');