首页 > 解决方案 > 在python中计算信号功率的有效方法

问题描述

我有n_sample大脑信号,我想计算每个样本的功率。

这是我的代码:

def return_power_of_signal(input_signal):
    #The power of a signal is the sum of the absolute squares of its time-domain samples divided 
    #by the signal length, or, equivalently, the square of its RMS level.
    #my approach
    
    #input: np.array of (n_sample, time_length)
    
    n_sample = input_signal.shape[0]
    n_time = input_signal.shape[1]
    
    results_array = np.empty((n_sample, 1))
    
    for i in range(n_sample):
        sum_sample = 0
        for j in range(n_time):
            sum_sample += input_signal[i, j]*input_signal[i, j]
        sum_sample = sum_sample/n_time
        results_array[i] = sum_sample
    
    return results_array

但是,我想知道有没有更好的方法(更有效/更少的编码?)计算这个的方法?

谢谢

标签: pythonpython-3.xperformancemultidimensional-arraysignal-processing

解决方案


使用 np.abs(input_signal)**2,这得到绝对值,然后平方算子得到幅度。


推荐阅读