問題タブ [vdsp]
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.
c - リンゴvDSPの例に関する問題
vDSPのリンゴの例で問題が発生しています。それらすべてを試しましたが、最終的に畳み込みサンプルが必要です。リンカーを介してそれを取得することさえできません:
エラーメッセージです(どのアーキテクチャ用に構築したかは関係ありません)。
iphone - iPhone4s、iPhone 5 vDSP を使用した 1 秒あたりの最大 FFT
私のチームと私は、256KHZ で超音波をサンプリングする iOS 用の外部アクセサリを作成することを計画しています。iOS vDSP が時間ドメインから周波数ドメインへの変換を 256,000 サンプル/秒で実行できるのか、それとも FFT 用のハードウェア ベースのソリューションが必要なのか、疑問に思っています。
aurioTouch などの Apple のサンプル プロジェクトは非常に役に立ちますが、プロのオーディオ サンプリング周波数以上のサンプリング レートを扱うものは見つかりませんでした。次のことを理解するのに助けが必要です。
- vDSP FFT は 256,000 サンプル/秒を処理できますか? そうでない場合、ハードウェアで変換を行う以外に、同じことを行う創造的な方法はありますか?
これに関連して私が見つけた最も近い議論は
ios - 録音された音から既知のオーディオを除去し、デコンボリューションによって背景音のレベルを推定します
私は2つの信号を持っています。1つはスピーカーで再生されるオーディオデータを含んでいます。2 つ目は、スピーカーを同時に録音するマイク データが含まれています。
これまでに行ったこと: 相関を介して時間領域で信号を整列させます。デコンボリューションを達成するために、両方の信号の重複部分に fft を適用し、一方を他方で分割します。
結果のオーディオデータが役に立たないので、私は何を間違っていますか。
ここに私のコードがあります:
少し明確にするために編集します:@Sammio2のおかげで、デコンボリューションが私の問題を非常によく説明していることを知っています:
f*g=h
h は私の記録された信号で、
f、回復したい私の信号と
g、再生信号がさらに録音されたことはわかっていますが、スピーカーからマイクへの往復によって変更された可能性が最も高いです
gに加えて録音されたすべての音であるfを回復する方法が必要です。
重要: 最終的には、f の明確な信号は必要ありません。ラウドネスまたは存在レベルに関する情報だけが必要です。基本的に、記録された往復信号以外のノイズ レベル g.
必要な騒音レベルの情報を収集するにはどうすればよいですか?
これが私の問題を理解するのに役立つことを願っています。これまでありがとう!
signal-processing - 変換された DSPSplitComplex コンテンツを理解する vDSP_fft_zrip
「A」が適切な方法で (vDSP_ctoz を使用して) パックされた実数ベクトルであると仮定すると、次のようになります。
実際のコンテンツを周波数表現に変換します。
次の値は何を表していますか?:
実際、DC コンポーネントと Nyquist コンポーネントはどこに保存されているのだろうかと思っています。また、 A.imagp[j] は A.realp[j] の虚部ですか?
iphone - vDSP 関数がネオンでスカラーまたは SIMD を実行するかどうかを確認する方法
現在、vDSP フレームワークのいくつかの関数、特に vDSP_conv を使用しています。関数がスカラー モードを呼び出しているかどうか、またはネオン プロセッサで SIMD が処理されているかどうかを確認する方法があるかどうか疑問に思っています。
関数のドキュメントには、満たす必要がある power-pc-architecture の基準がいくつか記載されています。そうしないと、スカラー モードが呼び出されます。これらの基準が iPhone にも適用されるかどうかも、関数がスカラー モードを呼び出すか、ネオンで適切に実行されるかを確認する方法もわかりません。
これを確認する方法はありますか?
ありがとう!
ios - サインスイープから周波数応答を計算する際の問題
現在、iPhone のスピーカー/マイクの往復の周波数応答を計算しようとしています。スピーカーでサインスイープを再生し、マイクを介して録音し、そこから周波数応答を取得しようとします。最終的な目標は、特定のサウンドに FR を乗算して、iPhone のスピーカー/マイクのように聞こえるようにすることです。
これまでの私のコード:
これはこれまでのところ機能しており、FR を最初のファイル スイープで乗算すると、マイク スイープのように聞こえます。
私の問題: これは、FR が生成された正確なファイル (スイープ) に対してのみ機能します。FR を使って他のサウンドを変更するとすぐに、たとえばノイズだけの音楽が出てきます。
私はこのようなFRを使用します(周波数ドメイン、インターリーブ、複雑ではなく、同じ長さでも):
スピーカーで再生されたファイルからのサイン スイープ:

記録されたサイン スイープ (減衰された低周波が表示されます):

上記のコードで生成された FR を使用して、私のファイル サイン スイープを周波数領域で乗算します。

私の目標: 私の理解では、周波数応答は各周波数に関する情報であり、システムによってどれだけ減衰または増幅されるかです(私の例では、低周波数を再現できません)。この種の情報を取得するために、必要なすべての周波数を含むサウンドを生成し (サイン スイープ)、それを再生し、記録されたスイープ/ファイル スイープを分割して (コードで分割)、すべての周波数がどのように変更されるかを分析します。
この FR を周波数領域で任意のサウンドに乗算すると、周波数の振幅が変更され、システムでの再生が模倣されます。
ありがとう!
更新: 最終的に、障害は複雑な算術演算の欠落であり、サインスイープとピンクノイズの両方が、インパルス応答を回復するためのインパルスとしてかなりうまく機能しました。
動作するコードを取得するには、記録されたスイープ fft データを最初のスイープ fft データで複雑に除算します。
vdsp - ベクトル化された方法でdoubleの配列の平均を計算しますか?
配列Vが2倍の場合、目標は平均Aを計算することです。
通常推奨される解決策は次のようなものです。
配列の平均を計算することは一般的な操作のようですが、ベクトル化された方法でそれを実行する関数を見つけることができません。
vDSPで見つけたのは、平均の配列を計算するvavlinD関数だけであり、単一の配列の平均を計算するように後付けすることはできません。
ios - vDSP_zcoher() の説明が必要
私は現在生のオーディオデータを扱っており、2 つの信号を比較するためにvDSP_zcoher()に遭遇しましたが、それについていくつか質問があります。
- 出力が複雑な配列であり、実数ではないのはなぜですか。たとえば、相関の出力と同じように、実際の配列を期待していました。更新:ドキュメントが間違っているようです.Dは本物です.
- パラメータ A、B、および C は、vDSP_zaspec (A、B) およびvDSP_zcspec (C) で作成された自動およびクロススペクトルを累積していますか?
- 結果が信号の類似性を示すべきであるというのは正しいですか?
機能の一般的な説明も大歓迎です!
前もって感謝します。
ios - iOSvDSPを使用したFFTは対称ではありません
ApplesvDSPAPIを使用してオーディオのFFTを計算しています。しかし、amp[]実際の入力でのFFTの理解から、私の結果(in)はN / 2の周りで対称ではありませんか?
以下frameは、オーディオサンプルを含むフロートの配列[128]です。
同じフロート配列をオンラインFFT計算機に入れると、対称的な出力が得られます。私は上記で何か間違ったことをしていますか?
何らかの理由で、のほとんどの値amp[]は約0から1e-5ですが、私は約1e23の1つの巨大な値も取得します。ここではウィンドウ処理を行っていません。最初に基本的なFFTを機能させようとしているだけです。
同じデータを使用して、2つのFFT出力の写真を添付しました。一定のスケーリング係数ではありませんが、64までは類似していることがわかります。そのため、何が違うのかわかりません。それから64以上それらは完全に異なっています。

iphone - 畳み込み関数 vDSP_imgfir が 0 の値を返す
行列畳み込みを行うために、iPhone (iOS 5.1) で Accelerate フレームワークを使用しようとしています。ただし、関数を実行すると
結果ポインターで0を取得します。なぜこれが起こるのでしょうか?同様の問題はどこにも見つかりませんでした。
どうもありがとうございました!