dポイントプレゼントキャンペーン実施中!

最初は不規則信号で、ある区間では規則信号を出力するシステムがあります。
現在の信号が、不規則信号か規則信号かをプログラムでリアルタイムに判別したいと考えています。

つまり、ずっと信号が出力されている状態で、
「今は不規則信号が出力されている」
「今は規則信号が出力されている」
という判別を、プログラムに行わせたいのです。

人間が信号を目で見れば明らかなのですが、
プログラムではどのように実現すればいいのかわかりません。
どなたか、アドバイスをいただけませんでしょうか?

統計、信号処理に関しては少し知識があります。

☆sin波のような規則的な形を示す信号を規則信号
 そうでない、不規則な形を示す信号を不規則信号
 と表現しています。 

A 回答 (4件)

 少し違った側面から参考にでもと思いつきましたので勘違い、無礼等がありましたらご容赦を!


 課題の数学的あるいは論理的解決手法と具体的なハードウェア、ソフトウェアによる実現の間に少し隙間があるようない気がしました。
仮にお話から想像し
 対象の波形をオシロスコープにて観測され、目視で容易に規則/不規則の信号を判別できるため、これをパソコンに取り込んで自動的に判別を行わせようというもくろみとしますと。
1番目に
 パソコンにA/Dコンバータというハードが必要になります。
これによってプログラムが観測波形を時間と振幅を数値で扱う事が可能になります。若干のハードの知識が必要です。
高度なテクニックがあればサウンド機能で代替えする例があります。
2番目
 私はわかりませんが情報理論的なプログラミングテクニックにて処理プログラムを完成されればいいはずです。
 ただ、目視にて波形の違いが分かる事を数学的表現で表記できる程度の技量がこの処理プログラムでは必要になるかと思います。
    • good
    • 0

質問の条件だけからは適切な回答が出来ません。


不規則と言うのがどれぐらい不規則なのか、規則と言うのがどれぐらい規則的なのか、それらがはっきりすれば適切なフィルタが設計できるでしょう。

規則信号の周波数とパワー、不規則信号の周波数分布とパワー、規則信号と不規則信号は同時に発生するのかなどで対処は異なります。

信号を目で見て明らかに差が認められると言うことなのでローパスフィルタの出力振幅をチェックするだけでも良いかもしれません。

自己相関で周期性が認められると言うことなので、対象の信号の自己相関と規則信号の自己相関との相互相関、及び対象の信号の自己相関と不規則信号の自己相関との相互相関とでどちらがより相関が高いかで判別できるかもしれません。
    • good
    • 0

規則信号の周波数が分かっているのであればバンドパスフィルターでその周波数の信号を取り出して振幅をチェックすれば良いです。


もう少し精度をあげるのであればバンドパスフィルター出力の自乗平均と信号全体(信号-フィルター出力ならなお良い)の自乗平均の比を求めるのが良いです。

周波数がはっきりしないのであればFFTを計算してピークの周波数があるかどうかをチェックするという手段があります。
また、自己相関関数を計算する方法もあります。
ただし、FFTも自己相関も計算に時間が掛かるので信号の周波数によってはDSPや専用のハードウエアが必要になるかもしれません。

規則信号の検出の精度を上げようとすると複数サイクルの信号が必要となるので検出に必要な時間が長くなりリアルタイム性は損なわれます。

Y. W. リー著/宮川洋, 今井秀樹訳の「不規則信号論」と言う本が参考になると思いますが絶版になっています。大学の図書館にならあるかもしれません。

参考URL:http://bookweb.kinokuniya.co.jp/htm/4501314206.h …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>バンドパスフィルターでその周波数の信号を取り出して振幅をチェックすれば良いです。

振幅をチェックするというのは、振幅が一定の大きさを保っているかどうかを調べるということでしょうか?


それと、自己相関関数を使ってできないかと考え、試してみたことがあるのですが、やり方がわからず断念しました。
ある信号の自己相関関数を計算すると、その信号の周期は得ることができたのですが
そこからどのようにして、信号が規則的かどうかをプログラムに判断させるか、方法が思いつきません。

お手数ですが、もう少し教えていただけませんでしょうか?
宜しくお願いします。

お礼日時:2006/10/11 18:45

SETI地球外知的生命体探査のソフトは参考にならないでしょうか。

ソースコードも公開しているようですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!