stdp最重要的是两个窗口函数
根据这个方程我们刻画出他的轨迹,代码如下
import numpy as np
import matplotlib.pyplot as plt
# 定义STDP参数
tau_pos = 30 # 正向突触权重变化的时间常数
tau_neg = 30 # 负向突触权重变化的时间常数
A_pos = 0.1 # 正向突触权重变化的幅度
A_neg = -0.05 # 负向突触权重变化的幅度
# 定义时间差范围
dt_range_pos = np.arange(-150, 0, 5)
dt_range_neg = np.arange(0, 150, 5)
# 计算STDP窗口函数的LTP部分
ltp_window = A_pos * np.exp(dt_range_pos/tau_pos)
# 计算STDP窗口函数的LTD部分
ltd_window = A_neg * np.exp(-dt_range_neg/tau_neg)
# 绘制STDP窗口函数的LTP和LTD部分
plt.plot(dt_range_pos, ltp_window, label='LTP')
plt.plot(dt_range_neg, ltd_window, label='LTD')
# 绘制坐标系
plt.axhline(0, color='k')
plt.axvline(0, color='k', linestyle='--')
plt.xlabel(r'$t_j^{post} - t_i^{pre}$',fontsize=12,rotation="vertical")
plt.ylabel(r'$\frac{{\Delta {w_{ij}}}}{{{w_{ij}}}}$',fontsize=12,rotation="horizontal")
plt.legend()
plt.show()
运行结果如下: