[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. |