fft関数の出力データの成分分解

조회 수: 8 (최근 30일)
Naoki Ishibashi
Naoki Ishibashi 2016년 11월 15일
편집: Takuji Fukumoto 2016년 11월 18일
添付の地表温度データを以下のプログラムで時系列プロットし、それをフーリエ変換しプロットしたいため、fft関数を使おうと考えたのですがうまくいきません。例題ページを見たところ、データをsin成分とcos成分に分解してからプロットしなくては行けないのかなと考えたのですが、その方法もわからず、もしご存知の方いらしましたら教えて頂きたいです。 以下時系列プロットのプログラムです
filename =('1.txt');
x = load(filename);
x = timeseries(x);
x.Name = 'Daily Count';
x.TimeInfo.Units = 'days';
x.TimeInfo.StartDate = '04-06-01 00:00'; % Set start date.
%x.TimeInfo.End = '04-08-31 21:00';
x.TimeInfo.Units = 'hours';
x.TimeInfo.Increment = 3;
x.TimeInfo.Format = 'yy-mm-dd HH:MM'; % Set format for display on x-axis.
x.Time = x.Time - x.Time(1); % Express time relative to the start date.
plot(x)
以下フーリエ変換です
filename =('1.txt');
x = load(filename);
y = fft(x);
plot(y)
  댓글 수: 2
michio
michio 2016년 11월 15일
편집: michio 2016년 11월 15일
実施されたい処理内容・欲しい最終結果が分からなくなってきました。データをsinとcos成分に分解するという点についてもう少し具体的に知りたいところですが、もし、質問内に登場する「例題ページ」に何かお求めの結果に近いものがあるようでしたら、そちらがヒントになるかもしれません。
Naoki Ishibashi
Naoki Ishibashi 2016년 11월 16일
편집: Naoki Ishibashi 2016년 11월 16일
不明確な質問をしてしまい申し訳ありません、 自分の中のイメージは添付(fourier.png)のようなグラフです。 fftで出力された値を振幅にしグラフにプロットしたのですが(添付1_fourier.jpg)、これを添付(フーリエ変換.png)のようにsin成分とcos成分に分解したいと考えています。

댓글을 달려면 로그인하십시오.

채택된 답변

Takuji Fukumoto
Takuji Fukumoto 2016년 11월 18일
편집: Takuji Fukumoto 2016년 11월 18일
画像のプロットの理解については推測が入ってしまいますが、
fft()関数での離散フーリエ変換では
Wn=e^(−2πi)/nの項があり、複素平面で取り扱われています。
e^iθ =cosθ+ i sinθであらわせるので、
画像のプロットでは実軸の数値をcosin、虚軸の数値をsinと表示しているのかと推測します。
FFT演算後のyは複素数になっているので、 実数部と虚数部を取り出してそれぞれをプロットすればよいのではないでしょうか。
実数部を取り出す → real()
虚数部を取り出す → imag()
でできます。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by