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

7 vues (au cours des 30 derniers jours)
Naoki Ishibashi
Naoki Ishibashi le 15 Nov 2016
添付の地表温度データを以下のプログラムで時系列プロットし、それをフーリエ変換しプロットしたいため、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 commentaires
michio
michio le 15 Nov 2016
Modifié(e) : michio le 15 Nov 2016
実施されたい処理内容・欲しい最終結果が分からなくなってきました。データをsinとcos成分に分解するという点についてもう少し具体的に知りたいところですが、もし、質問内に登場する「例題ページ」に何かお求めの結果に近いものがあるようでしたら、そちらがヒントになるかもしれません。
Naoki Ishibashi
Naoki Ishibashi le 16 Nov 2016
Modifié(e) : Naoki Ishibashi le 16 Nov 2016
不明確な質問をしてしまい申し訳ありません、 自分の中のイメージは添付(fourier.png)のようなグラフです。 fftで出力された値を振幅にしグラフにプロットしたのですが(添付1_fourier.jpg)、これを添付(フーリエ変換.png)のようにsin成分とcos成分に分解したいと考えています。

Connectez-vous pour commenter.

Réponse acceptée

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

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by