67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
|
|
from stimuli.SinusoidalStepStimulus import SinusoidalStepStimulus
|
|
from stimuli.SinusAmplitudeModulation import SinusAmplitudeModulationStimulus
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
def main():
|
|
plot_step_stimulus()
|
|
plot_sam_stimulus()
|
|
pass
|
|
|
|
|
|
def plot_step_stimulus():
|
|
start = 0
|
|
end = 1
|
|
|
|
time_start = -0.2
|
|
time_end = 1.2
|
|
step_size = 0.00005
|
|
|
|
frequency = 20
|
|
contrast = 0.5
|
|
# frequency, contrast, start_time=0, duration=np.inf, amplitude=1
|
|
step_stim= SinusoidalStepStimulus(frequency, contrast, start, end-start)
|
|
|
|
values = step_stim.as_array(time_start, time_end-time_start, step_size)
|
|
time = np.arange(time_start, time_end, step_size)
|
|
|
|
plt.plot(time, values)
|
|
plt.xlabel("Time [s]")
|
|
plt.ylabel("Voltage [mV]")
|
|
plt.savefig("thesis/figures/sin_step_stim_example.pdf")
|
|
plt.close()
|
|
|
|
|
|
def plot_sam_stimulus():
|
|
start = 0
|
|
end = 1
|
|
|
|
time_start = -0.2
|
|
time_end = 1.2
|
|
step_size = 0.00005
|
|
|
|
contrast = 0.5
|
|
mod_freq = 10
|
|
carrier_freq = 53
|
|
# carrier_frequency, contrast, modulation_frequency, start_time=0, duration=np.inf, amplitude=1
|
|
step_stim = SinusAmplitudeModulationStimulus(carrier_freq, contrast, mod_freq, start, end - start)
|
|
|
|
values = step_stim.as_array(time_start, time_end - time_start, step_size)
|
|
time = np.arange(time_start, time_end, step_size)
|
|
plt.plot(time, values)
|
|
|
|
beat_time = np.arange(start, end, step_size)
|
|
beat_values = np.sin(beat_time*2*np.pi*mod_freq) * contrast + 1
|
|
plt.plot(beat_time, beat_values)
|
|
|
|
plt.xlabel("Time [s]")
|
|
plt.ylabel("Voltage [mV]")
|
|
# plt.show()
|
|
plt.savefig("thesis/figures/sam_stim_example.pdf")
|
|
plt.close()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |