#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