Найти пики для обычных TTL или звуковых импульсов - PullRequest
0 голосов
/ 29 июня 2019

У меня есть часть файла wav ниже, который в основном представляет собой импульсный wav TTL (в основном беззвучный с регулярными звуковыми сигналами между ними):

xaxis = array([0.00000000e+00, 6.25001411e-05, 1.25000282e-04, 1.87500423e-04, 
               2.50000564e-04, 3.12500705e-04, 3.75000846e-04, 4.37500987e-04, 
               5.00001129e-04, 5.62501270e-04, 6.25001411e-04, 6.87501552e-04, 
               7.50001693e-04, 8.12501834e-04, 8.75001975e-04])  # in sample rate 16000

yaxis = [-3.14, -0.916, 1.163, 3.04, 4.386, 5.043, 4.918, 
         4.068, 2.616, 0.726, -1.308, -3.261, -4.945, -5.804, -5.884]

Я использую scipy.signal.peak_finder для полученияпик каждого звука, где он получил меня 5,043.

peaks, val = scipy.signal.find_peaks(yaxis, height=2, distance=16000  # 16000=sample_rate

Поскольку я знаю, что звуковой сигнал будет длиться около 0,1 мс, я хочу определить самое начало пика, а затем установить его как ширину.Пока что код может найти среднюю / наибольшую вершину (5.043 in yaxis), тогда как я хочу найти самое первое значение оси Yaxis.

Любые полезные указатели или подходы относительно этого, или получение звуковых импульсов было бы здорово!Спасибо!

...