時系列プロットのフーリエ変換について

7 ビュー (過去 30 日間)
Naoki Ishibashi
Naoki Ishibashi 2016 年 11 月 7 日
コメント済み: 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)
宜しくお願い致します。

採用された回答

Takuji Fukumoto
Takuji Fukumoto 2016 年 11 月 9 日
編集済み: Takuji Fukumoto 2016 年 11 月 9 日
>フーリエ変換してプロットしたい
こちらはパワースペクトル密度のプロットでよろしいでしょうか。
もしそうで、Signal Processing Toolboxもっていらっしゃれば、 fft()をperiodogram()に置き換えれば良いかと思います。
fft()の関数から計算を行う場合には下記のページが参考になるかと思います。
  3 件のコメント
Naoki Ishibashi
Naoki Ishibashi 2016 年 11 月 15 日
自分の理解が足りていなく申し訳ないのですが、periodogram()でプッロトされたものもまたsin成分とcos成分が重なった値であると思います。 そのためもしご存知でしたら、fft()で出力された値をsinとcos成分に分解しプロットする手法を教えて頂けると幸いです。
Takuji Fukumoto
Takuji Fukumoto 2016 年 11 月 18 日
新しく質問を立てていらっしゃったようなので、そちらにコメントさせていただきました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFilter Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by