scilabでフーリエ解析

フーリエ解析をScilabでしてみます。
fftplot


まずは、フーリエ変換してプロットする関数をつくります。

fftplot.sci
unction [result,freqlist]=fftplot(data,Fs)

fftdata=fft(data);

freqlist=linspace(0,1,length(data))*(Fs-Fs/length(data));

plot2d(freqlist,abs(fftdata),logflag="nl");

a=get("current_axes");
a.data_bounds=[0,min(abs(fftdata)); Fs/2,max(abs(fftdata))];

xlabel('Frequency[Hz]');

result=fftdata;
endfunction



テストプログラム

exec("fftplot.sci");


t=linspace(0,1,1000+1);

freqlist=[100 200 300];
Fs=1000;

sig=sin(2*%pi*t*freqlist(1))+0.7*sin(2*%pi*t*freqlist(2))+0.8*sin(2*%pi*t*freqlist(3));


scf;
subplot(211);
plot2d(t,sig);
ax=get("current_axes");
m=max(abs(sig));
ax.data_bounds=[0 -m; 0.2 m];
subplot(212);
fftplot(sig,Fs);



参考にしたページ
非公式広島大学病院脳磁図室ホームページSCILAB篇
Scilab日本語ドキュメント
Scilab つかいませんか





*この記事は、以前のブログの記事scilabでフーリエ解析を再編集して再掲しました
スポンサーサイト

コメントの投稿

非公開コメント

全記事表示リンク

全ての記事を表示する

最新記事
最新コメント
最新トラックバック
カテゴリ
検索フォーム
RSSリンクの表示
リンク