3

Androidを使用してピストルショットを検出するガジェットを作成しようとしています。これは、ピストルシューター向けのトレーニングエイドの一部であり、ショットが時間内にどのように分散されるかを示します。テストにはHTCタトゥーを使用します。

MediaRecorderとそのgetMaxAmplitudeメソッドを使用して、最後の1/100秒間に最大の振幅を取得しましたが、期待どおりに機能しません。スピーチは私に0から約25000の範囲のgetMaxAmplitudeの値を与えますが、ピストルショット(または叫び声!)は約15000にしか達しません。8kHzのサンプリング周波数では、かなり高いレベルのサンプルがいくつかあるはずです。

これらがどのように機能するかを知っている人はいますか?最大振幅を登録する前に適用されるフィルターはありますか?もしそうなら、それはハードウェアですか、それともソフトウェアですか?

ありがとう、/ George

4

4 に答える 4

0

agcの問題を理解したようですね。もう1つの提案:FFTがその仕事に適したツールかどうかはわかりません。スライディングパワーエスティメータを使用すると、検出が向上し、CPU使用率が低下する可能性があります。

例:信号=>二乗=>移動平均=>ピーク検出

上記のすべては、モバイルAndroidプラットフォームによく適合する固定小数点演算を使用して非常に効率的に実装できます。

「パーセバルの定理」と「CICフィルター」(カスケード積分コーム)を検索すると、詳細情報を見つけることができます。

于 2010-03-20T14:25:03.123 に答える
0

返事が遅くなってごめん; 別の問題を探し始めるまで、この質問は表示されませんでした...

あなたが試みていると思うことをするためのアプリケーションを開始しました。これは、オーディオベースのラップタイマーです (録音を開始/停止するためのボタン、およびラップ設定のための大きなオーディオノイズ)。まだ完成していませんが、始めるための適切な基盤を提供する可能性があります。

現在、マイクからの信号音量を監視し、周囲の騒音量を設定できます。また、新しい BSD ライセンスを使用しているため、 http ://code.google.com/p/audio-timer/ でコードを確認してください。1.5 API を使用して、できるだけ多くのデバイスを含めるように設定されています。

2 つの主な問題があるという点で、まだ終わっていません。

  1. 要求された周波数がサポートされていないため、オーディオ キャプチャは現在、エミュレートされたデバイスでは機能しません。
  2. タイマー機能はまだ機能していません - 最初にオーディオ キャプチャを取得することに重点を置いていました。

周波数のサポートについて調べていますが、Android にはデバイスごとに試行錯誤しないとどの周波数がサポートされているかを調べる方法がないようです。

また、ローカルの開発マシンには、リストビュー項目のレイアウトを作成して「ラップ」情報を表示する追加のコードがあります。ただし、周波数の問題で脱線しました。ただし、表示とオーディオのキャプチャはほぼ完了しているため、システム時間を使用してタイミング情報の表示値を入力することは比較的簡単で、データ テーブルをエクスポートする機能を追加することはそれほど難しくありません。 SD カード上の CSV。

このプロジェクトに参加したい場合、または質問がある場合はお知らせください。

于 2011-05-30T17:00:28.163 に答える
0

AGC(自動ゲインコントロール)フィルターが設置されているようです。また、周波数特性によってショットを識別できる必要があります。私はそれが可聴スペクトルのほとんどに現れることを期待していますが、スペクトルアナライザー (SpectralView のようなアプリ市場にいくつかあります) を入手し、その周波数の「シグネチャ」と振幅によってイベントを識別してみてください. 手をたたくと、最大振幅はどうなりますか? 布を何枚か重ねたような音を消すもので電話を覆うこともできます。

于 2010-03-19T13:18:38.120 に答える
0

メディアレコーダーにAGCが入っているようです。AudioRecord を使用すると、ショット以外の音に反応することがありますが、振幅を使用してショットを検出できます。通常、射手は射撃中に他の音を立てないので、これは問題ではありません。しかし、完璧にするためにFFTも実行します:-)

于 2010-03-20T09:51:06.423 に答える