The Matlab code to create these profiles as column vectors is listed below. The Figure above shows the two temporal profiles used in the model. Two variants of the temporal filter are used, one with a relatively fast response (TF), and the other with a relatively slow response (TS). The temporal filters in the model are biphasic, meaning that they have both a positive response phase and a negative response phase. Odd_x=sin(2*pi*sf*x_filt).*gauss %Odd Gabor Gauss=exp(-x_filt.^2/sx.^2) %Gaussian envelopeĮven_x=cos(2*pi*sf*x_filt).*gauss %Even Gabor Sf=1.1 %spatial frequency of carrier, in cpd Sx=0.5 %standard deviation of Gaussian, in deg. % A row vector holding spatial sampling intervals Nx=80 %Number of spatial samples in the filterĭx = (max_x*2)/nx %Spatial sampling interval of filter (deg) The Matlab code to create these profiles as row vectors is listed below. The Figure below shows the spatial filter profiles used in the model. In this implementation we use a space constant of 0.5 deg and spatial frequency of 1.1cpd, which gives a reasonable approximation to the sensitivity of the magno system (Derrington & Lennie, 1984). Gabors have been used in other published implementations of the model (though parameter values are mostly not specified). Even and odd variants are created using sine and cosine functions. Gabor functions offer an accurate description of cortical cell receptive fields (see Ringach, 2002). Our implementation of the model uses Gabor functions – a sine wave function windowed by a Gaussian. Adelson & Bergen (1985) actually used spatial functions that were second and third derivatives of Gaussians (offering no information on the space constant of the Gaussian). The other two spatial filters are ‘odd’ functions that do not show mirror symmetry (SO). In other words they are mirror-symmetrical about their centre. Two of the spatial filters are ‘even’ functions (SE). The spatiotemporally oriented receptive fields, or filters, are created from four component filters that do not themselves possess spatiotemporal orientation. For convenience, a complete script is also available, ready to run. Each step will be described in turn, listing the Matlab code for that step. Here is a functional flow diagram showing the sequence of operations in the model. The model has an elegant way of constructing these oriented receptive fields. It uses receptive fields that are oriented in x-t space. The motion energy model detects motion by detecting spatiotemporal orientation. The angle of tilt corresponds to the velocity of motion. Movement creates oriented structure in x-t space, known as spatiotemporal orientation. A two-dimensional cross-section through this volume along a fixed y-position produces an x-t plot x-position as a function of time. The image of a moving car can be plotted in a three-dimensional volume which has two spatial dimensions (x and y) and a temporal dimension (t). Model stimuli and output are represented in x-t space, illustrated in the Figure. All the work was supported by a research grant from the Wellcome Trust. Initial code development was partially based on a tutorial created for a short course at Cold Spring Harbor Laboratories. This web page describes the basic features of the model, and gives example Matlab code and output for the version implemented in my lab and tested against a number of psychophysical experiments (Mather & Challinor, 2009 Challinor & Mather, 2010). The model is so easy to apply to any 1-D motion stimulus that I believe the first step in seeking to explain any low-level motion phenomenon should be to apply the model. The model is also elegant in its simplicity, and straightforward to implement in about 60 lines of Matlab code. Its performance is consistent with a large body of published psychophysical data. The motion energy model proposed by Adelson and Bergen (1985) has become the standard reference model for low-level, Fourier-based motion sensing in the human visual system.