バットディテクター(Bat Detector)の製作

バットディテクター(Bat Detector)の製作

[TopPage] -> [PIC] -> [BatDetector]  |   [blog]
[はじめに]  [1号機]  [2号機]


 コウモリの発する超音波を可聴音に変換して聞こえるようにする装置をバットディテクターとかコウモリ音翻訳機と呼ぶようです。
 コウモリの鳴き声(40kHz前後←種類によっても異なる)を人間が聞こえる帯域(<20kHz)に変換するためには周波数変換が必要となります。インターネットで調べてみると

1. 周波数分周方式(Frequency division)
 超音波をパルス列に整形後、カウンタでカウントダウンし周波数を1/2,1/4・・・に変換する。
 参考URL http://home.netcom.com/~t-rex/BatDetector.html
  【長所】
  ・ 簡単な回路で実現できる。
  ・ 周波数をリニアに変換するので周波数の高低の関係が変換後でも保たれる。(原音の周波数差は1/Nになる)
  ・ 広い周波数範囲をカバーできる。
  【短所】
  ・ 超音波の強弱の情報がなくなる。(小さい音でも大きな音でも同じ大きさに変換される)
  ・ 入力信号が小さい場合、途切れ途切れの音になる。
  ・ サイン波が矩形波に変換されるため、奇数倍音が混入される(矩形波には周波数的に奇数倍音が含まれる)。
  ・ 整数分の1にしか変換できない。
2. ヘテロダイン方式(Heterodyne)
 二つの周波数を重ねるとその差分の周波数成分(ビート音)が発生することを利用して可聴音に変換する方式。コウモリの超音波と40kHzの信号を合成する場合が多いようです。
 参考URL http://bertrik.sikken.nl/bat/index.html
  【長所】
  ・ 超音波の強弱まで再現できる。
  ・ 原音の周波数差が保たれる。
  【短所】
  ・ 回路が複雑になりがち。
  ・ 変換用基準信号の前後の周波数が重なってしまう。(たとえば40KHzを使った場合、38KHzと42KHzの音が共に2KHzに変換される。きちんとフィルタすれば回避可能)
の二つの方式が殆どのようです。

 その他にテープ(メモリでもいいですが)に録音し、ゆっくり再生する方法もありますがリアルタイムで変換できないことと40kHz付近まで録音できる機器の入手が必要という大きな欠点があります。
 メモリに保存する場合でも高速なA/D変換と大量のメモリが必要でPICでは実現できそうにありません。

 リアルタイム性ということであれば、ビデオデッキの早送り時の再生音(早送りでも通常の高さの音声が再生される)のように間引いて再生すれば間引かれた部分の情報は欠落しますが変換が可能です。
 人間の声の特性として20mSec程度の短い時間であれば殆ど変化しないということなので耳の特性も似たものだと仮定すると20mSec分録音しその1/2のデータ(10mSec分)を20mSecかけて再生すれば40kHz付近の音まで可聴音へ変換できると思いますが80kHzでA/D変換する必要があり、PIC単体では困難と思います。(もっと周波数の低い人間の音声であればPICでも処理できそう(ピッチ変換方法として使えそう)ですのでそのうちトライしてみたい)

 今回、バットディテクターを作成しようと思ったきっかけは、新たな方法を思いついたからです。
 A/D変換する際、サンプリング周波数の1/2(ナイキスト周波数)以上の成分があるとその成分はナイキスト周波数から低い周波数に向かって折り返し、折り返し歪みになります。
 更に周波数を上げサンプリング周波数(この時点で0Hzまで到達する)を超えると今度は高い周波数に向かって更に折り返さることになります。
 通常のA/D変換では禁断とされるこの現象を積極的に利用することで周波数変換が可能であり、バットディテクターも作れるのではないかと考えました。

 図1がブロック図で、ナイキスト方式と命名します。

図1 ブロック図


[はじめに]  [1号機]  [2号機]
[TopPage] -> [PIC] -> [BatDetector]  |   [blog]