Silencer
焦点を高速に動かしたり, AM 変調をかけたりすると, 振動子に与える位相・強度データが時間的に急峻に変化し, 可聴音ノイズとなって現れる.
AUTD3には Silencer 機能があり, 位相・強度データの変化を線形補間することでこのノイズを抑制する.
Silencerの設定は SetSilencer で行う.
詳細は鈴木らの論文[^suzuki2020]を参照されたい. 概要は以下の通りである.
- 振幅変調された超音波は可聴音を生じる.
- 超音波振動子を駆動する際, 位相変化が振幅変動を引き起こす.
- したがって可聴音の騒音が生じる.
- 位相変化を線形に補間し段階的に変化させることで, 振幅変動を抑えられる.
- したがって騒音を低減できる.
- 補間を細かくするほど, 騒音を小さくできる.
Silencer は位相
超音波の周期を
ここで
目標までの距離が
この実装の都合上, 移動平均フィルタとは異なる挙動を示す場合がある.
元時系列への忠実度という観点では移動平均フィルタが正しいが, 位相変化量が
振幅変動が騒音を引き起こすため, 強度パラメータ
補間方式は 2 つのモードがある.
FixedCompletionTime: 位相 / 強度の変化が一定時間で完了するように, 完了時間を指定する.- 完了時間は超音波周期 (25 µs) の整数倍である必要がある.
FixedUpdateRate: 上述のを直接指定し, 全振動子で位相 / 強度の変化速度を一定にする.
デフォルトは FixedCompletionTime であり, 強度 0.25 ms, 位相 1 ms の完了時間に設定されている.
Silencer の無効化は, 位相 / 強度変化が超音波周期 (25 µs) で完了することと等価である.
FixedCompletionTime モードの場合, 補間完了時間が, サンプリング周期より長くなると, 目標値に到達する前に次のデータが来てしまうため, 補間が完了しないまま次の目標値へ変化してしまう.
そのため, これが起きないように, 補間完了時間がサンプリング周期より長い値を設定するとエラーとなる.
このエラーの対処方については チュートリアル/静音化 を参照されたい.
[^suzuki2020]: Suzuki, Shun, et al. “Reducing amplitude fluctuation by gradual phase shift in midair ultrasound haptics.” IEEE transactions on haptics 13.1 (2020): 87-93.