Нормализация температурных данных, полученных в результате автокорреляции - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть сигнал температуры и сигнал деформации.Я вычислил ACF обоих сигналов, используя np.correlate(..., "same"), поэтому теперь я получаю коррелированный сигнал с той же длиной, что и входы.

Я коррелирую температуру с деформацией, используя np.correlate(Temperature, Strain,"same").

Я получаю коррелированный сигнал, затем сдвигаю его, вычисляя максимальные пики.

Теперь амплитуда коррелированного сдвинутого температурного сигнала очень высока, я хочу нормализовать его до 0-40 градусов.

Как мне это сделать?

 # ACF between two components
    x1x2 = np.correlate(normalized[:,0], ydatanew, 'same')

    # see the results
    f = plt.figure()
    ax = f.add_subplot(111)
    ax.set_title('ACF')
    ax.plot(x1x2)
    peaks_indices = signal.find_peaks_cwt(x1x2, np.arange(1,10))
    delta_index = np.argmax(peaks_indices);
    print(delta_index)
    shifted_signal = x1x2[delta_index:]
    f = plt.figure()
    ax = f.add_subplot(111)
    ax.set_title("shifted temperature Signal")
    ax.plot(shifted_signal)
    # mainloop
    plt.show()

enter image description here

http://www.mediafire.com/file/r7dg7i9dacvpl2j/curve_fitting_ahmed.xlsx/file файл данных

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Я отправил его для аналогичного ответа, с кодом, здесь

Чтобы получить пик в нужном месте, вы должны разделить на количество суммируемых элементов.Это можно легко упустить, используя функции numpy / scipy, которые суммируют, но не делят на длину.

Относительно определения .

0 голосов
/ 23 сентября 2018

Вы хотите сказать, что хотите выполнить линейную интерполяцию?Если так:

import numpy
a = numpy.random.normal(size=20)
numpy.interp(a, (a.min(), a.max()), (0, 40))
array([23.84183492, 26.07583446,  0.        ,  7.39940903, 16.78754596,
       15.42560512, 40.        , 24.08125307, 23.23089914, 24.66628223,
       9.18832629, 26.16217936, 25.04153859, 26.3898786 , 34.59643449,
       25.15859023, 23.27551679, 27.92135125, 15.41054983, 21.61565544])
...