Package ca.nengo.util

Examples of ca.nengo.util.TimeSeries


      }

      if (myDynamics == null) {
        result = input + myCurrentRawNoise[0];
      } else {
        TimeSeries raw = new TimeSeriesImpl(new float[]{myLastDynamicsTime, endTime},
            new float[][]{myLastRawNoise, myCurrentRawNoise}, myUnits);
        float[][] output = myIntegrator.integrate(myDynamics, raw).getValues();
        result = input + output[output.length-1][0];
        myLastDynamicsTime = endTime;
      }
View Full Code Here


    float[] times = myNodes[0].getHistory(stateName).getTimes();
    float[][] values = new float[1][myNumNodes];
    Units[] units = new Units[myNumNodes];
   
    for(int i=0; i < myNumNodes; i++) {
      TimeSeries data = myNodes[i].getHistory(stateName);
      units[i] = data.getUnits()[0];
      values[0][i] = data.getValues()[0][0];
    }
    return new TimeSeriesImpl(times, values, units);
  }
View Full Code Here

            if (node instanceof SpikePatternNode) {
                spikePatterns.add(((SpikePatternNode) node).getUserObject());
            } else if (node instanceof TimeSeriesNode) {
                TimeSeriesNode timeSeriesNode = (TimeSeriesNode) node;

                TimeSeries timeSeries = timeSeriesNode.getUserObject();

                float tauFilter = ProbePlotHelper.getInstance().getDefaultTauFilter();

                if (tauFilter != 0 && timeSeriesNode.isApplyFilterByDefault()) {
                    timeSeries = DataUtils.filter(timeSeries, tauFilter);
View Full Code Here

        }

        if ( getMode().equals(SimulationMode.DIRECT) || getMode().equals(SimulationMode.EXPRESS)) {
          //run ensemble dynamics if they exist (e.g. to model adaptation)
          if (myDirectModeDynamics != null) {
            TimeSeries dynamicsInput = new TimeSeriesImpl(new float[]{startTime, endTime},
                new float[][]{state, state}, Units.uniform(Units.UNK, state.length));
            TimeSeries dynamicsOutput = myDirectModeIntegrator.integrate(myDirectModeDynamics, dynamicsInput);
            state = dynamicsOutput.getValues()[dynamicsOutput.getValues().length-1];
          }

          Origin[] origins = getOrigins();
          for (Origin origin : origins) {
            if (origin instanceof DecodedOrigin) {
View Full Code Here

    float[] result = new float[dynamicsInputs.length];

    for (int i = 0; i < myDynamics.length; i++) {
      float[] inVal  = new float[]{dynamicsInputs[i]};
      if(myTau <= endTime-startTime) {
        TimeSeries inSeries = new TimeSeriesImpl(new float[]{startTime, endTime}, new float[][]{inVal, inVal}, myNullUnits);
        TimeSeries outSeries = myIntegrator.integrate(myDynamics[i], inSeries);
        result[i] = outSeries.getValues()[outSeries.getValues().length-1][0];
      }
      else {
        //save the overhead on the integration, and just do it all in one step
        float[] dxdt = myDynamics[i].f(startTime, inVal);
        myDynamics[i].setState(MU.sum(myDynamics[i].getState(), MU.prod(dxdt, endTime-startTime)));
View Full Code Here

            extractDimensions();
            dataModel.nodeStructureChanged(TimeSeriesNode.this);
        }

        public void extractDimensions() {
            TimeSeries probeData = getUserObject();
            /*
             * Extract dimensions
             */
            for (int dimCount = 0; dimCount < probeData.getDimension(); dimCount++) {
                TimeSeries oneDimData = DataUtils.extractDimension(probeData, dimCount);

                DefaultMutableTreeNode stateDimNode = new ProbeDataExpandedNode(oneDimData,
                        dimCount, applyFilterByDefault);
                add(stateDimNode);
            }
View Full Code Here

  /**
   * @see ca.nengo.model.Probeable#getHistory(java.lang.String)
   */
  public TimeSeries getHistory(String stateName) throws SimulationException {
    TimeSeries result = null;

    if (!STATE_NAME.equals(stateName)) {
      throw new SimulationException("State " + stateName + " is unknown");
    }

View Full Code Here

        if (node instanceof SpikePatternNode) {
            SpikePattern spikePattern = ((SpikePatternNode) node).getUserObject();
            matlabExporter.add(name, spikePattern);
        } else if (node instanceof TimeSeriesNode) {
            TimeSeries spikePattern = ((TimeSeriesNode) node).getUserObject();
            matlabExporter.add(name, spikePattern);
        } else {
            throw new ActionException("Could not export node type: "
                    + node.getClass().getSimpleName());
        }
View Full Code Here

                    input[i] = amplitude;
                }
      }
    }

    TimeSeries inSeries = new TimeSeriesImpl(new float[]{startTime, endTime}, new float[][]{input, input}, Units.uniform(Units.UNK, input.length));
    myOutput = myIntegrator.integrate(myDynamics, inSeries);
  }
View Full Code Here

      FunctionInput fi = new FunctionInput("DECODING SIMULATION INPUT", f, Units.UNK);
      environment.addNode(fi);
      environment.addProjection(fi.getOrigin(FunctionInput.ORIGIN_NAME), termination);
      probe.reset();
      environment.run(0, transientTime);
      TimeSeries result = probe.getData();
      environment.removeProjection(termination);
      environment.removeNode(fi.getName());

      values[i] = new float[result.getDimension()];
      int samples = (int) Math.ceil( result.getValues().length / 10d ); //use only last ~10% of run in the average to avoid transient
      for (int j = 0; j < result.getDimension(); j++) {
        values[i][j] = 0;
        for (int k = result.getValues().length - samples; k < result.getValues().length; k++) {
          values[i][j] += result.getValues()[j][k];
        }
        values[i][j] = values[i][j] / samples;
      }
    }

    LinearApproximator approximator = myApproximatorFactory.getApproximator(evalPoints, values);
    DecodedOrigin result = new DecodedOrigin(this, name, getNodes(), nodeOrigin, functions, approximator);
    result.setMode(getMode());
    myDecodedOrigins.put(name, result);
    fireVisibleChangeEvent();
    return result;
  }
View Full Code Here

TOP

Related Classes of ca.nengo.util.TimeSeries

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.