フィルターのクリア

Izhikevich neurons and STDP

6 ビュー (過去 30 日間)
Angelo Giuseppe Spinosa
Angelo Giuseppe Spinosa 2016 年 3 月 19 日
回答済み: Agata 2017 年 5 月 11 日
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.

回答 (1 件)

Agata
Agata 2017 年 5 月 11 日
Have you found how to solve this problem?

カテゴリ

Help Center および File ExchangeNeural Simulation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by