問題タブ [spectral-density]
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.
matlab - Octave で Matlab の avgpower を実装していますか?
皆さん、
Matlab 2007b (7.5.0) には avgpower 関数があります。ここを参照してください:
avgpower メソッドは、オブジェクトに格納された PSD データを使用して信号の平均電力を計算するために、積分に対する四角形近似を使用します。
「avgpower メソッドは、PSD 曲線の下の領域である信号の平均パワーを返します。」
呼び出しの例:
この種の機能を Octave で複製しようとしています。関数「pwelch」は可能性のようです。ウィット:
ここで、スペクトルには PSD の y 値があり、freq には x 値があると思います。それで、「より低い」と「より高い」の間にある周波数のサンプルを見つけることができました..ええと、スペクトルの対応する値を平均しますか?私はこれについてかなり曖昧です。
さらに、「freq」の値は、希望する上限と下限に必ずしも一致するとは限らず、どうすればよいかわかりません。下部または上部が広い周波数ビンの真ん中にある場合はどうなりますか? たとえば、ビンの半分を取得しますか (つまり、線形補間しますか?)。
pwelch を使用する代わりに、ある種の FFT から単一の値を取得することも可能です。
提案?
python - 数値安定性の問題をデバッグするための戦略?
私はPython用のウィルソンのスペクトル密度因数分解アルゴリズム[1]の実装を書き込もうとしています。このアルゴリズムは、[QxQ]行列関数を反復的に平方根に因数分解します(これは、スペクトル密度行列のニュートンラプソン平方根ファインダーの拡張のようなものです)。
問題は、私の実装がサイズ45x45以下の行列に対してのみ収束することです。したがって、20回の反復後、行列間の二乗差の合計は約2.45e-13になります。ただし、サイズ46x46の入力を行うと、100回程度の反復まで収束しません。47x47以上の場合、行列は収束しません。エラーは約100回の反復で100から1000の間で変動し、その後非常に急速に大きくなり始めます。
このようなものをデバッグするにはどうすればよいですか?気が狂うような特定のポイントはないようで、行列が大きすぎて実際に手動で計算を試みることはできません。誰かがこのような奇妙な数値のバグを見つけるためのヒント/チュートリアル/ヒューリスティックを持っていますか?
私はこれまでこのようなことを扱ったことがありませんが、あなたの何人かが持っていることを願っています...
ありがとう、-ダン
[1]GTウィルソン。「マトリックススペクトル密度の因数分解」。SIAMJ.Appl。数学(第23巻、第4号、1972年12月)
fft - jTransform FFT の結果の解釈
Jtransforms Java ライブラリを使用して、特定のデータセットの分析を実行しています。
データの例は次のとおりです: 980,988,1160,1080,928,1068,1156,1152,1176,1264
jTransforms で DoubleFFT_1D 関数を使用しています。データ出力は次のとおりです: 10952、-152、80.052、379.936、-307.691、12.734、-224.052、427.607、-48.308、81.472
出力の解釈に問題があります。出力配列の最初の要素が 10 個の入力の合計 (10952) であることは理解しています。私が理解していないのは、出力配列の他の要素です。最終的には、入力データのパワー スペクトル密度をグラフにプロットし、0 ~ 0.5 Hz の量を見つけたいと考えています。
jTransform 関数のドキュメントには次のように記載されています。
(ここで、a はデータ セットです) .................................
リアルフォワード
public void realForward(double[] a) 実データの 1D 順方向 DFT を計算し、結果を a に残します。出力データの物理レイアウトは次のとおりです。
n が偶数の場合
a[2*k] = Re[k], 0 <= k < n / 2
a[2*k+1] = Im[k], 0 < k < n / 2
a[1] = Re[n/2]
n が奇数の場合
a[2*k] = Re[k], 0 <= k < (n+1)/2
a[2*k+1] = Im[k], 0 < k< (n-1)/2
[1] = Im[(n-1)/2]
このメソッドは、実際の変換の要素の半分だけを計算します。残りの半分は対称条件を満たしています。完全な実数順変換が必要な場合は、realForwardFull を使用します。元のデータを取得するには、このメソッドの出力で realInverse を使用します。
パラメータ: a - 変換するデータ ..........................................
では、出力の数値は?値は何を意味しますか? どんな助けでも大歓迎です。
fft - jTransforms DoubleFFT_1D からのパワー スペクトル密度
Jtransforms Java ライブラリを使用して、特定のデータセットの分析を実行しています。
データの例は次のとおりです。
jTransforms で DoubleFFT_1D 関数を使用しています。データ出力は次のとおりです。
出力の解釈に問題があります。出力配列の最初の要素が 10 個の入力の合計 (10952) であることは理解しています。これは
私が理解していない出力配列の他の要素。最終的には、入力データのパワー スペクトル密度をグラフにプロットし、0 ~ 0.5 Hz の量を見つけたいと考えています。
jTransform 関数のドキュメントには次のように記載されています (a はデータ セットです)。
public void realForward(double[] a)
実データの 1D 順方向 DFT を計算し、結果を a に残します。出力データの物理レイアウトは次のとおりです。n が偶数の場合
n が奇数の場合
このメソッドは、実際の変換の要素の半分だけを計算します。残りの半分は対称条件を満たしています。完全な実数順変換が必要な場合は、realForwardFull を使用します。元のデータを取得するには、このメソッドの出力で realInverse を使用します。
パラメータ: a - 変換するデータ
上記の方法を使用する場合: (データ配列の長さが 10 であるため、「n は偶数」の方法が使用されます)
いくつか質問があります: この出力は正しいですか? Re[0] は、元の配列のすべての要素の合計である 10952 であってはならないように思えます。
出力を少し修正する必要があるようです: (私は間違っていますか?)
フォーラムに投稿された次の方法を使用します。
ビン k の大きさを取得するには、 を計算する必要がありますsqrt(re * re + im * im)
。ここで、re、im は、ビン k の FFT 出力の実数成分と虚数成分です。
あなたの特定の FFT についてre[k] = a[2*k] and im[k] = a[2*k+1]
。したがって、パワー スペクトルを計算するには、次のようにします。
したがって:
いくつかの質問。このデータは正しいように見えますか? 私は正しい軌道に乗っていますか?このスペクトル データを次のようにプロットします。
私は道を外れていますか?私の目標は、0 から 0.5Hz までのパワー スペクトル密度棒グラフを作成することです。
matlab - 時系列のスペクトル コヒーレンス
2 つの時系列データがあります。1 つは水温で、もう 1 つは気温です (1 年間の毎時測定値)。両方の測定値が同時に取得されるため、ベクトルは同じサイズになります。コマンド corrcoef は、相関が ~0.9 であることを示しています。
現在、スペクトル コヒーレンスについて考えていた相関関係を見つけるために、別のアプローチを試みています。私が理解している限り、これを行うには、各時系列のオートスペクトル密度を見つける必要がありますか? (すなわち、水温と気温の) そして、それらの間の相関関係を見つけますか?
私は信号処理が初めてなので、これを行う最善の方法についてアドバイスを期待していました!
signal-processing - 完全な正弦波の密度スペクトルにおける未知のノイズ
私が理解していないことがあります:私は信号のスペクトル密度を(そのFFTを計算することによって)計算し、それは正しく動作しているようですが、完全な正弦波でそれを行っていますが、何らかのバックグラウンドノイズを持ち続けています自分で生成した2つの周波数(10Hzと30Hz)。
もちろん、ノイズは対数スケールでしか表示されないため、それほど煩わしくはありませんが、どこから発生するのでしょうか? それは正常ですか?信号またはどこかにバグがありますか?
r - Rでの高速フーリエ変換
12 か月間に動物が 1 時間ごとに訪れた回数のデータセットがあります。高速フーリエ変換を使用して、循環パターンと周期性を調べたいと考えています。過去に、これには Statistica を使用しました。ただし、R を使用して、スペクトル密度と周期のプロットを取得したいと考えています。Rでこれを行う簡単な方法はありますか? 可能であれば、アクティビティの 12 時間と 24 時間のピークを特定したいと思います。
android - 特定の画面サイズの密度で画像を生成する
アプリビュー全体で使用される1つの画像ファイルを使用してアプリを構築しています。Androidのさまざまな画面密度に画像をスケーリングすることに関してandroid.developersの情報について少し混乱しています:ldpi = 0.75
; mdpi = 1.0
; hdpi = 1.5
; xhdpi = 2.0
。
私が最初に考えたのは、画像ファイルを適切な密度のファイルに挿入するだけで、その後はAndroidがスケーリングを処理するということでした。しかし、私はこれが正しいとは思いません。私の質問は:
私が間違っていて、画像を自分で適切な密度にスケーリングしてから、それらを別の密度ファイルに保存する必要がある場合、これをどのように行うのですか?Photoshopでこれを行うことはできますか?はいと思っていますが、よくわかりません。もしそうなら、どのように画像を拡大縮小しますか?助けてくれてありがとう!
r - スペクトル密度方程式に非関数を適用しようとしています
R を使用して MA(2) モデルのスペクトル密度を見つけようとしています。どこで間違ったのかわかりません。ヘルプ。
また、sigma、theta1、theta2、および omega もすべて定義されています。私の間違いはどこですか?ありがとうございました。