超音波を使って、あるAndroidデバイスから別のAndroidデバイスに文字列データを転送します。どのように私はアンドロイドで超音波を使って音声でデータを転送できますか?
このプロジェクトを試しましたが、うまくいきませんでした。誰もが、サンプルコードを持っている場合
共有してください。
超音波を使って、あるAndroidデバイスから別のAndroidデバイスに文字列データを転送します。どのように私はアンドロイドで超音波を使って音声でデータを転送できますか?
このプロジェクトを試しましたが、うまくいきませんでした。誰もが、サンプルコードを持っている場合
共有してください。
これは非常に簡単ですが、高いビットレートを期待しません。文字列の場合は、長い文字列ではないことを確認してください(エラー確率が高いほど長くなります)。 ASCIIコードの重要な部分、つまり文字番号127まで作業していると仮定し、必要なのは文字あたり7ビットです。この文字をビットに変換し、QFSKを使用してそれらのビットを変調します(いくつかの変調がありますが、周波数シフトに基づくものは従来のものから試した中で最も頑丈なものでした...)このユースケースのスキーム)。キャリア周波数を18.5,19,19.5、および20 kHzに設定します(設計に数学的に厳密にしたい場合は、シンボル遷移で直交性と位相の連続性を保証する周波数値を選択します。シンボルの急な変化を避けるには、シンボルを同じサイズのウィンドウ、たとえばガウスまたはバートレットで掛けることです。私の経験では、この値を17.5〜20.5 kHzの範囲で動かすことができます(マイク周波数レスポンスの平均値が高くなると、送信を弱め、不要なエラーを誘発します) 。
受信側では、相関またはマッチドフィルタレシーバを実装しています(FFTレシーバも同様に動作しますが、特にゼロパッド付きですが、少し遅くなる可能性があります.Geertzelはドップラー効果による周波数シフトまたはスピーカーマイクの非直線性が受信に影響する可能性があります)。いったんビットストリームを受信すると、文字を作成してメッセージを回復します。
ブロードキャストエラーが多すぎる場合は、シンボルごとに多くのサンプルを選択するか、各周波数値をバンドパスフィルタリングしてからBCHやリードソロモンなどのエラー訂正コードを使用する復調器は、エラーのない通信を保証する唯一の方法であることがあります。
誰もが常に話すことを忘れているのは、同期(送信が開始されたときに受信側で知る)です。ここで創造的であり、多くの電話でテストを行う必要があります。
依存距離あなたはこれらの科目に精通していない場合は、私は偉大な本のカップルを推薦するかもしれないことに注意してください
ありがとう!それは私のために非常に役立ちます。これに関連するソースコードをいくつか教えていただけますか? @vmmf –