問題タブ [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.
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 コード:
signal-processing - ウェーブレット パケット分解とバンドパス フィルター
私が正しければ、ウェーブレット パケット分解 (WPT) は信号をさまざまなフィルター バンクに分割します。多くのバンドパスフィルターを使用して同じことを行うことができます。
私の目的は、1 ~ 200、200 ~ 400、400 ~ 600 などのさまざまな周波数帯域で大きなサンプリング レート ((2000 Hz)) を持つ信号のエネルギー コンテンツを見つけることです。
バンドパス フィルターの WPT を使用する利点と欠点は何ですか?
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で行う必要があります。
前もって感謝します!:)
arrays - matlab の Wavedec は、合計が信号の元の長さよりも大きい長さを返します
を使用して、信号「price1」のマルチレベルウェーブレット分解を行っていました
price1 のサイズは次のとおりです。
得られたウェーブレット分解のサイズ、つまり長さ l は次のとおりです。
私は初心者で、サイズは次のようにすべきだと思います。
サイズが信号サイズの半分ではない理由を理解できませんか? これは、内部で何らかのパディングが行われているのでしょうか? そして、サイズを [30; のように半分にしたいです。30; 60; 120; 240]。それを達成するために何ができますか?
ご協力いただきありがとうございます :)
matlab - MATLAB のリサンプル関数による高いエラー
MATLAB のニューラル ネットワークを使用して、信号のウェーブレット変換の出力のトレーニングに取り組んでいます。そこで、ウェーブレット変換に3
レイヤーウェーブ フィルターを使用することにしました。db4
要素の配列を使用し、240
ウェーブレット変換後に配列を取得しましたl
ここで、ニューラル ネットワークをトレーニングする必要があるため、長さのウェーブレット変換を36, 36, 65, 123
240 要素の配列にリサンプリングする必要があります。
それで私がしたことは、信号のウェーブレット変換をしたことです。各ウェーブレット変換を240
ポイントにリサンプリングしてから、ウェーブレットを36, 36, 65, 123
それぞれポイントにリサンプリングしました。のエラーが発生しました20.2668
。エラーを減らすために何ができますか?
次のコマンドを使用して、MATLAB を使用してリサンプリングしました。
現在、エラー err は次のように報告されています
このエラーを減らすにはどうすればよいですか? 助けてください :)
リサンプリングとオリジナルの両方の後のウェーブレット変換のデータ プロットは次のとおりです。
signal-processing - 信号の時間が独立変数である理由
信号の時間は独立変数であり、振幅は従属変数である理由を明確に説明できますか? グーグルの結果をいくつか参照しましたが、わかりませんでした。
matlab - 定常信号をプロットするために時間サンプリングが必要なのはなぜですか?
私はmatlabと信号処理が初めてです。以下の投稿コードを書きました。私が理解できなかったtime soecification
のは、コードの最初のセクションです。間隔または期間を指定するときにサンプリングが必要な理由はわかりません。次のようなものを指定するだけで十分だと思います。
定常信号などをプロットするためにサンプリングのようなものが必要なのはなぜですか。別の質問は、このコードでエラーが発生paranthesis imbalance
し、解決方法を教えてください。
コード