問題タブ [frequency-analysis]
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.
audio - FFT を使用して入力信号を正しく識別しようとしていますか?
FFT を実装しようとしていますが、私が行っていることが正しいかどうかを尋ねたいと思います。FFT関数にはGSL(GNU Science Library)を使用しています。FFT に関するチュートリアルを読んできましたが、正しい方向に進んでいることを誰かに確認してもらいたいと思います。
これが私がウェブ資料を介して思いついた方法です:
誰かがFFTポイントの数を選択する方法を説明できますか? または、それがまったく重要かどうか。見落としているかもしれませんが、この番号を選択する方法が見つからないようです。
編集: この FFT ウィンドウに名前を付ける方が適切だと思います。周波数を見つけるためにサンプル全体でウィンドウを 1024 ポイントスライドさせるためです。
FFT を実行した後、振幅の別のリストがあり、それらがどのビンにあるかに基づいて、それが検出されている周波数です。正しいですか? 生成された信号の周波数を見つけるために、最高のピークを見つけたいですか?
この方法は、入力信号の周波数を取得するための正しい軌道に乗っていますか?
android - 周波数を計算し、圧縮された (mp3) オーディオ ファイルのピッチを検出する方法は? - アンドロイド
返されるデータが常にゼロであるため、Audiorecord クラスを使用してオーディオを録音する 際に問題が発生しています (read メソッドはオーディオを録音しません)。
そこで、圧縮されたオーディオを再生し、それを読み取って処理または解凍することを考えました。どうしてそれが可能でしょうか?オーディオファイルの周波数を計算したいと思います。私は本当にあなたの助けが必要です。
signal-processing - 添付された信号の分析で何を探すべきですか?
次の「シグナル」を分析して比較したいと考えています。
(編集: より良いレンダリング ここ:振動は良いそしてここ:振動は悪い)
表示されるのは、時間に対してプロットされた一種の人工ニューラル ネットワークからのニューロン活性化のプロットです。プロットの各線は、時間の経過に伴うニューロンの活性化であり、-1 から 1 の間の値を持つことができます。
最初のプロットでは、アクティビティは安定して一貫していますが、2 番目のプロットでは、より混沌としたアクティビティが例示されています (より適切な用語が必要なため)。ある種の破壊的な干渉が頻繁に発生しているようです..
とにかく、ある種の「賢い」分析をしたいのですが、信号分析は私の得意分野ではないので、ここでアドバイスを求めたいと思いました...
編集:少し明確にさせてください。最終的には、データを特徴付けたいと思います。これには、たとえば、各プロットに含まれる個々のシグナル間の相関関係を特定することが含まれます。「規則性」またはデータの不変性を測定したいと思います。上記の例では、上のプロットは下のプロットよりも規則的です。したがって、各信号の分散を計算し、それを測定値として使用できると思います。しかし、より包括的な信号処理技術がより適しているかどうか疑問に思っていました (よくわかりません)。実際、今考えてみても、信号処理が本当に必要なものかどうかさえわかりません。おそらくある種のウェーブレットまたはft分析...
興味のある方のために、私はワームの移動の計算モデリングに取り組んでいます。
python - FFTPythonを使用したオーディオ信号からのバックグラウンドノイズ除去
私は現在、大学でPythonを使用して同じピッチの音を演奏するさまざまな楽器を区別するプロジェクトを行っています。
コンピューターに取り付けられたマイクを使って、さまざまな楽器でさまざまな音符を録音しました。
部屋の背景も記録しました。
これまでのところ、さまざまな楽器のさまざまなノートのプロットがあります。ここで、y軸には、dB単位の振幅があります。20* log10(| FFT(signal)|)
そして、x軸にはDFTサンプル周波数があります
いくつかの高調波ピークは、ノイズが要因となるのに十分小さい(または背景が十分に大きい)-(私は初心者なので画像を投稿できません!)私の問題は、高さの不確実性のレベルを計算することですバックグラウンドノイズを考慮するとピークになります。
私の質問は:
さて、バックグラウンドノイズを考慮したときにピークの高さ(それらの相対的な高調波振幅)の不確かさのレベルを計算する方法。
いくつかのアイデア:
高調波ピークとは何か、ノイズに起因するものを分類するときに使用する必要があるdBしきい値は何ですか(最大バックグラウンド(〜28000dB)または平均(〜15000)、あるいはこれらの値の2倍よりも低いピークを割り引く必要があります)?
また、バックグラウンドによって発生するノイズを考慮するために、楽器の録音のFFTビンnからバックグラウンドのFFTビンnの値を差し引くことは正当ですか?
また、MATLABでfftを使用して、録音されたサウンドからノイズを除去するにはどうすればよいですか?、そこには非常に異なる意見があるようです。
関連性がある場合は、クラスメートの盗用の場合でも、コードの一部を投稿することができます。
プロジェクトに役立つ文献へのリンクをいただければ幸いです。(まだ、各機器の識別属性を探すために考えられるあらゆる方法でデータをプロットしている段階です)。
前もって感謝します
ruby - オーディオエンコードされたバイナリデータをどのように解釈しますか?
バイナリデータをサウンドにエンコードする小さなプログラムを作成しました。たとえば、次のバイナリ入力:
次のような「サウンド」が生成されます。
ここで、各文字は一定の時間単位を表します。#
は、送信の開始と終了を決定するために使用される880ヘルツの正弦波を.
表し、ゼロを表す無音を表し、ゼロを表すS
440ヘルツの正弦波を表します。明らかに、真ん中の部分は実際にははるかに長いです。
私の質問の本質は次のとおりです。この操作をどのように逆にすることができますか?
サウンドファイルは、サウンドの簡単な再生と録音を介して受信者に送信されます。つまり、簡単な元のサウンドファイルをデコードしようとはしていません。
明らかに、私は周波数に関して記録されたデータを分析しなければなりません。しかし、どのように?フーリエ変換について少し読んだことがありますが、ここではかなり迷っています。
どこから始めればよいかわかりませんが、これは簡単なことではなく、おそらく信号処理に関するかなりの知識が必要であることを知っています。誰かが私を正しい方向に向けることができますか?
ところで:私はRubyでこれを行っています(私は知っています、それは遅いです-それは概念実証にすぎません)が、問題自体はプログラミング言語固有ではないので、どんな答えも大歓迎です。
matlab - ボード線図の不一致
私は以下をプロットしています
semilogxプロットは「bode」と同じプロットを返すと思います。ただし、そうではないようです。ここで何が悪いのか誰か知っていますか?
matlab - フーリエ変換を正しい方法で使用していますか?
MATLAB でフーリエ変換を正しい方法で使用しているかどうか疑問に思っています。曲の周波数の平均振幅をすべて取得したいと考えています。テスト目的で、 Audacityを使用して 8 kHz のモノラル ウェーブ ファイルに変換したベートーベンの「エリーゼのために」の無料の mp3 ダウンロードを使用しています。
私のMATLABコードは次のとおりです。
出力は次のようになります。
- 私のコードが正しいかどうか誰か教えてもらえますか? 特に0付近のピークが気になります。
NFFT
正規化するには、またはで割る必要がありlength(allSamples)
ますか?- 私にとって、これは棒グラフのようには見えませんが、プロットしている値が多いためでしょうか?
ヒントをありがとう!
iphone - aurioTouch プロジェクトで最低周波数と最高周波数の値を検出する方法
重複の可能性:
FFT結果から周波数を取得する方法
aurioTouch2サンプル コードを調査しています。また、描画ビュー関数では、fft データを計算するために常に 1 つの関数が呼び出されるため、さまざまな周波数の電力を計算できます。
問題は、画面に表示されるさまざまな周波数を取得する方法です。つまり、私はさまざまなオーディオ周波数に対応する一連のパワーを持っています。また、たとえば、最低周波数の値をどのように理解できますか?
私の視点を示すために更新します。
最低のしきい値 (最低の周波数) は outFFTData[0] であり、最高は outFFTData[last] です。しかし、たとえば、図のどの周波数が outFFTData[0] に関連しているかはわかりません。outFFTData[0] は 16Hz に関連していますか。outFFTData[last] は 22 kHz に関連していますか?
ここで、outFFTData[0] は人間が聞くことができるオーディオの最低周波数に関連していると思います。そして outFFTData[last] は、男性が聞くことができるオーディオの最高周波数に関連しています。
私が間違っている?
更新 2
ここでPaul Rコードを見ました。それは本当にほとんどすべてを示しています。しかし、私が間違っている場合は、訂正してください。
このコードでは:
このコード mFFTLength = mAudioBufferLen / 2;
では、周波数の最大値が mDspSplitComplex にindex = mFFTLength - 1
あると思いindex = mFFTLength / 2 - 1
ます。
アップデート 3
私は非常に似たような問題を抱えています。なぜ aurioTouch プロジェクトで最初のバッファのみを使用するのですか。答えは誰でも知っているかもしれません。
matlab - Matlab で FFT を使用した周波数シフト
周波数ホッピングを使用した BFSK 変調と復調の実装に取り組んでおり、Matlab を使用して結果をテストする必要があります。BFSK プログラムから取得している出力は、さまざまなビットのキャリア信号に対応する正弦値の配列です。これらの信号は、2.51KHz を中心とし、その周囲に 4KHz の帯域幅を持つパスバンド信号です。しかし、復調ステップをテストするには、信号をベースバンドに変換する必要があります。したがって、出力信号の中心を 0Hz にする必要があります。
2.51KHz の複雑な信号を作成し、それを時間領域で乗算すると、この仕事ができることを私は知っています。fft()
しかし、信号の中心周波数をシフトし、信号を取得しifft()
てベースバンド信号を生成するために、matlabの関数で使用できる方法はありますか?
ありがとう、安州
android - Androidで音の周波数を計算するには?
Androidで音の周波数を計算するアプリを開発したいです。Android デバイスはマイクからサウンド (つまり、サイド サウンド) を取得し、アプリには 1 つの色の背景画面があります。音の周波数が変わると、画面の背景色を変更する必要があります。
だから私の質問は「どうすれば音の周波数を得ることができますか?」
利用可能なAndroid APIはありますか?
この問題から私を助けてください。