SendCustomWaveform()

Description

Sends a sequence of voltages describing a train of continuous monophasic pulses, with periodic onset times.

  • This function is equivalent to SendCustomPulseTrain, but it automatically computes the pulse time vector from the specified sampling period.

  • The Phase1Duration parameter is automatically adjusted to match the sampling period on channels currently programmed to use the specified custom waveform.

  • Since the pulse width is equivalent to pulse frequency, the voltage vector defines a continuous waveform.

Syntax

ConfirmBit = SendCustomWaveform(TrainID, SamplingPeriod, Voltages)

Parameters

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

  • SamplingPeriod: The width of all pulses in the train (0.0001s-3600s). Pulses are continuous.

  • Voltages: A vector of the voltage of each pulse in the train (each must be in the range of -10 to 10V).

Returns

ConfirmBit =

1 if custom waveform was sent successfully.

0 if an error occurred during transmission.

Examples

% 1. This code generates a 100ms duration, 100Hz sine wave on output channel 1.

% Simultaneously, a 200ms white noise waveform is played on channels 3 and 4.

% All three waves are played when trigger channel 1 receives a TTL pulse.

% Peak to peak amplitude for the sine wave is 20V, spanning Pulse Pal's entire -10V - +10V output range.

SineWaveVoltages = 10*sin((2*pi/100)*(1:1000));

NoiseWaveVoltages = randn(1,1000)*2;

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

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

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

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

for i = [1 3 4]

ProgramPulsePalParam(i, 11 , 1); % Sets output channel i to respond to triggers on trigger channel 1

end

SendCustomWaveform(1, 0.0001, SineWaveVoltages); % Uploads sine waveform. Samples are played at 10khz.

SendCustomWaveform(2, 0.0002, NoiseWaveVoltages); % Uploads noise waveform. Samples are played at 5khz.

TriggerPulsePal('1101'); % Soft-triggers channels 1, 3 and 4.


% 2. (Example requiring the longer 5,000 pulse sequences on Pulse Pal 2)

% Attach a speaker to output channel 1, to hear the waveform.

Wave = load ('PulsePalWave.mat'); Wave = Wave.PulsePalWave; % Loads a complex voltage waveform

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

SendCustomWaveform(1, 0.0001, Wave); % Sends the waveform to Pulse Pal, sampled at 10kHz

TriggerPulsePal(1); % Triggers channel 1. Make sure your speaker volume is audible.