問題タブ [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 投票する
1 に答える
8353 参照

python - Scipy.signal (Python) を使用した連続ウェーブレット変換: cwt() 関数のパラメーター「幅」とは? (時間-頻度)

離散時間信号 (サンプリング ステップ = 0.001 秒) を使用して、時間-周波数信号を描画するために検索します。私は Python とライブラリ Scipy.signal を使用しています。行列を返す関数 cwt(data, wavelet, widths) を使用して、複雑な morlet ウェーブレット (または gabor ウェーブレット) で連続ウェーブレット変換を行います。残念ながら、この使用法に関するドキュメントはあまりありません。私が見つけた最高のものは次のとおりです:-これはMatlab用です(同じスケールタイムの結果を見つけようとしています)が、当然同じ機能にアクセスできません-そして、これはウェーブレットパラメーターの詳細なしで、連続ウェーブレット変換とは何かを説明します.

最初のステップ: スケール変換信号を取得します。疑わしいことに、配列の「幅」を可能な異なるスケールの配列に直接関連付けました。スケールじゃないとパラメータの幅が分からないからです。おそらく、「それは現在のウェーブレットの幅です」と言うでしょう! しかし、今でも、幅とスケールをどのようにリンクしているかはわかりません…ScipyのMorletのドキュメントでは、リンクは次のようになります: "s: Scaling factor, windowed from -s*2*pi to +s*2 *pi" ということで、 width = 4*pi*scale (幅 = ウィンドウの幅) と考えました。しかし、ウェーブレットを描画すると、スケールが大きくなり、ウェーブレットの視覚的な幅が狭くなります...

私の2番目の問題は、頻度と同等のものを見つけて描くことです。文献には、Fa = Fc / (s*delta) という式があります。ここで、Fa は最終的な周波数、Fc はウェーブレットの中心周波数 (Hz)、s はスケール、delta はサンプリング周期です。したがって、スケール (幅とのリンクが見つかった場合) とデルタ (=0.001 秒) については問題ありませんが、ウェーブレットの中心周波数ではより複雑になります。scipy のドキュメントでは、次のことがわかります。「このウェーブレット [morlet ウェーブレット] の基本周波数 (Hz) は、f = 2*s*w*r / M で与えられます。ここで、r はサンプリング レートです [s はここではスケーリング係数、ウィンドウ化されています。 -s*2*pi から +s*2*pi まで。デフォルトは 1 です。w 幅; M はウェーブレットの長さ]。中心周波数だと思いますよね?

ありがとうございました

ここで、cwt() の私の remanied コード:

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

matlab - 実験データを使用して MATLAB で ifft 関数を使用する方法

いくつかの実験データで MATLAB の ifft 関数を使用しようとしていますが、期待した結果が得られません。

対数サイン スイープ励振の周波数データが​​あるので、振幅 [g's]、周波数 [Hz]、および位相 (ポイントはパイロット ポイントであるため 0) を知っています。

それを ifft 関数に直接入力しようとしましたが、結果として複素数が得られました (時報なので、実際の結果を期待していました)。問題は信号が対称ではない可能性があると考えたため、この方法で対称部分を計算しました(「for」ループで)

振幅ベクトルの最後に追加しました。

このように、新しい振幅ベクトルは対称ですが、そのベクトルの次元も 2 倍にしました。これは、周波数ベクトルの次元も 2 倍にする必要があることを意味します。

とにかく、新しい振幅ベクトルを ifft に供給しましたが、それでも対数サイン スイープは得られませんが、今回の出力は予想どおり実数です。

プロットの時間 [s] を計算するために、次の式を使用しました。

私は何を間違っていますか?前もって感謝します

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

python - Pythonの時間/周波数カラーマップ

ネイティブの Python 3.X ライブラリまたは scipy/numpy/matplolib ライブラリに、このようなプロットを描くのに役立つ関数または短いセットがありますか (?):

ここに画像の説明を入力

このようなことを達成するための効率的な方法は何でしょうか? 前もって感謝します。

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

fft - 短時間フーリエ変換の欠点

短時間フーリエ変換の欠点に関する次の文を文書で読みましたが、彼は次のように述べています。

欠点は、時間ウィンドウに特定のサイズを選択すると、そのウィンドウがすべての周波数で同じになることです。

では、周波数とウィンドウのサイズの関係はどうなるでしょうか。信号の一部に高周波成分がある場合、ウィンドウのサイズが十分に小さく/大きくないと、どのようにしてこの周波数を検出できないのでしょうか?

さらに、彼はウェーブレット変換について次のように述べています。

ウェーブレット解析では、より正確な低周波情報が必要な場合は長い時間間隔を使用し、高周波情報が必要な場合は短い領域を使用できます

答えはなんとなくナイクエスト率と関係がある気がする

0 投票する
0 に答える
36 参照

matlab - Matlab- テキスト ファイルから頻度の最大値または 2 番目の最大値を取得する

次のようなテキストファイルがあります。

最初の列は時間の値、2 番目と 3 番目の列はポイント 1 と 2 の周波数の値です。ポイント 1 の周波数の振幅の最大値と 2 番目の最大値を取得する必要があります。次に、ブラック ボックスの範囲の値をエクスポートする必要があります。どうすればできますか。 例 これが私のコードです:

ただし、最大値は必ずしも正しい値ではなく、壊れた値になることもあります。したがって、周波数の振幅の2番目の最大値が必要です。前もって感謝します。

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

fpga - Xlinx FPGA での Dirac Delta による畳み込み

Xilinx Virtex 7 で Dirac Delta を使用して 16 ビットの入力データ ストリームを畳み込もうとしています。

より具体的には、時間領域で入力ストリームに余弦を掛ける代わりに、周波数領域で次の式で畳み込みたいと思います: F(f) = 0.5 * (delta(f - f0) + delta(f) + f0))

誰もそれを実装する方法について何か考えがありますか? 実際、私の問題で興味深いザイリンクス IP コアは FIR コンパイラだけですが、関数 F(f) をこの IP コアの「係数」入力として表現する方法がわかりません。

EDIT:数学的には、ターゲット畳み込みにはディラックデルタのみが含まれるため、ポイントf0で入力関数を評価するだけで畳み込みを回避するより短い方法が存在する可能性があります。しかし、それを実装する方法もわかりません..

前もって感謝します

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

python - Python - ウィンドウ内の最も近い時間で金融取引を集計する

n株について、特定の時間内(午前11時から最初の5分など)に発生したすべての取引を(リストに)収集したとします(簡単にするためにn = 2にし、後で適応させます)。堅固な AAA と堅固な BBB があるとします (それが役立つ場合は、liststocks=['AAA', 'BBB'])。リストは次のようになります。

つまり、AAA 株の 2 回の取引と BBB 株の 3 回の取引です。各銘柄の最後の取引を選択すると、シンクロニシティの問題が発生します。アイデアは、各株式の最後の取引を選択し、最も早いものを見つけることです (['AAA', '2011-01-03', '11:04:20', 21.55])。次に、「11:04:20」にできるだけ近い時間の他のすべての株式の取引を選択します。これにより、[「BBB」、「2011-01-03」、「11:04:19」、32.01 が選択されます。 ]。出力は次のようなリストになります。

どうもありがとう!