Не рассчитывается левая ветвь

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
Win 7/10, Python 3.8

Пытаюсь реализовать данный алгоритм: "Затем из сейсмических данных извлекается исходный статистический импульс с нулевой фазой, амплитудный спектр которого вычисляется из квадратного корня из амплитудного спектра автокорреляции каждой трассы."

Использую следующий код:

Python:
    def form_pulse(self, n, shift):
        lag = int(self.txt_bot.text()) - int(self.txt_top.text())
        sp = []
        for i in range(n - shift, n + shift):
            trace_df = self.form_trace_array(i)
            print(trace_df)
            auto_corr = acf(trace_df, nlags=lag / 2, bartlett_confint=False)
            self.viz_acorr(auto_corr)
            sp_auto = fft(auto_corr)
            sp.append(sp_auto)
        sum_sp = np.sum(sp, axis=0)
        sq_sp = np.sqrt(sum_sp)
        pulse = ifft(sq_sp)
        return pulse
Ошибки нет, код отрабатывает, но импульс и АФК получаются только с правой ветвью. Кто может подсказать: как получить и левую?
Тестовые данные прилагаю.
 

Вложения

  • test_data.txt
    3,9 КБ · Просмотры: 3

Форум IT Специалистов