88 lines
2.6 KiB
Python
88 lines
2.6 KiB
Python
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
from IPython import embed
|
|
import matplotlib as matplotlib
|
|
import math
|
|
import scipy.integrate as integrate
|
|
from scipy import signal
|
|
from scipy.interpolate import interp1d
|
|
from scipy.interpolate import CubicSpline
|
|
import scipy as sp
|
|
import pickle
|
|
from scipy.spatial import distance
|
|
from myfunctions import *
|
|
import time
|
|
from matplotlib import gridspec
|
|
#from matplotlib_scalebar.scalebar import ScaleBar
|
|
import matplotlib.mlab as ml
|
|
import scipy.integrate as si
|
|
import pandas as pd
|
|
from plot_eod_chirp import find_dev, find_beats, find_times, find_periods
|
|
|
|
|
|
def singlemodulation(beat_corr, deviation_s, a_fe, a_fr):
|
|
bef_c = 0
|
|
aft_c = 1
|
|
sampling = 100000
|
|
i = 0
|
|
fig = plt.figure(figsize = (6,4))
|
|
ax = {}
|
|
pp_max = []
|
|
add = 1
|
|
nfft = 4096
|
|
e = 0
|
|
left_c = [bef_c * sampling] * len(beat_corr)
|
|
right_c = [aft_c * sampling] * len(beat_corr)
|
|
p = 0
|
|
s = 0
|
|
d = 0
|
|
eod_fe = [0]
|
|
eod_fr = 200
|
|
time, time_cut, cut = find_times(left_c[e], right_c[e], sampling, deviation_s[d])
|
|
eod_fish_e, eod_fish_r, period_fish_r, period_fish_e = find_periods(a_fe, time, eod_fr, a_fr, eod_fe, e)
|
|
eod_overlayed_chirp = eod_fish_r+1
|
|
nfft = int(4096*2*2)
|
|
ax[1] = fig.add_subplot(1,2,1)#sharey=ax['third'+str(i)], sharex=ax['third'+str(i)]
|
|
plt.plot(time, eod_overlayed_chirp )
|
|
plt.xlim([0,0.05])
|
|
ax[1].set_ylabel('mv')
|
|
ax[1].set_xlabel('Time [ms]')
|
|
ax[2] = fig.add_subplot(1,2,2)
|
|
pp, f = ml.psd(eod_overlayed_chirp, Fs=sampling, NFFT=nfft,
|
|
noverlap=nfft / 2)
|
|
ax[2].set_ylabel('psd')
|
|
ax[2].set_xlabel('Frequency [Hz]')
|
|
plt.plot(f, pp)
|
|
plt.xlim([-50, 2000])
|
|
plt.subplots_adjust(wspace = 0.45)
|
|
plt.legend()
|
|
plt.savefig('singlemodulation.pdf')
|
|
plt.show()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
delta_t = 0.014 # ms
|
|
interest_interval = delta_t * 1.2
|
|
bef_c = interest_interval / 2
|
|
aft_c = interest_interval / 2
|
|
sigma = delta_t / math.sqrt((2 * math.log(10))) # width of the chirp
|
|
phase_zero = [0] # phase when the chirp occured (vary later) / zero at the peak o a beat cycle
|
|
phase_zero = np.arange(0,2*np.pi,2*np.pi/10)
|
|
eod_fr = 500 # eod fish reciever
|
|
eod_fr = 537# eod fish reciever
|
|
factor = 200
|
|
sampling_fish = 500
|
|
sampling = 100000
|
|
d = 1
|
|
x = [ 1.5, 2.5,0.5,]
|
|
x = [ 1.5]
|
|
time_range = 200 * delta_t
|
|
deviation_ms, deviation_s, deviation_dp = find_dev(x, sampling)
|
|
a_fe = 0.5
|
|
a_fr = 1
|
|
start = 5
|
|
end = 3500
|
|
step = 250
|
|
eod_fe, beat_corr, beats = find_beats(start,end,step,eod_fr)
|
|
singlemodulation(beat_corr, deviation_s, a_fe, a_fr)
|