Izhikevich neurons and STDP
조회 수: 14 (최근 30일)
이전 댓글 표시
Good morning everyone, I need to write a MATLAB script in order to build a neural network in which several Izhikevich neurons are linked each other through STDP synapses. In particular, I'm following the paper attached for building the synapse model, but I can't understand how to link each neuron; I've already written some code for implementing a population of 10 Izhikevich neurons (it's just an example):
%%IZHIKEVICH NEURONS AND STDP SYNAPSES
% ------------------------------------
function neuronPopulation = main()
clear all
close all
clc
% Simulation parameters
NumOfValues = 1e5;
NumOfNeurons = 2;
t = 8000;
% Neuron parameters
a = 0.02;
b = 0.2;
c = -65;
d = 1.5;
input_current = 40;
v0 = -65.0;
u0 = -14.0;
% Synapse parameters
% Creating neuron population
neuronPopulation = populate();
% Plotting all the neurons
for i = 1 : 1 : NumOfNeurons
plotFunction(neuronPopulation(i,:,1),sprintf('Membrane potential of neuron no. %d',i),i);
end
function pop = populate()
pop = zeros(NumOfNeurons,NumOfValues,2);
for j = 1 : NumOfNeurons
[v1,v2] = izhikevich();
pop(j,:,:) = [v1,v2];
end
end
function plotFunction(vector,text,index)
figure(index)
plot(vector);
grid on
title(text)
end
function [v,u] = izhikevich()
v = zeros(NumOfValues,1);
u = zeros(NumOfValues,1);
v(1,1) = v0;
u(1,1) = u0;
for k = 2 : NumOfValues
v(k,1) = v(k - 1,1) + 1/t * (0.04 * v(k - 1,1)^2 + 5 * v(k - 1,1) + 140 - u(k - 1,1) + input_current);
u(k,1) = u(k - 1,1) + 1/t * a*(b * v(k - 1,1) - u(k-1,1));
if(v(k,1) >= 30)
v(k,1) = c;
u(k,1) = u(k,1) + d;
end
end
end
end
Thanks for your time and help.
댓글 수: 0
답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Neural Simulation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!