plotting true zeros
This commit is contained in:
parent
3c5ab4381e
commit
0ade3b101a
@ -8,7 +8,7 @@ from chirpdetection import instantaneos_frequency
|
|||||||
from modules.simulations import create_chirp
|
from modules.simulations import create_chirp
|
||||||
|
|
||||||
# create chirp
|
# create chirp
|
||||||
|
"""
|
||||||
time, signal, ampl, freq = create_chirp(
|
time, signal, ampl, freq = create_chirp(
|
||||||
chirptimes=[0.05, 0.2501, 0.38734, 0.48332, 0.73434, 0.823424], )
|
chirptimes=[0.05, 0.2501, 0.38734, 0.48332, 0.73434, 0.823424], )
|
||||||
# filter signal with bandpass_filter
|
# filter signal with bandpass_filter
|
||||||
@ -22,7 +22,7 @@ baseline_freq_time, baseline_freq = instantaneos_frequency(signal, 1/0.00001)
|
|||||||
axs[1].plot(baseline_freq_time[1:], baseline_freq[1:])
|
axs[1].plot(baseline_freq_time[1:], baseline_freq[1:])
|
||||||
plt.close()
|
plt.close()
|
||||||
|
|
||||||
|
"""
|
||||||
# trying thunderfish fakefish chirp simulation ---------------------------------
|
# trying thunderfish fakefish chirp simulation ---------------------------------
|
||||||
samplerate = 44100
|
samplerate = 44100
|
||||||
freq, ampl = fakefish.chirps(eodf=500, chirp_contrast=0.2)
|
freq, ampl = fakefish.chirps(eodf=500, chirp_contrast=0.2)
|
||||||
@ -30,16 +30,21 @@ data = fakefish.wavefish_eods(fish='Alepto', frequency=freq, phase0=3)
|
|||||||
|
|
||||||
# filter signal with bandpass_filter
|
# filter signal with bandpass_filter
|
||||||
data_filterd = bandpass_filter(data*ampl+1, samplerate, 0.01, 1.99)
|
data_filterd = bandpass_filter(data*ampl+1, samplerate, 0.01, 1.99)
|
||||||
data_freq_time, data_freq = instantaneos_frequency(data*ampl, samplerate)
|
data_freq_time, data_freq, true_zero = instantaneos_frequency(data*ampl, samplerate)
|
||||||
|
|
||||||
|
|
||||||
fig, ax = plt.subplots(4, 1, figsize=(20 / 2.54, 12 / 2.54), sharex=True)
|
fig, ax = plt.subplots(4, 1, figsize=(20 / 2.54, 12 / 2.54), sharex=True)
|
||||||
|
|
||||||
ax[0].plot(np.arange(len(data))/samplerate, data*ampl+1)
|
ax[0].plot(np.arange(len(data))/samplerate, data*ampl)
|
||||||
|
ax[0].scatter(true_zero, np.zeros_like(true_zero), color='red')
|
||||||
ax[1].plot(np.arange(len(data_filterd))/samplerate, data_filterd)
|
ax[1].plot(np.arange(len(data_filterd))/samplerate, data_filterd)
|
||||||
ax[2].plot(np.arange(len(freq))/samplerate, freq)
|
ax[2].plot(np.arange(len(freq))/samplerate, freq)
|
||||||
ax[3].plot(data_freq_time[1:], data_freq[1:])
|
ax[3].plot(data_freq_time[1:], data_freq[1:])
|
||||||
|
|
||||||
|
|
||||||
plt.show()
|
plt.show()
|
||||||
embed()
|
embed()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ def instantaneos_frequency(
|
|||||||
# compute frequency
|
# compute frequency
|
||||||
inst_freq = gaussian_filter1d(1 / np.diff(true_zero), 5)
|
inst_freq = gaussian_filter1d(1 / np.diff(true_zero), 5)
|
||||||
|
|
||||||
return inst_freq_time, inst_freq
|
return inst_freq_time, inst_freq, true_zero
|
||||||
|
|
||||||
|
|
||||||
def plot_spectrogram(axis, signal: np.ndarray, samplerate: float, t0: float) -> None:
|
def plot_spectrogram(axis, signal: np.ndarray, samplerate: float, t0: float) -> None:
|
||||||
@ -353,7 +353,7 @@ def main(datapath: str) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
# compute instantaneous frequency on narrow signal
|
# compute instantaneous frequency on narrow signal
|
||||||
baseline_freq_time, baseline_freq = instantaneos_frequency(
|
baseline_freq_time, baseline_freq, true_zero = instantaneos_frequency(
|
||||||
baseline, data.raw_rate
|
baseline, data.raw_rate
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ def main(datapath: str) -> None:
|
|||||||
|
|
||||||
baseline_freq_time = baseline_freq_time[(baseline_freq_time >= valid_t0) & (
|
baseline_freq_time = baseline_freq_time[(baseline_freq_time >= valid_t0) & (
|
||||||
baseline_freq_time <= valid_t1)] + t0
|
baseline_freq_time <= valid_t1)] + t0
|
||||||
|
true_zero = true_zero + t0
|
||||||
# overwrite raw time to valid region
|
# overwrite raw time to valid region
|
||||||
time_oi = time_oi[valid]
|
time_oi = time_oi[valid]
|
||||||
baseline = baseline[valid]
|
baseline = baseline[valid]
|
||||||
@ -468,6 +468,8 @@ def main(datapath: str) -> None:
|
|||||||
|
|
||||||
# plot waveform of filtered signal
|
# plot waveform of filtered signal
|
||||||
axs[2, i].plot(time_oi, baseline, c=ps.green)
|
axs[2, i].plot(time_oi, baseline, c=ps.green)
|
||||||
|
axs[2, i].scatter(
|
||||||
|
true_zero, np.zeros_like(true_zero), c=ps.red)
|
||||||
|
|
||||||
# plot broad filtered baseline
|
# plot broad filtered baseline
|
||||||
axs[2, i].plot(
|
axs[2, i].plot(
|
||||||
|
Loading…
Reference in New Issue
Block a user