[Pybrainsim-activity] SF.net SVN: pybrainsim:[97] trunk/src/PyBrainSim.py
Status: Planning
Brought to you by:
rgoj
|
From: <rg...@us...> - 2009-08-07 10:39:40
|
Revision: 97
http://pybrainsim.svn.sourceforge.net/pybrainsim/?rev=97&view=rev
Author: rgoj
Date: 2009-08-07 10:39:26 +0000 (Fri, 07 Aug 2009)
Log Message:
-----------
* Added a fifth simulation example to the PyBrainSim.py script, with a hundred generators of random frequency and initial phase, some connected to a stimulus. This gives very nice results in the form of an ongoing signal that looks very similar to EEG and an ERP that has some nice peaks, and completes a milestone!
Modified Paths:
--------------
trunk/src/PyBrainSim.py
Modified: trunk/src/PyBrainSim.py
===================================================================
--- trunk/src/PyBrainSim.py 2009-08-07 10:21:20 UTC (rev 96)
+++ trunk/src/PyBrainSim.py 2009-08-07 10:39:26 UTC (rev 97)
@@ -26,6 +26,8 @@
pybrainsim.sourceforge.net
"""
+from random import random
+
from Head import Head
from Experiment import Experiment
from Stimulus import Stimulus
@@ -42,7 +44,9 @@
1. Example dummy simulation\n\
2. Incrementing numbers, one generator and a stimulus\n\
3. Incrementing numbers, two generators and a stimulus for one of them\n\
- 4. Sinusoidal generator\n"
+ 4. A single sinusoidal generator\n\
+ 5. A hundred sinusoidal generators with random frequencies, some connected\
+ to a stimulus.\n"
print(welcomeMessage)
userChoice = input("Your choice: ")
@@ -112,5 +116,32 @@
print("\nSimulations resulted in the following recording:")
print exampleExperiment.getRecording()
exampleExperiment.plotRecording()
+elif userChoice == 5:
+ exampleHead = Head()
+ exampleHead.setSamplingFrequency(256)
+ exampleHead.addRegistrationSite([0, 0, 0])
+ exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 100.0)
+
+ # Randomizing stimuli times
+ stimuli = []
+ for i in range(100):
+ stimuli.append( i + 0.2 +random()/2 )
+ exampleExperiment.setStimulusTimes([stimuli])
+ exampleStimulus = Stimulus('Stim', exampleHead)
+ exampleStimulus.setStimulusTimes(exampleExperiment.getStimulusTimes()[0])
+
+ # Creating many generators with random frequencies in the range 2-20 Hz and
+ # random phases. Connecting some of them to the stimulus generator
+ exampleGenerators = []
+ exampleConnections = []
+ for i in range(100):
+ frequency = 2.0 + random() * 18
+ phaseShift = random()
+ exampleGenerators.append(GeneratorSine('Gen', exampleHead, frequency, phaseShift))
+ if(random() > 0.75):
+ exampleConnections.append(Connection('Con', exampleHead, exampleStimulus, exampleGenerators[i]))
+
+ exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration()))
+ exampleExperiment.plotRecording()
else:
print("No such option unfortunately...")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|