JMP でスペクトル分析を実行するにはどうすればよいですか?周波数領域で調べたい 800,000 ポイントを超えるデータ系列があります。スペクトル密度データを作成するために「時系列分析」を実行しようとしましたが、JMP がハングします。数分間ハングしたままにしていたら、グラフィックカードが故障してしまいました...まったくの偶然です!
試してみたい場合は、データ ファイルが添付されています。最初の列は秒単位のタイムスタンプ、2 番目の列はデータです。これを行う方法があれば教えてください。
ありがとう、
ジェイソン
Re: スペクトル分析はどのように行うのですか?こんにちは、ダニエルさん
私はフィオナのリクエストに応えます。 コードを共有していただくことは可能でしょうか?
ありがとう
Re: スペクトル分析はどのように行うのですか?スクリプトを共有して、私のデータで FFT を実行させてもらえますか?
Re: スペクトル分析はどのように行うのですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />素晴らしい! それらのデータに関する情報をありがとうございます。 私の分析があなたの期待と一致していることを嬉しく思います。 実際、JMP は周波数領域データの統計解析に非常に適していますが、他のツール (MATLAB など) は、任意のサイズの配列での FFT の実行、フィルター設計、畳み込みなどの特殊な作業を行うのに適しています。これが、JMP の拡張性が優れている理由です。SAS、MATLAB、および R と連携できるため、必要に応じてこれらのツールを活用し、視覚化と分析のためにデータを JMP に戻すことができます。
すべて JSL で作成した FFT アプリケーションを通じてデータを実行しました。これは、JMP プラットフォームとまったく同じように機能します。

[OK] をクリックすると、MATLAB に接続して、時間領域データを周波数領域に変換する既存のコードが実行され、その後、さらなる分析とグラフ作成のためにそのデータが新しい JMP データ テーブルに戻されます。 MATLAB で信号の追加処理を行う必要がある場合 (たとえばバンドパス フィルターを実行するなど)、データを JMP に返す前に MATLAB で同様に処理できます。
しかし、データが JMP に戻されると、必要に応じて分析または視覚化できるようになります。 たとえば、ローカル データ フィルターを使用して、整流された AC ソース成分が 3 Hz を超える信号の部分だけに焦点を当てました。

次に、[行] > [行選択] > [ドミナントの選択] を使用して、パレート フロント上の点に焦点を当てます。 JMP は 33 個の FFT ビンを特定しました。これらは、[テーブル] > [サブセット] を使用してサブセット化できます。 「元のデータ テーブルにリンク」にチェックを入れると、サブセットと完全なデータ セットがリンクされます。 + マーカーを置き、サブセット内のこれらの点を赤で色付けしました。元のデータ テーブルでも色付けされています。

どのような質問に答えようとしているかによって、これらのデータを分析する最適な方法が決まりますが、変換されたデータが JMP に戻されたら、好きな方法で調査できます。 JSLでFFT関数を使用するという@Xanの提案も素晴らしいです。 私が MATLAB を使用することを選択した理由は、MATLAB でさまざまな信号処理を行うコード ライブラリがすでにあることと、解析ステップの一部として IIR または FIR フィルターを使用してデータをフィルター処理する必要がよくあるためです。これは、MATLAB が適したタスク (フィルターの設計とフィルター処理ステップの実行の両方) です。
Re: スペクトル分析はどのように行うのですか?ご覧いただきありがとうございます!はい、FFT を実行するための他のソフトウェア (AD Instruments の Labchart) を見つけました。興味深いピークがいくつかあることに同意します。120 Hz と 240 Hz は、整流された AC 電源からのノイズを示します。1 Hz 未満のエネルギーの一部は一定の倍数のピークに分解され、システム内の機械コンポーネントの回転周波数に相関している可能性があります。
主に、JMP に適切に使用していない機能がないかどうかを確認するために投稿しましたが、周波数領域の統計分析は実際には専門ではないようです。
Re: スペクトル分析はどのように行うのですか?JMP 11 の MATLAB への JMP インターフェイスを使用して、MATLAB で作成した FFT 解析スクリプトを通じてこれらのデータを実行しました。 SR は 1000Hz のようです。これにより、ナイキスト周波数までの解像度が得られます。 500Hzの。 多くの LF エネルギーが DC に向かっていますが、40 Hz ~ 300 Hz の間にいくつかの興味深いピークがあるようです。 これは、これらのデータに対して期待できるタイプの結果ですか?
MATLAB から返された結果をグラフ ビルダーでプロットします。

Re: スペクトル分析はどのように行うのですか?時系列のスペクトル密度コマンドは明らかに遅いアルゴリズムを使用しています。 「FFT」と呼ばれる JSL 関数がありますが、これは高速アルゴリズムを使用しますが、これはポイント数が適切な概数 (多数の小さな要素を含む) である場合に限られます。 たとえば、データをちょうど 800,000 行に切り詰めると、次の JSL がすぐに返されます。
data = Column( “y” ) << 値を取得します。 Show( N Rows( data ) );
f = FFT( {データ} ); Show( N Rows( f[1] ) );
現在のデータ テーブル() << 新しい列("freq", 値を設定( f[1] ));