【发布时间】:2021-04-22 07:23:40
【问题描述】:
我正在尝试了解频率估计的过零方法。经过搜索,找到了这段代码:
est_freq = round(framerate / np.mean(np.diff(zero_crossings)) / 2)
进一步剖析学习,我写了以下代码:
import numpy as np
framerate = 1e3
a = [1, 2, 1, 1, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10]
signs = np.sign(a)
diff = np.diff(signs)
indices_of_zero_crossing = np.where(diff)[0]
print(a)
print(signs)
print(diff)
print(indices_of_zero_crossing)
total_points = np.diff(indices_of_zero_crossing)
print(total_points)
average_of_total_points = np.mean(total_points)
print(average_of_total_points)
freq = framerate/average_of_total_points/2
我的问题是,freq = framerate/average_of_total_points/2 行发生了什么。求过零差的均值除以 2 的目的是什么?
谁能解释一下?谢谢。
【问题讨论】:
标签: python signal-processing frequency zerocrossing