クロススペクトルの算出方法
- クロススペクトルを計算する具体的な方法について質問します。
- 2つの時系列の周波数ごとのコヒーレンスとフェイズを算出し、図示する方法について知りたい。
- FFTプログラムで1つの時系列のスペクトルを算出する場合、それを元にクロススペクトルを算出できるかどうかを知りたい。
- ベストアンサー
クロススペクトルを算出する方法
クロススペクトルを計算して求める具体的な方法についてお尋ねします.2つの時系列があって,各周波数ごとのコヒーレンスとかフェイズを算出して周波数による変化を図示したようなものだと思います. 2つの量をいっぺんに処理するようなので複素数ということになると思いますが.実部,虚部をそれぞれコスペクトル,クオドラチャスペクトルなどと言っていたと思います. さて,そこで質問ですが,1つの時系列でスペクトルを算出するFFTプログラムがある場合,その結果を元にしてクロススペクトルを算出することは可能でしょうか.2つの時系列のそれぞれのスペクトル(振幅,位相)を個別に算出できるプログラムがあり,それらからクロススペクトルを求められないかということです.それともクロススペクトルを求めるルーチンは,2つの時系列を放りこんでそれ専用のFFTのルーチンを経て出力されるものなのでしょうか. スペクトルを求める方法は,FFT, 最大エントロピー,相関関数の変換などいろいろあると思います. FFTだけが手元にあります. よろしくお願いします.
- skmsk1941093
- お礼率52% (611/1161)
- 物理学
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
クロススペクトルとは相互相関のスペクトルのようですね。 >2つの時系列のそれぞれのスペクトル(振幅,位相)を個別に算出できるプログラムがあり,それらからクロススペクトルを求められないか 相互相関とは畳み込みですよね。周波数領域ではスペクトル同士の積に相当しますから、それぞれの時系列に対しFFTの結果を得た後、各周波数成分(複素数)の積をとれば良い事になります。 ただし掛け算の前に片方は複素共役をとるのだと思います。 言うまでも無いと思いますが、位相情報が重要です。時系列の採取は同時でなければ意味有りません、念のため。
関連するQ&A
- スペクトル解析におけるコヒーレンス
2つの変動している時系列をFFTによって複素フーリエ成分に分解し、それぞれの周波数成分での実部と虚部(2つの時系列なので4つの数値)の組み合わせからコヒーレンスとかフェイズを算出できるようになっています。クロススペクトルからの処理とも言えると思いますが。 実際に計算してみるとコヒーレンスの値がどの周波数成分でも1ばかりになっており、どうしたことかと思っています。コヒーレンスの差異は非常にケタの小さいところに出るのだろうかとか、計算が間違ってないかなとチェックしていますが、原因がわかりません。また、全く無相関なはずのランダムデータを2つで調べてもコヒーレンスが1になってしまい、お手上げです。 どのようなものでしょうか。また、ネットで調べてみるとコヒーレンスを計算する場合、特殊な処理が必要との記述もありました。その説明はMatlabによるものなので当方の環境(Fortran)と一致しません。コヒーレンスは1に近い値になるものでしょうか(つまり計算は正しい)。あるいはそれは間違いで何かの処理をしたら正しく(?)計算できるものでしょうか。コヒーレンスの計算はその定義どおりに計算しているので今でも間違っているはずはないのですが。 よろしくお願いします。
- 締切済み
- 情報工学
- 複素数と実数が混在するように見える式について
時系列解析で、自己相関係数のフーリエ変換がパワースペクトルになるというウィナーキンチンの関係というものがあります。その式では複素数が含まれているので、実数を入力として複素数が含まれている式で計算された出力結果は普通は複素数ということになります。しかし、自己相関係数は実数の系列で、パワースペクトルも実数になると思います(実部と虚部の2乗和なので)。実数に複素数を絡ませて変換して出てきたものが実数になるということになってしまいます。ここが理解できないのですが、どのように考えていくのでしょうか。絶対に虚部がゼロになるから、ということなのでしょうか。 一般にFFTによるスペクトル変換では実数列は複素数の実部にあてて変換する(例えば虚部はゼロにしておくとか)ので複素数から複素数を入出力するということで理解できます。 実際にプログラムでの処理を考えているので概念的な説明だけでは実装することできません。 なお、私は常に標準的なFFTでフーリエ変換しているので複素数での入出力ということなので実数となる系列では先に進めないという感じなのですが。もし出力が実数ということになったとき実部がそれ、虚部がそれ、実部と虚部の2乗和がそれ、というのならわかるのですが。 よろしくお願いします。
- 締切済み
- 数学・算数
- FFTを使って信号から特定の周波数を抜き去る方法
FFTを用いてある時系列データから特定の周波数の成分を抜き去ろうと思っていますが、 うまくいかないのでお伺いします。 調べてみると、スペクトルを出すとき、例えば同じ振幅で周波数の異なるの正弦波を 10個入れても全て同じ振幅にならず、振幅の大きさにばらつきが出ていて周波数成 分の成分の推定がうまくいっていないようです。FFTの2乗のデータを小さな周波数区 間で積分してスペクトル密度にしても、先ほどの10個の正弦波の振幅がそろわない のと、周波数推定が悪くなりうまく、引き去れなくなっています。 よくある状況だと思いますが、どういう工夫が必要なのでしょうか。 ちなみに、FFTのルーチンはnumerical recipeとFFTWの二つで試しました。
- ベストアンサー
- C・C++・C#
- FFT/スペクトルに関して
エクセルにてFFTを勉強しているのですが、FFT後に出てくる縦軸のスペクトルとは何でしょうか? 時間軸×音圧 ⇒ 周波数×音圧に変換したんですが、この縦軸は音圧ではなくスペクトルというものだと理解しています。このスペクトルが示すものは単にその周波数の成分が強い傾向にあるというのを示しているだけで、その周波数の音圧がいくらというのを示しているのではないのでしょうか? 現在、訳あってその周波数の絶対量を使用したいのですが、その数字に意味はないのか教えてください。
- ベストアンサー
- その他(品質管理)
- 実部画像と虚部画像の意味
ある画像について、2次元の離散フーリエ変換を 実施し、パワースペクトル画像と実部画像と 虚部画像が得られました。 パワースペクトル画像というものは、 その画像がどのような周波数を持つのかが 分かる画像だということは分かったのですが、 実部画像と虚部画像の意味、またはこれらの画像が 表している情報とは何なのかが分かりません。 質問の仕方が悪いのかもしれませんが、 一般的にフーリエ変換した時に得られる 実部の画像と虚部の画像にはどのような意味が あるのでしょうか? ご存知の方がいましたら、お教え願います。
- ベストアンサー
- 科学
- フーリエ 音を1オクターブ上げるにはスペクトルをどういじる?
周波数が倍になると1オクターブ音程が上がるという話を聞いたことがあります。 そこで、フーリエ変換をしたスペクトルデータをいろいろいじってみたのですが、どうしても1オクターブ音程が上がるということが実現できません(逆フーリエ変換をかけて音を確認)。 実際に1オクターブ音程を上げるにはどのようにスペクトル(絶対値・位相(もしくは実部・虚部))を変化させればよいのでしょうか? (音程だけ変化させて、音の速度は変化しないようにしたい)
- ベストアンサー
- 数学・算数
- ImageJによるパワースペクトル
こんにちは。 物理は素人です。 どうかよろしくお願いします。 ImageJで画像にFFTをかけたあとで、 パワースペクトルを作成すると、 よく意味のわからない、真っ黒画面中央にしろい点が出ます。 パワースペクトルといえば、 縦軸が振幅で、 横軸が周波数のものとおもっていたので、 なんだかわからなくて困っています。 ImageJやなんらかの簡易なソフトで、 FFT画像から、 横軸周波数、縦軸振幅の パワースペクトルを求めることは出来ないでしょうか? お知恵を頂ければ助かります。 よろしくお願いいたします。
- 締切済み
- 物理学
- スペクトルをグラフに表示したい
スペクトルデータをグラフに表示するプログラムを作ることになりました。 言語はVBです。 データは機械から電圧信号を取り込みます。 と言っても、実際は機械に付属しているソフトのAPIで取り込むのですが。 APIは、例えば1Vの電圧が機械に向かって流れたら、1Vが返ってくるような仕様になっています。 グラフはリアルタイムに表示する必要があります。 X軸が周波数、Y軸がスペクトルです。 スペクトルを求めるにはFFTをする必要があるので、取り込んだ電圧をそのままグラフに表示し続けるような単純な仕組みにはならないと思いますが、実際どう作ったらよいかわかりません。 私がイメージしている仕組みは以下のとおりなのですが、正しいでしょうか? (1) 電圧信号をフレームサイズ(FFTする件数)分取り込む。 (2) (1)のデータをFFTする (3) (2)の結果からスペクトルデータを求める (4) (3)のデータをグラフに表示する。 グラフの点数(座標の数)は、フレームサイズの1/2。 X軸の座標は周波数分解能ごとにプロット。 (1)~(4)を繰り返す。 (1)~(4)の処理にも少なからず時間がかかるのですが、はたしてリアルタイム表示は可能なんでしょうか? ちなみに、プログラムにはフレームサイズ(FFTする件数)と周波数レンジを設定できる機能も実装します。
- 締切済み
- その他([技術者向] コンピューター)