2006-03-25

サウンドデバイスのクロックは正しくない

ソフトで信号処理をするということは、サウンドデバイスから音をキャプチャーして解析するということですが、サウンドデバイスは音をA/D変換してパソコンに取り込みます。A/D変換するときのサンプルレートは、ほとんどがデバイスによって決まっていて、よくある周波数が44.1kHzです(他には22.05、11.024、48kHzや8kHzなどもある)。 しかし、44.1kHzで取り込むように指定しても、サウンドデバイスのクロックが正確でないため、44.1kHzだと思って処理をすると結果が違ってきます。 例えば、アマチュア無線のSSTVや気象FAXのような場合、サウンドデバイスのクロックを基準に処理をすると、垂直方向の同期が狂ってしまうため、見た目でおかしいことがわかります。SSTVで有名なMMSSTVというソフトでは、サウンドデバイスのクロック誤差を検出するために、標準電波(かつてのJJYの類い)を利用して垂直方向の同期を合わせる機能があります。いまはHFでのJJYがないのですが、気象庁がやっている気象FAX(JMH)で合わせるという方法あります(120rpmなので0.5秒間隔で黒いところが現れる)。 FSKの場合にも、サウンドデバイスのクロック誤差が問題にはなりますが、比較的簡単な方法で回避できたりします。例えば、ゼロクロスの場合、クロックがずれるとカウント数が変わってしまいますが、検出しようとしている周波数が2つある場合、両方のカウント数がずれることになります。正確な周波数がわからなくても、カウント数の違いだけで処理をしてしまえばよいわけです。 変調速度への同期ですが、ボーレートが遅ければさほど問題にはなりませんし、はやい場合だとサンプル誤差がそもそもあるので、1か2サンプルはズレていると仮定しておいたほうが同期させやすいです。サウンドデバイスのクロック誤差もそれで吸収させてしまうという方法があります。

0 件のコメント: