問題タブ [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.

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

iphone - AudioQueueBufferRefデータをFFT関数に渡します!

私はiphoneのマイクを通して与えられたサウンドプロセスの周波数を計算しようとしています。

FFTに関するすべての投稿(aurioTouch、SpeakHereなどのすべてのアップルコード例を含む)を読みましたが、この問題の解決策ではありません。

私はAudioQueueを使用していますが、AudioQueueコールバック関数(MyInputBufferHandler)inBuffer->mAudioDataから生データ"AudioQueueBufferRef"を渡すにはどうすればよいですか。実際のFFT「DSPSplitComplex」データ型に変換するので、計算できます。これはすべて、Accelerateフレームワークを使用しています。

FFT関数。

これを行う方法についてはどこにも見つかりません。助けてください!

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

c++ - 初心者向けのリアルタイム周波数スペクトルの実装

オーディオ (.wav) を入力として受け取り、そのリアルタイム同時周波数スペクトルを表示するアプリケーションを開発したいと考えています。この件について私が調べたところによると、これには波のフーリエ変換が必要です。誰かが私がどこから始めるべきかを提案できますか? 可能な参考文献と本。(C# や C++ で) よく知っている GUI の開発よりも、リアルタイム周波数スペクトルの実装の詳細を学びたいです。

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

frequency - フーリエ変換-

私はこのトピックについて多くの研究をしてきましたが、ようやくどこかに到達しました。以下は、私が使用しているJavaコードの2つの複素数です。-9771.0--j2125.0 -16184.09634718744 --j53968.71008512241

振幅/大きさは、sqrt(a ^ 2 + b ^ 2)を実行することで計算できることを知っています。これは、私がこれで得た限りです。サンプルレートについて読んだことがありますが、これだけでより良い説明が必要であり、知識を得るために正しい方向に向けられたいと思います。パワースペクトルグラフを作成しましたが、周波数を取得する方法がわかるように、紙でこれを行う必要があります。

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

r - 特定のパターンを持つ文字列の R プロット頻度

文字列を含む列を持つデータ フレームが与えられます。特定のパターンを持つ文字列の頻度をプロットしたいと思います。例えば

パターン `"cd" を含む文字列の頻度をプロットしたいのですが、簡単に解決できる人はいますか?

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

algorithm - カウントスケッチアルゴリズムの説明

カウントスケッチアルゴリズムがどのように機能するかを誰かが説明できますか?たとえば、ハッシュがどのように使用されているかはまだわかりません。私はこの論文を理解するのに苦労しています。

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

java - 個別のデータ セットを周波数ドメインに転送して戻すにはどうすればよいですか (できればロスレスで)

おおよそ70〜80kのサイズのバイト配列を取得し、それらを時間領域から周波数領域に変換したいと思います(おそらくDFTを使用)。私はwikiをフォローしており、これまでのところこのコードを取得しています。

私の知る限り、それは各周波数ウィンドウ/ビンの大きさを見つけます。次に、窓を通り抜けて、マグニチュードが最大のものを見つけます。信号を再構築するときに使用するために、その周波数にフラグを追加します。再構成された信号が元のデータ セットと一致するかどうかを確認します。次に高い周波数のウィンドウが見つからない場合は、信号を再構築するときに使用するフラグを立てます。

これは、信号を再構築するためのコードです。これは、非常に間違っていると確信しています (IDFT を実行することになっています)。

freqUsed は、信号を再構成するときに周波数ウィンドウを使用する必要があるかどうかをマークするために使用されるブール配列です。

とにかく、発生する問題は次のとおりです。

  1. すべての周波数ウィンドウが使用されても、信号は再構成されません。これは、...
  2. Math.exp() の値が大きすぎて、無限大が返されることがあります。これにより、正確な計算を取得することが難しくなります。
  3. ガイドとして wiki に従っていますが、私のデータが意味があるかどうかを判断するのは困難です。これにより、問題のテストと特定が困難になります。

問題から離れて:

私はこれにかなり慣れていないので、すべてを完全には理解していません。したがって、任意のヘルプまたは洞察をいただければ幸いです。時間を割いてすべてをお読みいただき、ありがとうございます。また、ご提供いただけるご支援に感謝いたします。私がこれを可能な限り最悪の方法で行っていると思われるとしても、どんな助けも本当に良いです. 再度、感謝します。

-

編集:

そこで、コードを次のように更新しました。

元の変換と :

逆変換用。私はまだそれが正しく機能していないことを心配していますが。単一の正弦波を保持する配列を生成しましたが、それを分解/再構築することさえできません。私が欠けているものについての洞察はありますか?

0 投票する
8 に答える
52176 参照

r - R のデータ ポイントに対してハイパスまたはローパス フィルターを実行するにはどうすればよいですか?

私はRの初心者で、何も見つからずに次の情報を見つけようとしました。

写真の緑のグラフは、赤と黄色のグラフで構成されています。しかし、緑のグラフのようなデータ ポイントしか持っていないとしましょう。ローパス/ハイパスフィルターを使用して低/高周波数 (つまり、ほぼ赤/黄色のグラフ) を抽出するにはどうすればよいですか?

変調された高周波正弦曲線を持つ低周波正弦曲線

更新:グラフはで生成されました

更新 2: パッケージでバターワース フィルターを使用するsignalと、次の結果が得られることが示唆されました。

フィルタリングされたグラフが追加された元の画像

計算はちょっとした作業でした。signal.pdf には、どのような値Wが必要かについてのヒントはほとんどありませんでしたが、元のオクターブのドキュメントには、少なくともラジアンが記載されていたため、うまくいきました。元のグラフの値は、特定の周波数を念頭に置いて選択されていないため、単純ではない次の周波数になりました:f_low = 1/500 * 2 = 1/250f_high = 1/500 * 2*10 = 1/25サンプリング周波数f_s = 500/500 = 1. 次に、低域/高域フィルターの低域と高域の間の f_c を選択しました (それぞれ 1/100 と 1/50)。

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

math - データを失うことなく、時間領域から周波数領域に離散信号を転送し、元に戻すにはどうすればよいですか?

ここ数週間、私は任意のバイトのセットを受け取り、それらをシグナルとして扱うDFTを実装しようとしています。次に、それらを周波数領域に変換します。その後、それはそれらを元に戻します。元々は、元の信号を再構築するために一部のコンポーネントを使用しようとしただけでした。これが失敗したとき、私はすべてのコンポーネントを使用しようとしましたが、それでも失敗しました。

私はこれを行う方法のガイドとしてウィキペディアの方程式に従ってきました、そして私のコードはこのコードを与えられた(私の心の中で)与えられた方程式と一致するようです:

DFT:

IDFT:

誰かが私が問題が何であるかを特定するのを手伝ってもらえますか?

同じプロジェクトについての前の質問をしましたが、それはひどい言い回しであり、編集はより多くの混乱を引き起こしたかもしれません。また、その質問は答えられたかもしれませんが、私はまだ理解する必要があります。それはここで見つけることができます

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

actionscript-3 - フーリエ係数の結果はウィンドウサイズに非常に敏感ですか?

フラッシュでウィンドウ化されたフーリエ級数を使用して周波数アナライザーを作成しようとしていますが、ウィンドウのサイズが係数の大きさに大きく影響します。

教科書の数式を使用して、すべてのフレームの係数を計算しています。

ここで、 deltaxはサンプル間の時間間隔であり、pcmFloatValueは* n *deltax*での時間領域の値です。教科書では、積分の限界は0から2PIで、積分はPIで除算されます...しかし、私はそれを任意の間隔で使用して除算をなくすことができると思いました。

したがって、周波数の大きさを取得するための私のコードはここにあります:

数値はHz単位の周波数であり、framebaは44100Hzでのオーディオのモノラルサンプリングです。この関数は、取得するフレームバごとに呼び出します。これは、次のコードに対応しています。

したがって、問題は、ウィンドウを時々変更すると、2つの係数の大きさが非常に大きくなり、線形ではないことです。ウィンドウが42ミリ秒の場合、次のような値が得られます。

100msに設定した場合:

...、3.487381020768127,7.610466058045129,45.780152579896324,77.46963149803167,35.531672823487014,0.6057853252694128、..

500msに設定した場合:

そのため、平均サイズが増え続けることはありません。何か間違ったことをしているのかどうかわかりませんが、これについて正しく考えていますか?

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

r - .wav ファイルから特定の周波数範囲を抽出する方法は?

私はサウンド処理に関して本当に初心者なので、私の質問は些細なことかもしれません。私がやりたいことは、R を使用して、wav ファイルから特定の周波数範囲 (150 ~ 400 Hz としましょう) を抽出することです。つまり、私が作成した周波数成分のみを含む別の wave ファイル (wave2) を作成したいと考えています。 (150 ~ 400 Hz など) を指定します。

私はネットで何かを読んで、FFT分析でこれを行うことができることを発見しました。ここに問題があります。

このコードがあるとします:

得られるプロットは次のとおりです。

ここに画像の説明を入力

さて、2つのピークがあります。それらがどの周波数に対応するかを知りたい場合は、次を見つけてください。

最初の 2 つの値は、サウンドの作成に使用した周波数に非常に近いです。

さて、問題は次のとおりです。サウンドから範囲内の周波数を削除したい場合、どうすればよい(1, 500)ですか?そして、範囲のみを選択(および保存)する方法は(1, 500)?私が注目しているのは、私の新しいサウンド (周波数が削除されたもの) が単純なものに近いものになるということですSine(freq=880, duration=1)(私は知っていますが、まったく同じになることはできません!)。それは可能ですか?

それが私が必要としているものだと確信してfft(DATA, inverse = TRUE)います。しかし、よくわかりませんが、続行する方法がわかりません。