問題タブ [sampling]

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 に答える
478 参照

audio - 低周波でのサウンドサンプリング

実は以前にもこの質問を投稿したことがありますが、まだ回答がありません。多分私は十分に明確ではなかったので、言い換えてみましょう:

ご存じのように、特定のサンプリング レートで信号をサンプリングしている場合、サンプリング レートの半分よりも高い周波数はすべてエイリアシングされます。これを回避するには、適切なローパス フィルターを介して信号 (アナログ形式、またはより高いレートでサンプリングされたデジタル形式) を渡す必要があります。

さて、私の場合、Windows の waveIn 関数を使用して、特定のレートでマイク入力を収集しています。waveIn 関数は、事前に定義された任意のレートではなく、私が提供する任意のサンプリング レートで動作するように見えるため、サウンドカードが実際にそのレートでサンプリングするのか、それとも事前定義されたレートでサンプリングしてシステムが「 "それは私の要求されたレートに。実際、私も気にしません...

私が懸念しているのは、たとえば8kHzでサンプリングするとき、サウンドカードまたはシステムがローパスフィルタリングを実行するかどうかです(サウンドカードのアナログフィルターまたはデジタルフィルターのいずれかで、サポートされている最大サンプリングレートに制限されます)入力でエイリアシング周波数が得られないようにします。

それとも、可能な限り最高のサンプリング レートでサンプリングし、自分で周波数をフィルター処理する必要がありますか?

0 投票する
4 に答える
7079 参照

java - .WAV オーディオ データ サンプルを double 型に変換するには?

オーディオ データを処理するアプリケーションに取り組んでいます。私は Java を使用しています (MP3SPI、Jlayer、および Tritonus を追加しました)。オーディオ データを .wav ファイルからバイト配列に抽出しています。私が扱っているオーディオ データ サンプルは 16 ビット ステレオです。

私が読んだことによると、1つのサンプルの形式は次のとおりです。

あああああああああああああああああああああああああああああああああああああああ

ここで、AABB は左チャネルと CCDD 右チャネルを表します (チャネルごとに 2 バイト)。このサンプルを double 値型に変換する必要があります。データ形式について読んだことがあります。Java はビッグ エンディアンを使用し、.wav ファイルはリトル エンディアンを使用します。私は少し混乱しています。変換プロセスを手伝ってもらえますか? ありがとうございます

0 投票する
3 に答える
3753 参照

c# - C# リアルタイム オーディオ分析のタイミング

C# でリアルタイム オーディオから「1 分あたりのビート数」を決定しようとしています。私が検出しているのは音楽ではありませんが、一定のタッピング音です。私の問題は、これらのタップ間の時間を決定することです。これにより、WaveIn.cs クラスを使用して試した「1 分あたりのタップ数」を決定できますが、そのサンプリング方法がよくわかりません。1 秒間に設定された数のサンプルを分析できません。サンプル間の時間を知るために、1秒間に正確なサンプル数を読み取る方法が本当にわからないだけだと思います。

私を正しい方向に導くための助けをいただければ幸いです。

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

c# - C# DirectSound - 連続していないキャプチャ バッファ

DirectSound を使用してライン入力から生データをキャプチャしようとしています。

私の問題は、バッファーから別のバッファーへのデータに一貫性がないことです。たとえば、サインをキャプチャすると、最後のバッファーと新しいバッファーからのジャンプが表示されます。これを検出するために、グラフ ウィジェットを使用して、最後のバッファーの最初の 500 要素と新しいバッファーの 500 要素を描画します。

スナップショット http://img199.imageshack.us/img199/206/demodsnap.jpg

この方法でバッファを初期化しました:

通知をバッファーの半分に 1 つ、最後に 1 つ設定します。

そして、これが私がイベントを処理する方法です。

何かアドバイスはありますか?イベント処理のどこかで失敗していると確信していますが、どこを見つけることができません。

WaveIn API を使用して同じアプリケーションを開発したところ、うまく機能しました。

どうもありがとう...

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

c++ - 信頼に比例する確率でノードを選択する

アイテムの選択に関連するアルゴリズムまたはデータ構造を知っている人はいますか?それらが選択される確率は、付加価値に比例しますか? つまり: http://en.wikipedia.org/wiki/Sampling_%28statistics%29#Probability_proportional_to_size_sampling

ここでのコンテキストは、分散型の評判システムであり、付加価値は、あるユーザーが別のユーザーに対して持っている信頼の価値です。このシステムでは、すべてのノードは、完全に信頼できる友人として開始するか、完全に信頼できない未知のものとして開始します。これは、大規模な P2P ネットワークでは役に立ちません。なぜなら、友達よりも多くのノードが存在し、直接の友達ではないユーザーの大規模なグループの中で誰を信頼するかを知る必要があるためです。未知の人が友人の友人関係を通じて信頼を得ることができる動的な信頼システム。

時々、各ユーザーは (速度と帯域幅のために) 固定数のターゲット ノードを選択し、別の選択された固定数の中間ノードがそれらをどれだけ信頼しているかに基づいて信頼を再計算します。再計算のためにターゲット ノードを選択する確率は、その現在の信頼度に反比例するため、未知数がよりよく知られるようになる可能性が高くなります。中間ノードは、中間ノードが選択される確率がその現在の信頼に比例することを除いて、同じ方法で選択されます。

私は自分で簡単な解決策を書きましたが、かなり遅いので、この側面を処理する C++ ライブラリを見つけたいと思っています。もちろん、私は自分で検索を行い、現在掘り下げている TRSL を見つけることができました。これはかなり単純で、おそらくよくある問題のように思えるので、これに使用できる C++ ライブラリがもっとたくさんあると思うので、ここの誰かがこれに光を当てることができることを期待してこの質問をしています.

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

image - 画像からピクセルの適切なサンプルを取得する

約90%が緑がかったピクセル、9%が青みがかったピクセル、1%が茶色がかったピクセルの大きな画像があるとします。画像全体から100ピクセルだけのサンプルを取得したいのですが、約2000,000ピクセルです。

サンプルに元の画像の頻度に関連するピクセルを含めたくはありません。むしろ、緑がかった、青みがかった、茶色がかったピクセルの数が同じである必要があります。

ピクセルの値が異なるため、すべての色の後に-ishを使用します。また、各画像の色を知っていれば簡単に実行できます。各画像には異なる色グループがあるため、これを行う一般的な方法を考え出す必要があります。画像の色を指定することに依存しません。

0 投票する
4 に答える
130 参照

python - それらの値によるサンプリングキー

key->valueが。のPythonの辞書がありますstr->int。独自の値に基づいてキーを選択する必要がある場合、値が大きくなると、キーが選択される可能性が低くなります。

たとえば、との場合key1=2key2->1の態度はであるkey1必要があります2:1

これどうやってするの?

0 投票する
4 に答える
1573 参照

c++ - 大きなマルチサンプル オーディオ ファイルを再生用にメモリにロードする - 一時的なフリーズを回避する方法

私は、通常、サイズが約 50 MB の大きなオーディオ マルチサンプルを使用する必要があるアプリケーションを作成しています。1 つのファイルには約 80 の個別の短いサウンド レコーディングが含まれており、アプリケーションでいつでも再生できます。このため、すべてのオーディオ データがメモリにロードされ、すばやくアクセスできます。

ただし、これらのファイルのいずれかをロードする場合、メモリに格納するのに数秒かかることがあります。つまり、プログラムが一時的にフリーズした場合です。これを回避する良い方法は何ですか?Windows および OS X と互換性がある必要があります。この時点でフリーズします。myMultiSampleClass->open();多くの動的メモリ割り当てと、ifstream を使用したファイルからの読み取りを行う必要があります。

私は2つの可能なオプションを考えました:

  1. ファイルを開き、別のスレッドでメモリにロードして、アプリケーション プロセスがフリーズしないようにします。これを行うためにBoostライブラリを調べましたが、実装する準備が整う前にかなり多くのことを読む必要があります. 私がする必要があるのは、スレッドで open() 関数を呼び出し、その後スレッドを破棄することだけです。

  2. 一度にファイル全体をメモリにロードしないようにするためのスキームを考え出します。いわば、その場でロードするだけです。問題は、任意のサンプルがいつでもトリガーされる可能性があることです。他のソフトウェアでこの種のシステムが導入されていることは知っていますが、それがどのように機能するかはわかりません。個々のコンピューターの仕様に大きく依存します。私のコンピューターでは問題なく動作する可能性がありますが、遅い HDD/メモリを使用している人は非常に悪い結果になる可能性があります。私が持っていた 1 つのアイデアは、各オーディオ録音の x サンプルをメモリにロードし、再生する必要がある場合は、残りのオーディオをメモリにロードしながら、既存のサンプルの再生を開始することでした。

アイデアや批判はありますか?前もって感謝します :-)

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

android - Androidでトラックの再生速度をリアルタイムで変更する

トラックの再生速度をリアルタイムで変更できるライブラリを誰かが知っているかどうか知りたいのですが。私の考えは、トラックをロードして、その再生速度を半分または2倍に変更することです。最初にMusicPlayerで試しましたが、まったく不可能でした。次にSoundPoolで試しました。問題は、SoundPoolでは、トラックがロードされるとレートを変更できないことです。これが私が使用しているコードです(概念実証):

ボタンを押すと、再生速度が上がるはずですが、発生しません。リアルタイムでレートをどのように変更するかについてのアイデアはありますか?

前もって感謝します。

0 投票する
2 に答える
465 参照

python - 任意に分散されたデータの境界を推定する

2 次元の離散空間データがあります。このデータの空間境界を概算して、その上に別のデータセットを含むプロットを作成したいと思います。

理想的には、これは、matplotlib が plt.Polygon() パッチでプロットできる (x,y) ポイントの順序付けられたセットになります。

私の最初の試みは非常に洗練されていません。データの上に細かいグリッドを配置し、データがセル内にある場合は、そのセルの正方形の matplotlib パッチを作成します。したがって、境界の解像度は、グリッドのサンプリング周波数に依存します。以下に例を示します。グレーの領域はデータを含むセルであり、データが存在しないセルは黒です。

最初の試み http://astro.dur.ac.uk/~dmurphy/data_limits.png

OK、問題は解決しました - なぜ私はまだここにいるのですか? うーん....もっと「エレガントな」ソリューション、または少なくとも1つ高速なソリューションが欲しいです(つまり、「実際の」作業を続けたくありません。これを楽しみたいです!)。私が考えることができる最良の方法は、レイトレーシングのアプローチです-例:

  1. xmin から xmax まで、y=ymin で、データ境界が間隔 dx で交差したかどうかを確認します
  2. y=ymin+dy, do 1
  3. 1-2 を実行しますが、今度は y でサンプリングします

別の方法は、中心を定義し、r-シータ空間でサンプリングすることです。つまり、dシータの増分で放射状のスポークを使用します。

どちらも (x,y) ポイントのセットを生成しますが、隣接するポイントを順序付け/リンクして境界を作成するにはどうすればよいですか?

最近接アプローチは適切ではありません。たとえば、(Geography から借りるために) 地峡 (N&S America を接続するパナマを考えてください) が地域を閉鎖して孤立させる可能性があるためです。これはまた、別の plt.Polygon として表現したいデータに見られる穴をうまく処理できない可能性があります。

解決策は、おそらく面積最大化問題を解くことから得られます。データ範囲を定義する一連のポイントについて、これらのポイント内に含まれる最大連続エリアは? 囲まれたエリアを形成するために、n 番目のポイントの隣接ポイントは? このスキームでは、穴はどのように扱われますか? これは現在、トポロジーに誤りがありますか?

申し訳ありませんが、これの多くは私が大声で考えていることです。ヒント、提案、または解決策を教えていただければ幸いです。これは、多くのソリューション手法でよく研究されている問題だと思いますが、コーディングが簡単で、すぐに実行できるものを探しています...誰もが本当にそうだと思います!

~~~~~~~~~~~~~~~~~~~~~~~~~

マークの凸包のアイデアを使用した試み #2 を 次に示します。代替テキスト http://astro.dur.ac.uk/~dmurphy/data_limitsv2.png

このために、qhull パッケージの qconvex を使用して、極端な頂点を返すようにしました。興味のある方へ:

猫 [データ] | qconvex Fx > out

境界のサンプリングはかなり低いようで、設定をあまりいじっていませんが、忠実度を改善できるとは確信していません。