Assignment: The Linear Pulse-Step generator#

Learning Goals#

Learning goals

In this computer practical you will explore how a saccadic system transforms a neural pulse–step command into a fast and accurate eye movement. Using the simplified Pulse–Step Generator Simulink model (pulsestep.slx), you will:

  • Apply core concepts from systems theory:

    • linearity and superposition

    • feedforward vs feedback pathways

    • the role of system time constants

  • Understand the distinct functional roles of:

    • Burst neurons (EBN/IBN) – generating the pulse

    • Neural integrator – generating the step

    • Direct (feedforward) pathway

    • Oculomotor plant – the biomechanics of the eye

    • Inverse model – reconstructing motor commands

  • Predict and interpret the effects of simulated brainstem “lesions”:

    • Integrator failure

    • Plant parameter changes

    • Pulse–step mismatch

By interactively changing model parameters and analysing the output, you will develop intuition for the dynamics underlying saccadic eye movements.

Data#

Downloads#

Download the Matlab files:

This contains the Pulse-Step model, which is a model of the final stage of the saccadic system as discussed in The Saccadic System - Pulse-Step Generator.

Research Data Management#

To keep your work organised and reproducible, set up a simple folder structure before you begin:

  1. Create a main folder named NBP_pulsestep.

  2. Inside this folder, create three subfolders:

    • data – for storing exported simulation data files

    • analysis – for your MATLAB scripts and the Simulink model

    • figures – for saving plots and exported images

Place the Simulink model and all MATLAB code in the analysis folder. Then create a new MATLAB script named data_analysis.m in this folder. You will use this script to run your simulations, analyse the output, and generate figures. Whenever your script produces data files or images, save them into the corresponding data or figures folder. This structure helps ensure your work is easy to navigate, reproducible, and ready for future assignments. For additional guidance, see Research Data Management.

Computer exercises with the linear PulseStep generator model#

These exercises introduce you to the behaviour of the pulse–step generator and the principles of linear system analysis. We will inspect a simple model of the so-called ‘Final Common Pathway’ of the oculomotor system (Fig. 50) is also available under Simulink as file pulsestep.slx (Fig. 51 and Fig. 52). This simulation model, allows you to interactively set parameters of:

  • The saccadic burst from the EBNs/IBNs (this is simply modeled as a pulse, having a height, \(P\), and duration \(D\).)

  • The neural integrator: setting its gain to zero mimics total loss of the integrator, whereas a gain of one means normal operation.

  • The direct path: feeds the pulse directly to the oculomotor neurons. When its gain is set to zero, you actually simulate the effect of a Step input to the OMNs.

  • The Plant, with its two time constants, \(T_1\) and \(T_2\)

../_images/psgmodel.png

Fig. 50 | Model for the Final Pathway of the Oculomotor System#

For saccades, this embodies the Pulse-Step Generator. The output of this pathway (i.e. eye position) is subsequently fed through an Inverse Model of the Plant, to enable a reconstruction of the motoneuron signal (see also Fig. 75)

../_images/simulink_scopes.png

Fig. 52 Scopes in the PulseStep Model.#

Exercise 1 — Saccade Amplitude#

Run the model.

%% Pulse–Step Generator – MATLAB/Simulink Helper Script
% This script loads the Simulink model 'pulsestep.slx', sets parameters,
% runs simulations, and extracts the logged signals EyePos, EyeVel, Command.

clear; close all; clc;

modelName = "pulsestep";

%% 1. Load and open the model
load_system(modelName);
open_system(modelName);


%% 2. Set default parameter values
psg_set_default_params(modelName);

%% PRESS RUN

One of the scopes should look like Fig. 53. To get some measurement guides, you need to go to MEASUREMENTS (Fig. 54), and click on Data Cursors. You can now click and drag the measurement guides and inspect relevant values (Fig. 55).

../_images/scope_eyepositiontrace.png

Fig. 53 | Eye Position Trace#

../_images/scope_measurement.png

Fig. 54 | Measurement toolbar#

Click on Data Cursors.

../_images/scope_measurementguides.png

Fig. 55 | Measurement tools#

Move the guides to points of interest.

  • Determine the amplitude of a saccade from the eye-position trace using the guides (Look at the difference between the final and initial position.)

  • How does this relate to the underlying pulse–step command?

Exercise 2 — Exploring Model Parameters#

Interactively change the following parameters, one at a time, while keeping all others at their default values:

  • Burst Generator:

    • Pulse height \(P\) (spikes/s)

    • Pulse duration \(D\) (s)

  • Neural Integrator:

    • Integrator gain

  • Direct Pathway:

    • Forward gain

  • Oculomotor Plant:

    • Long time constant \(T_1\)

    • Short time constant \(T_2\)

You can set the default parameters by:

%% 2. Set default parameter values
psg_set_default_params(modelName);

For each parameter change, note:

  • How large is the saccade amplitude?

  • What is the peak velocity?

  • What is the saccade duration?

  • How does the pulse–step output change?

  • Does the eye movement remain accurate?

Accuracy refers to whether the eye reaches and maintains the intended final position of the saccade.

  • If the goal is 20°, then a saccade is accurate when its final eye position is 20°.

  • In the Pulse–Step model, the burst parameters (pulse height P and pulse duration D) determine the desired amplitude of the saccade. Changing P or D therefore changes the goal and will naturally lead to a different final amplitude.

To study accuracy, you should therefore: 1. Set a target amplitude using P and D (e.g., make a 20° saccade). 2. Keep P and D fixed, and then vary the other parameters:

Then observe:

  • Does the saccade still end at the intended position?

  • Is there an overshoot or undershoot?

  • Does the eye drift back toward centre after reaching the target?

  • Does the final position depend systematically on the parameter you changed?

Exercise 3 — Linearity#

A system is linear if for all inputs \(x(t)\), \(y(t)\) and constants \(a,b\):

\[a x(t) + b y(t) \longrightarrow a f[x(t)] + b f[y(t)]. \]

Simulate saccades for five pulse heights:

\[P = 100, 200, 400, 600, 800 \text{ spikes/s}. \]

For each simulation:

  • extract saccade amplitude

  • peak velocity

  • duration

Then:

  • plot these output measures as a function of \(P\).

  • plot the Main Sequence

Questions:

  • Do amplitude, velocity, and duration scale linearly with pulse height?

  • What does this imply about the linearity of the oculomotor plant and final common pathway?

Exercise 4 — Step Response#

Determine the step response of the oculomotor plant.

Tasks:

  1. How can you generate a pure step input to the plant?
    (Which gain must be set to zero?)

  2. Plot the eye-position and eye-velocity traces.

  3. Describe rise time, asymptote, and smoothness.

Exercise 5 — Pulse–Step Mismatch: Forward Gain#

Vary the Direct Path gain:

\[0.15\text{ (default)},\ 0.05,\ 0.25. \]

Tasks: a. First ensure the model produces a 20° saccade.
b. Describe effects of changing Direct Path gain.
c. Repeat for 10° and 30°.

Exercise 6 — Pulse–Step Mismatch: Oculomotor Plant#

Vary the long time constant \(T_1\):

\[0.15\text{ (default)},\ 0.05,\ 0.25. \]

Questions:

  • How does changing \(T_1\) affect trajectories?

  • Can changes in \(P\), \(D\), or Forward Gain compensate for \(T_1\)?

  • Does compensation depend on amplitude?

Exercise 7 — Pulse–Step Mismatch: Neural Integrator#

Vary the Integrator Gain:

\[0, 0.1, 0.5, 0.8, 1.\]

Tasks:

  • Describe how reducing the integrator gain affects saccades.

  • Combine this with earlier results.

  • Plot compensatory parameter sets.