The network does this in three conceptual steps.
Each sound channel has a separate set of cells that, when triggered, fire with decreasing frequency. Each cell in a set has the same starting frequency but a different rate of frequency decay.
Part 2 of this group of exercises explores how such a triggered decreasing frequency cell can be implemented with an IntFire2 artificial cell.
Following presentation of a pattern, there is a short period of time in which the firing rates are the same for one cell from each sound frequency channel. Call these cells, whose firing frequencies are transiently matched, the pattern set.
All the decreasing frequency cells feed into a layer of (alpha) cells. In order to recognize the pattern, the network of alpha cells is constructed so that excitatory connections link all alpha cells that receive input from the pattern set. This subset of alpha cells is supposed to generate "synchronous" output only when its inputs have the same frequency.
Part 1 of this set of exercises explores how a network of IntFire3 artificial cells can be used to implement this behavior.Synchrony of the subset of alpha cells is detected by a gamma cell that receives input only from that subset of alpha cells.
Part 3 of this set of exercises explores how this could be done with an IntFire1 artificial cell.
The IntFire4 artificial cell treats excitatory input (positive weight) events as a sudden change in current which decays exponentially with time constant taue. Inhibitory input (negative weight) events are treated as an alpha function like change to the current. More precisely the current due to a negative weight event is the difference between two exponentials with time constants taui1 and taui2. In the limit as taui2 approaches taui1 then the current due to the event approaches the alpha function.
The current due to the input events is integrated with a membrane time constant of taum. At present there is a constraint taue < taui1 < taui2 < taum but this may become relaxed to taue, taui1 < taui2, taum.
When the membrane potential reaches 1, the cell fires and the membrane potential is re-initialized to 0 and starts integrating according to the analytic value of the current (which does NOT depend on firing). Excitatory events are scaled such that an isolated event of weight 1 will produce a maximum membrane potential of 1 (threshold) and an isolated inhibitory event of weight -1 will produce a minimum membrane potential of -1.
The principles of excitatory synchronization can be explored with just a few alpha cells. I recommend 4 in order to clearly see the nature of what is meant by "synchronization" in this context. This is not so many that the 12 all-to-all connections between 4 alpha cells are too tedious to build with the netgui tool.
I use taue=5 ms and taum=200 ms. (Don't worry about the taui1,2 since there are no inhibitory connections in this exercise). The name of my alpha type is A.
To use the net we need a stimulus frequency, which is most easily provided with a NetStim. I constructed a 100Hz stimulus by setting the interval to 10 ms, the number to 100000, the start to 0, and the noise to 0.1 . The name of my stim type is S.
With the NetGUI tool, I first constructed 4 S instances and then 4 A instances. Then connected the S to A, and finally all the A to A. Doing the connections in this order nicely groups the connections in the weight panel for easy setting.
An example of synchronization is with S->A of 0.1 and A->A of 0.1 .
Here is a sample net specification (but not yet instantiated). It is easiest to observe the connection pattern by dragging each cell around the scene.
1) After building the net, instantiate it and start a spike plot. Also plot the M (membrane) state of each of the A cells. This latter gives good insight into why the net synchronizes. Use a tstop of 2000 and the variable time step.
Note: The NEURONMainMenu/Tools/PointProcesses/Managers/PointGroup can be used to separately change NetStim parameters on an individual basis. However if you change the S type spec in the ArtCellGUI this will take precedence over the PointGroup values.