csvファイルから読​み込んだ値に対しての​ゼロクロス検出。また​、閾値変更方法につい​て。

25 ビュー (過去 30 日間)
Fumiaki Esaki
Fumiaki Esaki 2018 年 7 月 20 日
編集済み: michio 2018 年 7 月 21 日
csvファイルから値を読み込み、ゼロクロスを検出し、その合計回数をはき出させるにはどのようにすればよいでしょうか?最終的にはゼロクロスの閾値を自由に指定して行いたいです。

回答 (1 件)

michio
michio 2018 年 7 月 21 日
編集済み: michio 2018 年 7 月 21 日
いろんな方法で実現できるとは思いますが、1例として参考になりましたら。
以下のサイン波(変数 y)で考えます。
t = linspace(0, 8*pi, 1000);
y = sin(t);
plot(t,y)
y の前後の値を掛け合わせてマイナスの結果となる箇所は、値の符号が変わっている、すなわちゼロクロスが発生していると考え、
zeroCross = y(1:end-1).*y(2:end) < 0;
find 関数を使うと位置が分かります。
find(zeroCross)
ans =
125 250 375 500 625 750 875
任意の閾値というのは、その値を y から引くなどの処理で大丈夫そうですがいかがでしょう?

カテゴリ

Help Center および File Exchange言語の基礎 についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!