Message Boards Message Boards

0
|
6474 Views
|
3 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Converting continuous signal to digital signal

Posted 5 years ago

Hi, I am trying to create a neuron model that fires action potentials (spikes) when a certain threshold is reached. The spikes are slowly reduced and eventually reaches noise level in the refractory period and again fires after the refractory period. The initial input is a continuous signal. Thanks

3 Replies

Hi Lakshmi,

You can use events (if, when statements) to convert your continuous signal to discrete signals. A simple model that mimics the first part of your case is as follows:

model Model
  Real contSignal;
  Real outputSignal(start = 1);
  parameter Real slope = 2;
  parameter Real threshold = 5;
equation
  der(contSignal) = slope;
  if contSignal < threshold then
    der(outputSignal) = 0;
  else
    der(outputSignal) = -outputSignal;
  end if ;
POSTED BY: Ankit Naik

I think you want to do this. 'Slope' was just a parameter I used to define the continuous signal.

    model EventGen
      Modelica.Blocks.Sources.ExpSine source(amplitude = 10, freqHz = 1, damping = 1) ;
      parameter Real threshold = 1;
      Real outputSignal(start = 0);
    equation
     der(outputSignal) = -outputSignal;
      when source.y < threshold then
      reinit(outputSignal,1);
    end when;
    end EventGen;
POSTED BY: Ankit Naik

Hi Ankit, What does the slope do? I tried to use this code in system modeler. I used an exponential sine wave (from the modelica blocks library) as my source with an amplitude of 10. I used a slope of 2 and threshold of 5, but I get an output signal of 0 amplitude (a flat signal). Please let me know. Thanks Lakshmi

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract