我有这些参数的信号:1kHz频率,1Vpp。我正在尝试找到最佳算法来计算20个样本的信号幅度和频率。我将尝试用C语言(在我的微控制器上)实现这个算法。我估计采样频率为采样正弦波的2.5kHz Pic:
有没有人有想法?感谢帮助!
T
是时期。
您可以通过将数据作为折线(线性或更高插值)处理来提高精度。
现在振幅只是A = (max(value)-min(value))/2
。
您还可以估计初始阶段t0
,这是x位置,其中数据交叉偏移值和偏移量y0 = 0.5*(max(value)+min(value))
当心y0
可能不仅仅是零...
所以你的sinwave就像:
y(t) = y0 + 0.5*A*sin((t-t0)*2.0*M_PI/T)