問題タブ [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 投票する
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)います。しかし、よくわかりませんが、続行する方法がわかりません。

0 投票する
5 に答える
4277 参照

perl - Perl を使用してメッセージ内の文字頻度を計算する

メッセージ内の文字の出現頻度を調べる Perl スクリプトを作成しています。これが私が従っているロジックです:

  • getc() を使用してメッセージから一度に 1 文字を読み取り、それを配列に格納します。
  • インデックス 0 からこの配列の長さまで for ループを実行します。
  • このループは、配列の各文字を読み取り、一時変数に割り当てます。
  • 上記でネストされた別の for ループを実行します。これは、テスト対象の文字のインデックスから配列の長さまで実行されます。
  • この文字と現在の配列インデックス char との間の文字列比較を使用して、それらが等しい場合はカウンターがインクリメントされます。
  • 内側の For ループの完了後、デバッグ目的で char の頻度を出力しています。

質問: 文字の頻度が既に計算されている場合、プログラムで文字の頻度を再計算したくありません。たとえば、文字 "a" が 3 回出現する場合、最初の実行では正しい頻度が計算されます。ただし、次に "a" が出現すると、そのインデックスから最後までループが実行されるため、頻度は (実際の頻度 -1) になります。3 番目のオカレンスについても同様に、頻度は (実際の頻度 -2) です。

これを解決するには. 頻度がすでに評価されている文字をプッシュする別の一時配列を使用しました。

そして、次の for ループの実行時に、内側の for ループに入る前に、現在の char を評価済みの char の配列と比較し、フラグを設定します。そのフラグに基づいて、内側の for ループが実行されます。

これは私にとってはうまくいきません。それでも同じ結果です。

上記を達成するために私が書いたコードは次のとおりです。

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

matlab - 振幅-周波数応答で逆FFTを使用するにはどうすればよいですか?

グラフィックイコライザーFIRフィルターの係数を計算するためのアプリケーションを作成しようとしています。Matlabでプロトタイピングを行っていますが、問題があります。

私は次のMatlabコードから始めました:

しかし、係数のfft()を実行すると、周波数が2倍に引き伸ばされ、AFRデータの終わりが失われることがわかります。

だから、私はifftを間違って使用していると思います。binampsベクトルを2倍の長さにし、その2番目の部分にミラーを作成する必要がありますか?その場合、Matlabのifftの実装だけですか、それとも他のC / C ++ FFTライブラリ(特にOoura FFT)が逆FFTのミラーリングされたデータを必要としますか?

FIR係数をifftから取得するために知っておくべきことは他にありますか?

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

mysql - 投稿頻度がスパムかどうかを確認するための優れたアルゴリズム

私は人々がテキストを投稿できるサイトを持っています。各投稿は、投稿者の IP と投稿時刻とともにデータベースに保存されます。投稿者がボットやスパマーなどであると判断できた場合、レキャプチャを表示できるようにしたい.

これを行うのに適したアルゴリズムは何ですか? 最も簡単な選択は、事前に決められた期間 (たとえば 1 分間) の投稿数が、選択された制限 (たとえば 10) よりも多いかどうかを分析することです。ただし、これには、複数の人が同じ IP の背後から投稿するという欠点があります。 、またはランダムな頻度間隔を作成するボットでさえ > 期間、またはその期間の制限未満の投稿。

明らかに「正しい」答えはありません。ただし、一部のアルゴリズムは他のアルゴリズムよりも優れているため、最適なアルゴリズムを見つけようとしています。

0 投票する
5 に答える
747 参照

c# - 文字列内の文字の頻度から配列を作成することは可能ですか?

基本的に、特定の文字列で最も頻繁に使用される文字をカウントするLINQ C#コードの古い部分を見つけました。ただし、頻度分析を使用して、シフト暗号化されたデコードされたテキストを解決しているので、最も人気のある文字だけでなく、出現頻度順に並べられた文字配列を返すようにします。

これが私がここで見つけたLINQコードです:

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

sql-server - SQL-列内で最も頻繁に出現する単語を特定します

T-SQLまたはVBAを使用して、列/フィールドで最も頻繁に出現する単語を判別する簡単な方法はありますか?

私は2つの特定のレコードセットのあいまい一致システムに取り組んでおり、最も頻繁に出現する単語が削除された一致文字列を生成したいと考えています。データは顧客関係管理データベースからのものであるため、「limited」、「ltd」、「plc」、「CORPORATION」などの用語は削除されます。

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

java - WAV ファイルで jTransforms ライブラリを使用していますか?

jTransforms ライブラリを使用して WAV ファイルのスペクトル解析を試みています:公式サイト

しかし、jTransforms を使用して WAV ファイルを FFT の許容可能な入力に変換する方法と、FFT 後に周波数スペクトルを表示するにはどうすればよいかという問題があります。Google を検索したところ、どうにかして WAV ファイルをdouble[]またはComplex[]に変換する必要があることがわかりました。その後、出力をどのように解釈すればよいでしょうか?

申し訳ありませんが、私はFFTを初めて使用するため、この質問は非常にばかげているように聞こえるかもしれません。どうもありがとう!

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

c# - C#の頻度分析を使用してテキストを復号化します。

私は、頻度分析を使用してテキストファイルを復号化するという任務を負っています。これは私の質問ではありませんが、私は絶対に次に何をすべきかわかりません。私がこれまでに持っているものは、ファイルからテキストを読み取り、各文字の頻度を数えます。頻度に応じて手紙を交換することに関して誰かが私を正しい方向に向けることができれば、それは大いにありがたいです。

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

algorithm - 波動信号処理(周期)

波信号の 1 周期を検出する最良の方法は何ですか?

誰かがそれを行うための特定のアルゴリズムを持っていますか? そして、どこで見つけたか知っていますか?

私はfftを知っていますが、それがどのようにして波の周期(時間の位置)を与えるのかわかりません。

信号をピリオドに分割してください!

パスカル、マトラブが欲しい...

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

math - 実数および虚数のFFT出力を周波数と振幅に変換する

FPGAチップに埋め込まれるリアルタイムオーディオアナライザを設計しています。完成したシステムは、ライブオーディオストリームを読み込み、X個の最も一般的な周波数の周波数と振幅のペアを出力します。

これまでFFTを実装できましたが、現在の出力は各ウィンドウの実数部と虚数部にすぎません。知りたいのは、これを周波数と振幅のペアに変換するにはどうすればよいですか?

私はFFTを読んでいて、それらを大きさと位相の関係に変換する方法を理解していますが、複雑な数学の知識がない人でも読める形式が必要です。

ありがとう


これらの迅速な対応に感謝します!

私が現在取得しているFFTからの出力は、実数と虚数のペアの連続ストリームです。これらを入力パケットと同じサイズ(64個の値)のパケットに分割して配列として扱うか、個別に処理するかがわかりません。

サンプルレートは問題ありません。FFTを自分で設定したので、50MHzのグローバルクロックで動作していることがわかります。配列インデックス(出力がもちろん配列の場合...)については、私にはわかりません。

出力が64の複素数値の一連の1次元配列であると言う場合:

1)配列インデックス[i]を見つけるにはどうすればよいですか?

2)各配列は単一の周波数部分を返しますか、それとも複数の周波数部分を返しますか?

本当にありがとうございました!私はそれなしでは道に迷うでしょう。