問題タブ [time-frequency]

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 投票する
4 に答える
963 参照

c# - 無限ループは 100% の CPU を消費します

定義された数 Hz の周波数を生成する必要がある状況に陥っています。マルチメディア タイマーなど、インターネットで入手できるものをすべて試しましたが、これまでのところ、いくつかの if-else 条件を使用した無限ループで最良の結果が得られました。しかし、このアプローチの問題点は、ほとんどすべての CPU を消費し、他のアプリケーションが適切に動作するためのスペースを残さないことです。

数HzからKHzの周波数を生成するアルゴリズムが必要です。

C# で Windows プラットフォームを使用しています。

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

matlab - 周波数ドメインを時間ドメインに変換する方法

3 つの異なる周波数信号を作成し、不要な信号を除外しました。しかし、matlab で ifft を使用すると、間違ったグラフが表示されます。周波数領域スペクトルを 3 秒の時間領域グラフに変換するにはどうすればよいですか? 私のコードの下は次のとおりです。

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

python - Python でのフィルター設計と周波数抽出

Python でマルチコンポーネント オーディオ信号の瞬時周波数を見つけるプロジェクトに取り組んでいます。現在、バターワース バンドパス フィルターを組み合わせて使用​​しscipy.signal.lfilterて、目的の周波数領域を抽出しています。次に、( からの) 解析信号を使用しscipy.signal.hilbertて瞬時位相を取得します。これをアンラップして周波数を得ることができます。

信号処理の比較的初心者として、2 つの主な質問があります。

  1. 多くのアプリケーションでは、scipy.signal.filtfiltoverを使用することが望ましいと読みましたscipy.signal.lfilter。確かにfiltfilt、データに適用すると、非常に滑らかに見える瞬時周波数信号が得られます。「真の」瞬時周波数にできるだけ近い出力を得たいということを念頭に置いて、2つの主な違いを知りたいと思います。

  2. 瞬時周波数データは非定常です。つまり、場合によっては、必要なデータをすべて取得するために、より広いバンドパス フィルターを使用する必要があります。これにより、追加のノイズが発生し、信号が不安定になることがあります。このような問題に対処する方法はありますか? たとえば、より適切に設計されたフィルターを使用するなどです。

編集

フレブールへの回答として、以下は私が見ているデータの画像です。filtまず、との比較filtfilt: <code>filt</code> と <code>filtfilt</code> の比較 上記の両方の信号に同じバターワース フィルターを適用し (フィルター機能は異なります)、次に瞬時周波数を抽出します (時間の関数としてプロットされているものです)。filtfiltデータをシフトして平滑化するようです。これらの信号の 1 つは、「真の」信号のより適切な近似ですか?

このグラフは、特定の信号のサブセットのみを示していることに注意してください。

2 つ目は、バターワース フィルターのサイズを大きくした場合の効果です。 フィルターを広げる これは、図 1 と同じデータのサブセットに対するものです。凡例は、フィルターの下限と上限をそれぞれ示しています (赤いトレースは、filt図 1 のデータのバージョンです)。 .

ここでは、より大きな通過帯域を使用する理由が明確でない場合がありますが、場合によっては、データが 600 ~ 800 Hz の間のさまざまなポイントに配置されることがあります。ここで、より幅広いフィルター設計が必要になります。フィルターが広くなるにつれて、追加のノイズがトレースに入ることがわかります。フィルター設計を最適化/改善する方法があるかどうか知りたいです。

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

matlab - 3D マトリックスで FFT と IFFT を使用して時間次元で周波数を決定する方法

現在、Matlab で再生されたムービー ファイルからいくつかのフレームを取得する課題に取り組んでいます。パラメータ X、Y、時間で 3D マトリックスが作成されました。しかし、FFT と IFFT を使用して時間内の周波数を決定するように求められました。

私の問題は、時間次元で周波数を決定するために 3D マトリックスで FFT と IFFT を使用してグラフをプロットする方法です。誰かが matlab コードの一部を提供できれば、非常に感謝します。

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

matlab - Matlab で値を Wigner-Ville 分布から実際の範囲にスケーリングするには

Time-Frequency Toolboxの関数 tfrwv.m を使用して実行します

私は得る

ここに画像の説明を入力

周波数は [0,180] Hz および時間 [0,2.5s] の範囲内である必要があります。

時間と周波数を実際の値にどのようにスケーリングできますか?

マニュアルによると

そして私は走る

そして私は得る

ここでの問題は、時間と周波数のウィンドウを初期化することだと思います。パラメータの値を編集して、両方の軸を操作しようとしています。

同じデータの対応するスペクトログラムですが、軸が正しいラベルであり、Matlab のデフォルトのスペクトログラム関数によって行われます。ここで説明します。

ここに画像の説明を入力

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

matlab - Matlab でオーバーラップ 60% の長さ 64 のハミング ウィンドウを作成するには

ここでは、長さ 64 の Wigner-Ville 分布ハミング ウィンドウに 60% のオーバーラップを与えようとしています。長さ 64 のハミング ウィンドウを次のように作成できます。

この問題に関するいくつかの理論的なアドバイスを次に示します。ウィンドウは、畳み込みの確率が 60% の 3 つのハミング波のある種の畳み込みのようです。

オーバーラップは、3 つの関数のある種の畳み込みのようです。3 つのウィンドウとその重なりに対する私の試み

2 つのウィンドウとその重なりに対する私の試み

どちらの結果も、より良い Wigner-Ville 分布の結果を示しているようには見えません。多くの曇ったピークがまだ表示されます。そのため、ウィンドウ関数の現在の結果はhamming(64)ウィンドウのみの場合とまったく同じ画像を返すため、キーは時間内にウィンドウを分離しているように見えます。

60% の重複を考える

の寸法hamming(64)は 64x1 ダブルですが、conv(hamming(64), hamming(64))127x1 ダブルです。両方の関数を線形に繰り返すことはできないため、60% の確率の確率的アルゴリズムを作成するのは簡単ではありません。

オーバーラップが 60% のハミング ウィンドウを作成するにはどうすればよいですか?

0 投票する
7 に答える
398 参照

image - Matlab ですべてのピークを明確に表示するには

ここでようやくlennon310で問題を解決しました。時間-周波数画像に何千もの薄いピークの画像があります。一枚の写真ですべてを同時に見ることはできません。タイム ウィンドウの物理的な幅に応じて、表示されるウィンドウと表示されるウィンドウがあります。

私がプロットした私のデータの写真imagesc

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

すべての写真は、同じデータ ポイントT、F、Bからのものです。

Matlabの写真にすべてのピークを一度にプロットするにはどうすればよいですか?