0

c# .NET でオシロスコープ用のアプリケーションを開発しています。zedgraph コントロールを使用して、さまざまな種類の波 (正弦、正方形など) を描画しています。オシロスコープから値を取得し、サイズ 1024 (バ​​イト配列) のバッファーに格納し、実行時に期間、周波数、立ち上がり時間、立ち下がり時間などのパラメーターを計算する必要があります。この目的のために、信号全体の単一サイクルのみを抽出する必要があります。もう1つの問題は、値が常に上昇または下降するとは限らないことです。平均値は、この[0,0,0,1,1,2,3 ,4,5,5,6,6,6,5,5,4,3,2,1,1,0,0,0......]. 信号はマシンから継続的に受信されます。波が常にゼロ付近で振動しているとは限りません。よろしくお願いします

4

2 に答える 2

2

頻度はいくつかの方法で見積もることができます。数学ライブラリがある場合、おそらく最も簡単なのは、FFTを計算し、最低の周波数を取ることです。

または、ゼロ交差(平均値付近)を確認することもできます。振動が速くなると約0になり、周波数が高くなります。同様に、極値は周波数について多くのことを教えてくれます(極値とゼロが交互になり、等間隔に配置されている正弦波を考えてみてください)。

生理変換と呼ばれる変換もありますが、あまり覚えていません。曲のテンポを見つけるための音楽の本で見ました。

http://www.cs.berkeley.edu/~vazirani/s09quantum/notes/lecture4.pdf

別の方法は、自己相関を使用することです。それが大きい場合は、関数がそれ自体と「同期」していることを意味します(形状が高速に変化しないと仮定)。そして、これらの最大値の間の距離を簡単に計算できるはずです。

于 2011-01-22T06:37:25.383 に答える
0

波の山と谷の間の時間間隔を調べると、その特定の波の波長の半分が得られます。

代替テキスト

グラフ 1 の場合、最初の谷は 2、最初の山は 12 です。これらの点の間にかかる時間を調べると、波長が半分になります。

グラフ 2 についても、同じ原理が適用されます。グラフの各セクションの波長 (したがって周期) を計算できます。

于 2011-01-22T06:55:21.270 に答える