【发布时间】:2013-06-12 23:57:37
【问题描述】:
我正在使用 DAQ 对正弦电压进行采样。我将样本存储在一个列表中,然后对该列表进行 FFT。我的问题是我只想对正弦波的完整周期进行 FFT,所以我想找到值非常接近零的列表的索引值,以便我可以将其他值更改为零。
例如,如果我有一个非常粗糙的正弦波采样为:
[-3, -2, -1, 0, 1, 2, 3, 4, 3, 2, 1, 0, -1, -2, -3, 4, -3, -2, -1, 0, 1, 2]
我想检测零(实际上是每隔一个零),以便我可以制作数组:
[ 0, 0, 0, 0, 1, 2, 3, 4, 3, 2, 1, 0, -1, -2, -3, -4, -3, -2, -1, 0, 0, 0]
另一件事是,由于存在噪声并且我的采样频率不是无限大,因此我不会得到完全为零的值。因此,我需要在范围(-0.1,0.1)等范围内查找值。
我查看了 numpy 库,并且 numpy.where() 看起来它可能是正确的工具,但我在实现它时遇到了问题。我是 EE,几乎没有编程经验,非常感谢任何帮助!
【问题讨论】:
-
你的例子不清楚。因此,您希望在某个容差范围内找到零点。在您的示例中,左侧的负数和右侧的正数发生了什么?
-
@kirelagin “我的问题是我只想对正弦波的完整周期进行 FFT”。他希望将第一个接近零值的左侧(包括)所有内容归零,并将最后一个接近零值的右侧(包括)所有内容归零。特别是,他只停留在寻找第一个接近零的值和最后一个接近零的值。
-
@Patashu 是的,这是正确的。这绝对是解释我想要完成的事情的更好方式。
标签: python python-2.7 numpy