Среднее среднеквадратичное значение трехмерного аудиосигнала в Python
Я довольно новичок в программировании и Python. Я работаю над проектом, в котором я создал банк фильтров Auditory с двумя банками фильтров Gammatone. Теперь я получил матрицу 39x10x8545. Я хочу рассчитать среднее значение среднеквадратичной энергии по оси времени (более 8545), чтобы уменьшить размерность сигнала. Может кто-нибудь предложить мне лучший способ сделать это эффективно в Python, потому что я не могу позволить себе много памяти из-за очень большого звукового сигнала. Заранее спасибо.
2 ответа
Я хотел бы ответить на этот вопрос сам, основываясь на ответе Джмоффата. Я попробовал его ответ, но обнаружил, что numpy.pow() дал мне очень медленные результаты. Поэтому я попытался с помощью
math.sqrt(numpy.mean(x**2))
Это дало мне более быстрые результаты. Я это понимаю math.pow()
медленный, так как он должен учитывать многие другие вещи, такие как дробные силы и другие вещи, ясно обсуждаемые здесь. Контекст важен, так как я уверен, что у меня будут только целые числа, а точнее "2".