как нормализовать вывод scipy.signal.correlate между -1 и 1

#scipy

#scipy

Вопрос:

Кто-нибудь знает, как нормализовать вывод функции scipy signal.correlate, чтобы возвращаемый массив имел числа от -1 до 1. на данный момент его возвращаемые числа от -1 до 70000.

Ответ №1:

В AFAIK scipy.signal.correlate нет опции автоматической нормализации, однако вы можете легко нормализовать сигнал самостоятельно:

 import numpy as np
def normalize(tSignal):
      # copy the data if needed, omit and rename function argument if desired
      signal = np.copy(tSignal) # signal is in range [a;b]
      signal -= np.min(signal) # signal is in range to [0;b-a]
      signal /= np.max(signal) # signal is normalized to [0;1]
      signal -= 0.5 # signal is in range [-0.5;0.5]
      signal *=2 # signal is in range [-1;1]
      return signal
  

И более общая функция, нормализующая вектор в диапазоне [a, b]:

 import numpy as np
def normalize(signal, a, b):
      # solving system of linear equations one can find the coefficients
      A = np.min(signal)
      B = np.max(signal)
      C = (a-b)/(A-B)
      k = (C*A - a)/C
      return (signal-k)*C