我是一名电力系统工程师,正在做初步的工作,以检测电力系统中导致观察到的波形失真的特定异常。误报在这里是可以接受的,因为错过上述事件可能是灾难性的。这是信号的样子:
现在这个波形是一个异常模拟装置的输出,该装置已经输入了一个纯正弦波,使用示波器捕获代表屏幕上显示内容的样本。
问题:
如何以编程方式检测一个周期的开始和结束位置,以及多个点代表零交叉的位置?
一旦我能做到这一点,我会对其进行 FFT,但可能需要解释方面的帮助。
我没有 DSP 的正式背景,但对所有合理的想法和建议持开放态度,并愿意学习。
附言
这里有样品
-3.15, -3.15, -3.24, -3.34, -3.53, -3.63, -3.73, -3.82, -4.02, -4.02, -4.11, -4.21, -4.31, -4.50, -4.50, -4.50, -4.60, -4.70, -4.79, -4.89, -4.99, -5.08, -5.08, -5.18, -5.28, -5.37, -5.47, -5.57, -5.66, -5.66, -5.86, -5.95, -5.95, -6.05, -6.15, -6.15, -6.24, -6.34, -6.44, -6.44, -6.53, -6.53, -6.63, -6.73, -6.73, -6.82, -6.92, -6.92, -6.92, -7.02, -7.02, -7.12, -7.12, -7.21, -7.21, -7.31, -7.31, -7.31, -7.31, -7.31, -7.41, -7.41, -7.41, -7.50, -7.41, -7.50, -7.41, -7.50, -7.41, -7.41, -7.41, -7.31, -7.31, -7.21, -7.12, -6.92, -6.63, -6.15, -5.37, -4.21, -2.76, -1.60, -0.82, -0.44, -0.24, -0.15, -0.05, -0.05, 0.05, -0.05, 0.05, -0.05, -0.05, 0.05, -0.05, -0.05, -0.05, -0.05, 0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, -0.05, 0.05, -0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15, 0.05, 0.15, 0.15, 0.15, 0.24, 0.15, 0.15, 0.15, 0.24, 0.15, 0.15, 0.15, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.44, 0.44, 0.44, 0.53, 0.53, 0.53, 0.63, 0.73, 0.73, 0.82, 0.82, 0.92, 1.02, 1.02, 1.11, 1.21, 1.21, 1.40, 1.40, 1.50, 1.69, 1.69, 1.79, 1.89, 2.08, 2.08, 2.28, 2.37, 2.37, 2.57, 2.66, 2.76, 2.95, 2.95, 3.05, 3.24, 3.44, 3.44, 3.53, 3.73, 3.82, 3.92, 4.02, 4.11, 4.21, 4.31, 4.40, 4.50, 4.50, 4.60, 4.70, 4.79, 4.89, 4.99, 4.99, 5.08, 5.18, 5.28, 5.37, 5.47, 5.57, 5.66, 5.76, 5.76, 5.95, 5.95, 6.05, 6.15, 6.15, 6.24, 6.34, 6.44, 6.44, 6.44, 6.63, 6.73, 6.73, 6.73, 6.82, 6.92, 6.92, 7.02, 7.02, 7.12, 7.12, 7.21, 7.21, 7.21, 7.31, 7.31, 7.31, 7.41, 7.41, 7.41, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.41, 7.50, 7.50, 7.41, 7.41, 7.31, 7.21, 7.02, 6.63, 6.15, 5.37, 4.21, 2.76, 1.69, 0.82, 0.44, 0.15, 0.05, 0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.15, -0.15, -0.15, -0.05, -0.15, -0.15, -0.15, -0.05, -0.05, -0.05, -0.05, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.24, -0.24, -0.15, -0.24, -0.15, -0.24, -0.34, -0.24, -0.24, -0.24, -0.24, -0.24, -0.24, -0.34, -0.34, -0.24, -0.24, -0.34, -0.34, -0.34, -0.34, -0.44, -0.44, -0.44, -0.44, -0.53, -0.53, -0.53, -0.63, -0.63, -0.63, -0.73, -0.73, -0.82, -0.82, -0.92, -0.92, -1.02, -1.11, -1.21, -1.21, -1.31, -1.40, -1.50, -1.60, -1.69, -1.79, -1.89, -1.98, -2.08, -2.18, -2.28, -2.37, -2.47, -2.66, -2.76, -2.76, -3.05, -3.05, -3.24, -3.24, -3.34, -3.53, -3.63, -3.73, -3.82, -3.92, -4.11, -4.11, -4.21, -4.31, -4.40, -4.50, -4.50, -4.60, -4.70, -4.79, -4.89, -4.99, -5.08, -5.18, -5.28, -5.37, -5.37, -5.47, -5.57, -5.66, -5.76, -5.76, -5.95, -6.05, -6.05, -6.15, -6.15, -6.24, -6.34, -6.44, -6.44, -6.53, -6.53, -6.63, -6.73, -6.82, -6.82, -6.82, -6.92, -6.92, -7.02, -7.02, -7.12, -7.12, -7.12, -7.31, -7.31, -7.31, -7.31, -7.31, -7.41, -7.41, -7.31, -7.41, -7.41, -7.41, -7.50, -7.50, -7.41, -7.41, -7.41, -7.41, -7.31, -7.31, -7.21, -7.12, -6.92, -6.63, -6.15, -5.37, -4.21, -2.86, -1.69, -0.92, -0.44, -0.24, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, 0.05, 0.05, 0.05, 0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, -0.05, 0.05, 0.05, 0.05, -0.05, -0.05, 0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15, 0.05, 0.05, 0.05, 0.15, 0.05, 0.15, 0.05, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.24, 0.15, 0.15, 0.24, 0.24, 0.24, 0.24, 0.15, 0.24, 0.24, 0.24, 0.24, 0.34, 0.34, 0.34, 0.34, 0.44, 0.44, 0.44, 0.53, 0.53, 0.53, 0.53, 0.63, 0.63, 0.73, 0.73, 0.82, 0.82, 0.92, 1.02, 1.02, 1.11, 1.21, 1.31, 1.31, 1.40, 1.50, 1.60, 1.69, 1.89, 1.89, 1.98, 2.08, 2.18, 2.28, 2.47, 2.57, 2.66, 2.76, 2.86, 3.05, 3.15, 3.24, 3.34, 3.44, 3.53, 3.73, 3.82, 3.82, 4.02, 4.11, 4.21, 4.40, 4.40, 4.50, 4.50, 4.60, 4.60, 4.79, 4.89, 4.89, 4.99, 5.18, 5.18, 5.28, 5.37, 5.47, 5.57, 5.66, 5.76, 5.76, 5.86, 5.95, 6.05, 6.15, 6.15, 6.24, 6.34, 6.44, 6.53, 6.53, 6.63, 6.63, 6.73, 6.73, 6.82, 6.82, 6.92, 7.02, 7.02, 7.12, 7.12, 7.21, 7.21, 7.31, 7.31, 7.31, 7.31, 7.41, 7.50, 7.41, 7.41, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.50, 7.41, 7.50, 7.41, 7.31, 7.21, 7.02, 6.73, 6.15, 5.47, 4.40, 2.86, 1.69, 0.92, 0.44, 0.15, 0.15, 0.05, 0.05, -0.05, -0.05, -0.05, -0.05, 0.05, 0.05, 0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.05, -0.15, -0.05, -0.05, -0.05, -0.05, -0.05, -0.15, -0.05, -0.05, -0.05, -0.15, -0.05, -0.15, -0.15, -0.05, -0.15, -0.05, -0.05, -0.15, -0.05, -0.15, -0.15, -0.15, -0.15, -0.05, -0.24, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.24, -0.15, -0.15, -0.15, -0.15, -0.15, -0.15, -0.24, -0.15, -0.15, -0.24, -0.24, -0.24, -0.24, -0.24, -0.24, -0.24, -0.34, -0.34, -0.34, -0.24, -0.34, -0.34, -0.34, -0.44, -0.44, -0.44, -0.44, -0.53, -0.53, -0.53, -0.63, -0.63, -0.63, -0.73, -0.63, -0.73, -0.82, -0.92, -1.02, -1.02, -1.11, -1.11, -1.21, -1.31, -1.40, -1.50, -1.60, -1.69, -1.79, -1.79, -1.98, -2.08, -2.08, -2.37, -2.37, -2.57, -2.66, -2.76, -2.86, -2.95, -3.05, -3.24, -3.34, -3.44, -3.44, -3.53, -3.73, -3.82, -3.92, -4.02, -4.11, -4.11, -4.31, -4.50, -4.40, -4.60, -4.60, -4.70, -4.79, -4.89, -4.99, -4.99, -5.18, -5.18, -5.28, -5.37, -5.47, -5.57, -5.66, -5.76, -5.76, -5.86, -5.95, -6.05, -6.15, -6.24, -6.24, -6.34, -6.34, -6.44, -6.53, -6.53, -6.63, -6.73, -6.73, -6.82, -6.82, -6.92, -6.92, -7.02, -7.02, -7.12, -7.12, -7.12, -7.21, -7.31, -7.31, -7.31, -7.31, -7.41, -7.41, -7.41, -7.41, -7.41, -7.50, -7.41, -7.41, -7.41, -7.50, -7.41, -7.41, -7.41, -7.31, -7.21, -7.12, -6.92, -6.63, -6.15, -5.47, -4.40, -2.95, -1.69, -0.92, -0.53, -0.24, -0.15, -0.05, -0.05, -0.05, 0.05, -0.05, 0.05, 0.05, 0.05, -0.05, -0.05, -0.05, -0.05, -0.05, 0.05, -0.05, -0.05, -0.05, -0.05, -0.05, 0.05, 0.05, -0.05, 0.05, -0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, -0.05, 0.05, 0.05, 0.15, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15, 0.05, 0.05, 0.05, 0.05, 0.05, 0.15, 0.15, 0.15, 0.05, 0.05, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.24, 0.15, 0.15, 0.15, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.34, 0.24, 0.34, 0.34, 0.34, 0.34, 0.34, 0.44, 0.44, 0.34, 0.44, 0.53, 0.53, 0.63, 0.63, 0.82, 0.73, 0.82, 0.73, 0.92, 1.02, 1.02, 1.11, 1.11, 1.21, 1.31, 1.40, 1.50, 1.60, 1.69, 1.79, 1.89, 1.98, 2.18, 2.28, 2.37, 2.47, 2.57, 2.66, 2.76, 2.95, 3.05