FIRフィルタ

前回AF PSNを複素係数のFIRフィルタで作成したが,その係数を変えれば任意の周波数特性を持ったフィルタが作れることはいうまでもなく,AF PSN はその一例にすぎない.

FIRフィルタの係数は,周波数特性を逆フーリエ変換すれば得られるので手間はかからない.とはいえ手計算できるものでもないので,AF PSN 作成の際に,係数を求めるために作ったツールをここにUPしておいた(Calc_Coeff_of_CPLXBPF.m).

これは,拡張子mが示すようにMATLAB,GNU Octave 上で動くスクリプトである.
GNU Octave はフリーウェアでこちらから入手でき,Windows の場合,octave-4.4.0-w64_1-installer.exe ならインストールは容易かと思う.

スクリプト内でパスバンドの周波数を書き換えて実行すれば,その特性を実現する係数を定義するヘッダファイルが自動生成される.
これをincludeしてコンパイルすれば,設定どおりのパスバンドを持ったBPFが実現できる.
複素係数フィルタであるが,実数部のみ使用すれば普通のフィルタと同じである.

 

さて,前回製作したAF PSNであるが,パスバンド内のリップルとパスバンド外の減衰特性が気になった.周波数特性を求めたところ下図のようになった.

Rect

理由は,窓関数を使用していなかった(=矩形窓)ためである.
そこで,フィルタ係数に窓関数を掛けてみた.
(窓関数はスクリプト内で指定できるようにしてある)

 

Hann 窓
han

Hamming 窓
hamming

Blackman 窓
blackman

Bartlett 窓
bartlett

使用する窓関数としては Hamming か Blackman になるだろう.
Blackman のほうが減衰特性がなだらかであるが,それでも十分急峻な減衰特性なのでこれがよいと思う.
(ヘッダファイルとCソースファイルを更新しているので,日付を確認の上ご利用願います)

音響ホーン

以前は40KHzのトランスデューサ(写真左)を使ってバットディテクターを製作していたが,
40KHz付近しか観測できない,という制約があった.
今回のバットディテクターでは,
広帯域で超音波を観測するためにMEMSマイク(写真右)を使っている.
ただ,トランスデューサは40KHz付近の感度は高く,
40KHzに限った感度の比較では,MEMSマイクは今一つな感じがする.

20180311_133045~2

写真を見ればわかるように,
MEMSマイクの音響ホールは直径0.5mmしかない.
トランスデューサの方は,内部の振動板らしきものは,直径8mmほどある.
開口面積がMEMSマイクの方が格段に小さいため,
感度が悪いのも無理はない.

そこで,音響ホーンを用いて開口面積を大きくし,感度の向上を試みた.

20180311_131230~2

3Dプリンタで作成した超音波用の音響ホーン.

定量的なデータはとっていないが,聞き比べた感じでは,
トランスデューサと同等以上の感度が得られているようだ.

バットディテクタ

知人からの相談がきっかけで,
新しい方式のバットディテクターを開発,試作した.

バットディテクターは,コウモリの出す超音波を可聴音に変換するもので,
主な方式として次の3種類のものが従来からある.

・ヘテロダイン式 (Heterodyne)
・フリークエンシーディビジョン式(Frequency Division:周波数分周式)
・タイムエキスパンション式(Time Expansion:時間軸延長式)
Wikiより.

これらの方式では,

・ヘテロダイン式
チューニング操作による探索が必須.周波数が大きく異なるものは同時観測できない.
・周波数分周式
レベルが最も高い信号しか観測できない.周波数以外の情報が失われる.
・時間軸延長式
リアルタイムで観測できない.

といった短所がある.

今回開発したのものは,
超音波領域の信号のスペクトルを周波数方向に圧縮し
全てを可聴音の領域に詰め込む方法.
「スペクトラム圧縮式」としておく.
この方式では,従来方式の上記欠点が改善される.
つまり,チューニング操作不要で,
周波数に関わらず同時に複数対象を
リアルタイムに観測できる.

sc01

信号処理方法としては,下記のように2種類考えられる.
今回は,下の方法で試作をしてみた.
20171212-2