python - 在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
但是,我想知道有没有更好的方法(更有效/更少的编码?)计算这个的方法?
谢谢
解决方案
使用 np.abs(input_signal)**2,这得到绝对值,然后平方算子得到幅度。
推荐阅读
- ios - 无法获得圆形 mdc 卡
- c++ - unseq 执行策略是否要求迭代器的 value_type 为 Cpp17CopyAssignable?
- javascript - 通过给组件一个 prop 来在 React Hook 中存储一个数组
- map-projections - tileserver-gl:在其他 CRS 中服务和渲染
- android - 如何更改材质滑块字体
- asp.net-mvc - 这就是我想做的。我想把它们联系在一起
- javascript - 流星 1.2 部署
- c++ - 为什么我不能立即为带有 (string::Iterator& it) 参数的函数传递 string.begin() ?
- git - 具有自签名证书的本地 HTTPS GitLab 服务器的克隆问题
- python - Python Asyncio生产者-消费者工作流拥塞/增长队列