Как обернуть непериодический сигнал? - PullRequest
0 голосов
/ 02 декабря 2018

Я хочу проанализировать файл осциллографа trc, найти импульсы и обернуть их.В конце я хочу построить конверт.

файл данных (trc): https://ufile.io/z4m4d

Код:

import matplotlib.pyplot as plt
import pandas as pd
import readTrc
import numpy as np
from scipy.signal import hilbert

#Read trc file
datX, datY, m = readTrc.readTrc('C220180104_ch2_UHF00014.trc')
srx, sry = pd.Series(datX * 1000), pd.Series(datY * 1000)
df = pd.concat([srx, sry], axis = 1)
df.set_index(0, inplace = True)

#Impulse location
x1 = df[1].idxmax() - 0.0005        #numeric used to show area before impulse
x2 = df[1].idxmax() + 0.003         #numeric used to show area after impulse
df2 = df.loc[x1:x2]

#Locate Maximum
print('Maximum at:', round(df[1].idxmax(), 6), 'ms')

#Plot Impulse (abs)
df3 = df2.abs().interpolate()
df3.plot.area(grid = 1,
              linewidth = 0.5)

#Envelope
signal = hilbert(df2)
envelope = np.abs(signal)
df4 = pd.DataFrame(envelope)
df4.plot(color = 'red')

plt.xlabel('Zeit / ms')
plt.ylabel('UHF-Signal / mV')

##plt.savefig('UHF_plot.png', dpi = 600)
plt.show()

print('done')

Выходные данные не похожи на конверт.

Сюжет:

enter image description here

Конверт:

enter image description here

Редактировать:

Это приблизительное значение того, что я хочу.

enter image description here

1 Ответ

0 голосов
/ 03 декабря 2018

Демодуляция огибающей требует пропускания перед преобразованием Гильберта.В вашем случае, я полагаю, что низкий пропуск вашего «сигнала конверта» приведет вас к требуемому результату.Вы также можете создать полу конверт, используя find_peaks , но я предполагаю, что это не было вашим намерением.

...