問題タブ [wavelet-transform]

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 に答える
740 参照

signal-processing - ウェーブレット パケット分解とバンドパス フィルター

私が正しければ、ウェーブレット パケット分解 (WPT) は信号をさまざまなフィルター バンクに分割します。多くのバンドパスフィルターを使用して同じことを行うことができます。

私の目的は、1 ~ 200、200 ~ 400、400 ~ 600 などのさまざまな周波数帯域で大きなサンプリング レート ((2000 Hz)) を持つ信号のエネルギー コンテンツを見つけることです。

バンドパス フィルターの WPT を使用する利点と欠点は何ですか?

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

java - matlab の [cA,cH,cV,cD] = dwt2(X,'wname') に相当する Java

matlab で [cA,cH,cV,cD] = dwt2(X,'wname') と同じことを Java で行うにはどうすればよいですか?

具体的には、画像の「Daubechies 2」ウェーブレットまたは数値の 2D 配列のウェーブレット変換係数が必要です。これは、[cA、cH、cV、cD] = dwt2(X、'db2') だけで、1 行の matlab で非常に簡単に実行できます。しかし、私はそれもJavaで行う必要があります。

前もって感謝します!:)

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

arrays - matlab の Wavedec は、合計が信号の元の長さよりも大きい長さを返します

を使用して、信号「price1」のマルチレベルウェーブレット分解を行っていました

price1 のサイズは次のとおりです。

得られたウェーブレット分解のサイズ、つまり長さ l は次のとおりです。

私は初心者で、サイズは次のようにすべきだと思います。

サイズが信号サイズの半分ではない理由を理解できませんか? これは、内部で何らかのパディングが行われているのでしょうか? そして、サイズを [30; のように半分にしたいです。30; 60; 120; 240]。それを達成するために何ができますか?

ご協力いただきありがとうございます :)

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

matlab - MATLAB のリサンプル関数による高いエラー

MATLAB のニューラル ネットワークを使用して、信号のウェーブレット変換の出力のトレーニングに取り組んでいます。そこで、ウェーブレット変換に3レイヤーウェーブ フィルターを使用することにしました。db4要素の配列を使用し、240ウェーブレット変換後に配列を取得しましたl

ここで、ニューラル ネットワークをトレーニングする必要があるため、長さのウェーブレット変換を36, 36, 65, 123240 要素の配列にリサンプリングする必要があります。

それで私がしたことは、信号のウェーブレット変換をしたことです。各ウェーブレット変換を240ポイントにリサンプリングしてから、ウェーブレットを36, 36, 65, 123それぞれポイントにリサンプリングしました。のエラーが発生しました20.2668。エラーを減らすために何ができますか?

次のコマンドを使用して、MATLAB を使用してリサンプリングしました。

現在、エラー err は次のように報告されています

このエラーを減らすにはどうすればよいですか? 助けてください :)

リサンプリングとオリジナルの両方の後のウェーブレット変換のデータ プロットは次のとおりです。元の信号と再サンプリングされた信号の両方を示す画像

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

signal-processing - 信号の時間が独立変数である理由

信号の時間は独立変数であり、振幅は従属変数である理由を明確に説明できますか? グーグルの結果をいくつか参照しましたが、わかりませんでした。

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

matlab - 定常信号をプロットするために時間サンプリングが必要なのはなぜですか?

私はmatlabと信号処理が初めてです。以下の投稿コードを書きました。私が理解できなかったtime soecificationのは、コードの最初のセクションです。間隔または期間を指定するときにサンプリングが必要な理由はわかりません。次のようなものを指定するだけで十分だと思います。

定常信号などをプロットするためにサンプリングのようなものが必要なのはなぜですか。別の質問は、このコードでエラーが発生paranthesis imbalanceし、解決方法を教えてください。

コード