以下のページを参考に、というかソースそのままコピーさせてたいただきました。
https://nurs.hatenablog.com/entry/20130308/1362762361
http://docolog.cocolog-nifty.com/papalog/2014/03/post-3de1.html
jqplotのPlot2Dを使ってグラフ表示したいのですが、
どうやって横軸に周波数を置くことができるのかわかりません。
javascriptで以下のような記述です。
plot_org = new Plot2D("canvas-frame-org"); //Plot2Dのインスタンス作成(オリジナルデータ用) plot_dft = new Plot2D("canvas-frame-dft"); //Plot2Dのインスタンス作成(フーリエ変換用) plot-org.pushData(data-org); //[time,value]を渡す plot-dft.pushData(data-dft); //ここが分からない plot-org.linerPlot(); //描画 plot-dft.linerPlot(); //描画 data-org.push([time,value]); //CSVから一行づつ格納 data-dft = fdt(data-org); //フーリエ変換 //以下コピペしたソースでフーリエ変換 function dft( a // [入力] 実数数値列としての信号 ) { var Re = [];// [出力] 実数部 var Im = [];// [出力] 虚数部 // dft var N = a.length; for( var j=0; j<N; ++j ) { var Re_sum = 0.0; var Im_sum = 0.0; for( var i=0; i<N; ++i ) { var tht = 2*Math.PI/N * j * i; Re_sum += a[i] *Math.cos( tht ); Im_sum += a[i] *Math.sin( tht ); }// i Re.push( Re_sum ); Im.push( Im_sum ); }// j return {'Re':Re, 'Im':Im}; }
CSV内の時系列データをdata-orgに読み込んでPlot2Dに渡すときは、
[time,value]で渡るので、時系列のグラフが表示されます。
data-orgをdata-dftにフーリエ変換した後、
X,Yをどのように渡すとPlot2Dに描画できるのでしょうか?
あなたの回答
tips
プレビュー