問題タブ [sample-rate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1141 参照

android - ジャイロスコープの精度は Android のセンサーの遅延と相関していますか?

少なくとも 50Hz のサンプリング レートでジャイロスコープの非常に正確な回転測定が必要です (多いほど良い)。

これが、ジャイロスコープのサンプルレートを変更すると測定の精度が向上/低下するかどうかを知りたい理由です。たとえば、ジャイロスコープの更新レートをSENSOR_DELAY_FASTESTよりも低く設定すると、回転測定の精度が向上しますか?

ありがとうございました!

0 投票する
1 に答える
252 参照

ios - Xcode でオーディオの再生品質を向上させる方法はありますか?

ユーザーに豊富な自然音のコレクションを提供するアプリを作成しています。ただし、トラックは 48khz であり、アプリのサイズを小さくするために 38khz に縮小する必要があります。AVFoundation を使用してオーディオを再生します。これが音質の低下につながるのではないかと心配しています。Xcode で再生中のオーディオ品質を改善する方法はありますか。

0 投票する
1 に答える
114 参照

mongodb - MongoDB Aggregation Framework のサンプル レート

データベース ソリューションに MongoDB を試してみたいので、いじっています。Aggregation Frameworkは完璧で、ドキュメントのほとんどは、私が何をしなければならないかをよく説明しています。

私のデータは次のようになります。

たとえば、1 秒あたりのデータを集計したい場合は、次のようにします。

私の質問は、$second や $minute などの事前定義されていない サンプル レートでデータを集計するにはどうすればよいですか? 30 秒としましょう。

私の例のコードを使用して、2 つの結果を返したいと思います。

前もって感謝します!

0 投票する
1 に答える
548 参照

matlab - simulink で信号を正規化しようとしているときに不正なレート遷移が発生しました

信号の最高値が常に 1 になるように正規化したい simulink に信号があります。次に、信号をその値で割ります。

信号生成ブロック、実行中のリセット可能ブロック、除算ブロック、およびスコープを使用した小さなテストは問題なく実行されます。しかし、この正規化関数を simulink モデルに追加すると、次のエラーが表示されます。

小さなテスト ケースを他のモデルに接続する必要さえありません。モデルに入れるだけで、このエラーが発生します。奇妙なことに、RunningResettable ブロックをコピーすると黄色に変わります。これは、サンプリング レートが異なることを示しています。なぜこれが起こるのかわかりません。RunningResettable の背後にゼロ次ホールド ブロックを追加しようとしましたが、それは役に立ちませんでした。

厄介な RunningResettable-block を含む Simulink ブロック シート

示唆されているように、RunningResettable-Block の R 入力に別の定数ブロックを追加しようとしました。そのブロックに対していくつかのサンプリング周波数 (-1、0、1/fAb) を試しましたが、役に立ちませんでした。 R 入力に定数ブロックを追加した後に発生するエラー

0 投票する
1 に答える
1456 参照

java - Java - タイムスタンプを取得するために Wave ファイルから読み取るバイト数を決定する

AudioFormatオブジェクトがあります (から返されますaudioInputStream.getFormat())。対応する wav ファイルから読み取りを開始するタイムスタンプ (ミリ秒単位) があります。適切な timeStamp に到達するために、AudioInputStream から読み取る/スキップするバイト数を決定するにはどうすればよいですか?

フレーム レート (およびフレーム レートがサンプル レートにどのように関連するか、または関連しないか) について混乱します。

これは私がこれまでに持っているものです... startPos はミリ秒単位のタイムスタンプです。

私はどこにいますか?

編集:私のコードは実際に機能しましたが、他のエラーが発生しました。

0 投票する
0 に答える
577 参照

android - fft は 44100 サンプルレートでは機能しません

FSK 信号の解析について、以前ここでいくつか質問をしてきました。サンプルレート44100のfsk信号を生成して記録しています。これには、「1」の場合は934Hz、「0」の場合は510Hzの2つの周波数が含まれています。エンコードされたメッセージは、バイナリ表現に変換する文字列であり、各ビットは2048 サンプル。データ自体を表すトーンの前に、周波数が 440Hz の予備トーンがあります。次のコードを使用してオーディオバイトをキャプチャしました。唯一の違いは、ByteArrayOutputStream https://stackoverflow.com/questions/23432398/audio-recorder-in-android-process-the-audio-bytes

以前は 8000 サンプル レートを使用していましたが、伝送レートを改善することにしたので、サンプル レートを変更しました。私のレコーダーと送信機が 8000 サンプル レートを使用していたとき、信号の開始点を見つけてデータを分析することができました。適切な周波数、8000 サンプル レートで作業したときに一度見た倍音さえ表示されません。このクラスのハン ウィンドウ関数を使用して、各ウィンドウを乗算します: https://github.com/jpatanooga/Canova/blob/ master/canova-data/canova-data-audio/src/main/java/org/canova/sound/musicg/dsp/WindowFunction.java .

今のところ、記録したデータを 2048 サンプルずつ進めて結果を確認します。fftが機能しない理由がよくわかりません。何かアイデアはありますか?

私が使用するいくつかの機能を添付しています:

オーディオ バイトを正規化された正弦波を表す doule 配列に変換する関数 (送信されるデータはリトル エンディアン形式です):

fft 関数:

データ ビットを抽出する関数:

0 投票する
1 に答える
2876 参照

java - AudioTrack のサンプルレートの不一致

再生に AudioTrack を使用すると、AudioTrack でサポートされているサンプル レートに準拠していないオーディオを再サンプリングする必要がある場合があります。そうすることで、現在のオーディオ構成の下で、現在のデバイスの下で、AudioTrack によってサポートされる最大サンプル レートを決定する必要があります。

AudioTrack の許容サンプル レートが十分に文書化されていないため、ソース コードを調べてみると、次の驚くべきAudioTrack行が見つかりました。

AudioTrackデバイスの実際の再生機能に関係なく、インスタンスは 96 KHz のハード リミットを適用しているように見えます。

さらに紛らわしいのは、次の行を含むAudioFormatのコンストラクター (API 21) に渡すクラスです。AudioTrack

そのsetSampleRate()方法で。これは192 KHzのハード リミットです。したがって、> 192 KHz を AudioFormat (またはそのビルダー) に渡すと、構成IllegalArgumentExceptionされAudioFormatた 192 KHz < x < 96 KHz サンプル レート AudioFormat を AudioTrack に渡すと、IllegalArgumentException.


私が見つけた最も紛らわしいのは、実際に正しい出力サンプリング レートgetNativeOutputSampleRate()を返す AudioTrack のメソッドです(まあ、ネイティブ レイヤーから直接実行されていることを考えると、それほど驚くことではありませんが、一貫性がありません)。

setPlaybackRate()さらに、次のように主張する方法:

有効なサンプル レートの範囲は、1 Hz から getNativeOutputSampleRate(int) によって返される値の 2 倍までです。

実際、私はそれを試してみましたが、うまくいきますか? 次のスニペットを検討してください。

プログラム フローに従って、ネイティブ サンプリング レートが96 KHz 未満の場合、コードは次のように出力されます。

ネイティブ ストリーム レート: 48000 Hz
トラックが正常に作成されました (ダイレクト)

しかし、最大192 KHzの再生機能を備えた外部 DAC を接続すると、次のようになります。

ネイティブ ストリーム レート: 192000 Hz
ネイティブ レートで AudioTrack を作成できませんでした!
トラックが正常に作成されました (間接)

これらの矛盾は何ですか?そしてsetPlaybackRate()、コンストラクターに渡されたサンプルレートと同じですか?

0 投票する
7 に答える
26519 参照

javascript - AudioContext のサンプルレートを変更する (getUserMedia)

getUserMedia を介して 48000Hz の録音を録音しようとしています。しかし、運がなければ。返されたオーディオ MediaStream は 44100Hz を返します。これを 48000Hz に設定するにはどうすればよいですか?

ここに私のコードのスニペットがあります:

startUsermedia 関数:

AudioContext のプロパティ sampleRate を変更しようとしましたが、うまくいきませんでした。

sampleRate を 48000Hz に変更するにはどうすればよいですか?

編集:48000Hzでwavファイルを記録およびエクスポートできるフラッシュソリューションでも問題ありません