• 初心
  • 飯島 聖宏(技術部)
  • 2011/02/23

子供の成長って本当に早いですよね。

ほんの三年ほどの間に寝返りを打つようになり、ハイハイができるようになり、つかまり立ちをするようになったと思えばよちよち歩きだし、安定して歩けるようになったと思ったら駆け足ができるようになり。

泣いているだけだったのが喃語を出し始め、単語を話すようになり、二語文を使うようになり、だんだん長い文を話し始め。

歌に合わせて唸っていたかと思えば合わせて体を動かすようになり、一部を一緒に歌えるようになり、一曲まるまる歌えるようになり。

新しいことを体験すると、ほんのちょっとだけそれに戸惑いながらもそれ以上に本当に喜び、うれしそうに何度も何度も繰り返していたり。

そんな感動を覚えていますか。

 

初めて自転車に一人で乗れたとき。初めて浮き輪や補助具なしで泳げたとき。初めて縄跳びを飛べたとき。はじめて逆上がりができたとき。

もっと大きくなってから、あるいは大人になってからも初めての体験というのは新鮮な驚きと感動がありますよね。

いろいろなスポーツを体験してきましたが、それぞれ初めて防具や (練習用も含め) ユニフォームを着けたときのなんとなく恥ずかしく、うれしく、ちょっと誇らしいような感じを今も覚えています。

何度も体験するとそういった驚きや感動もだんだん感じなくなってしまいます。最初の頃の緊張身の引き締まる感じは忘れたくないものです。

ということで今回は初心に戻り真面目に FlexPro のスクリプトをご紹介したいと思います。

最初の投稿 で波形の興味範囲をグラフ上カーソルで指定してその部分だけフィルタをかけ、FFT を実行しワークシートに表示する方法をご紹介しました。

ここでご紹介した公式を利用した応用編を今回はご紹介したいと思います。

まずは、カーソルで指定した波形の興味範囲において 0 より大きなすべての値を 0 に置き換える場合は下記のような公式を使用します。

ここで「SampleWave」は元のシグナルの名前、「2D ダイアグラム」はグラフ (ダイアグラム) の名前とします。

Dim sect = SampleWave['2D ダイアグラム.2D'.Cursor(fpCursorMinX).PositionIndex,'2D ダイアグラム.2D'.Cursor(fpCursorMaxX).PositionIndex]
For Each Row i In sect Do
 If sect.y[i] > 0 Then
  sect.y[i] = 0
 End
End
Return sect

範囲の値が -1 より小さい場合は -1、1 より大きい場合は 1 に置き換えるには、

Dim sect = SampleWave['2D ダイアグラム.2D'.Cursor(fpCursorMinX).PositionIndex,'2D ダイアグラム.2D'.Cursor(fpCursorMaxX).PositionIndex]
For Each Row i In sect Do
 If sect.y[i] > 1 Then
  sect.y[i] = 1
 ElseIf sect.y[i] < -1 Then
  sect.y[i] = -1
 End
End
Return sect

となります。

過去のエントリでご紹介した公式では条件式やループ式はあまり使いませんでした。FlexPro のスクリプト言語が良くできていて、演算処理が比較的重くなりがちな条件式やループ式は通常は使わなくても済ますことができることを実感してほしかったのと、私がそれらに軽度のアレルギーがあったからです。

今回のような場合は条件式を使わざるをえないので使用していますが、それでも上記のようにシンプルな式で実行できるのは FlexPro のスクリプト言語 FPScript の良さであると思います。

 

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/460
内容に対しての関連性がみられないものは削除する場合があります

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報