正弦波の電圧をサンプリングするために 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]
配列を作成できるように、ゼロ (実際には 1 つおきのゼロ) を検出したいと思います。
[ 0, 0, 0, 0, 1, 2, 3, 4, 3, 2, 1, 0, -1, -2, -3, -4, -3, -2, -1, 0, 0, 0]
もう 1 つは、ノイズがあり、サンプリング周波数が無限に大きくないため、正確にゼロの値が得られないことです。したがって、range(-0.1,0.1) などの範囲で値を探す必要があります。
numpy ライブラリを調べたところ、numpy.where() は適切なツールのように見えましたが、実装に問題があります。私は EE であり、プログラミングの経験はほとんどありません。