【速報】LibreOffice Calcにフーリエ解析が実装された

フーリエ解析のダイアログ.データ,系列,オプション.

LibreOfficeの6.3では,LibreOffice Calcにフーリエ解析(離散フーリエ変換)が実装されました.

MSExcel(2013を指す;以下同じ)には以前からフーリエ解析の機能がありましたが,LibreOffice Calcにはありませんでした.LibreOffice派の私としてはそれがちょっと残念でした.ところが,LibreOfficeの6.3でついにフーリエ解析が実装されることになったのです(リリースノート).

6月21日時点ではまだベータ版の段階ですが,さっそくインストールしてみます(ベータ版は製品版とは独立にインストールできるようです).

LibreCalcにおいては,離散フーリエ変換(DFT)は関数として実装されています.とは言っても[データ]-[統計]-[Fourier Analysis]でダイアログが表示されますので,そちらを使うのが便利でしょう(メニューアイテムやダイアログはそのうち日本語化されるはずです).

フーリエ解析のダイアログ.データ,系列,オプション.

とりあえず何も考えずに,入力データ範囲と出力先だけを設定して出力してみましょう.

LibreOffice Calcによるフーリエ変換.B列に16行の入力データ.E列F列に16行の出力データ.それぞれ実部と虚部.
フーリエ解析の例(1)

はい,出てきました.MSExcelとは出力形式が異なっていて,複素数の実部と虚部に対する実数が別の列に出力されています.これは好き嫌いがあるかもしれません.またDFTには係数の流儀がいくつかありますが,ここでは変換時には係数が1で,逆変換時に1/Nを乗じる流儀が採用されています.この点はMSExcelと同じです.

さらに,(MSExcelにはない)以下の機能も備えられています.

  • MSExcelではデータ数が2のべき乗(かつ4096以下)という制限がありましたが,LibreCalcでは(2つのアルゴリズムを実装しているので)そのような制限はないようです.
  • 出力を極座標表示させることができます.ダイアログの[Output in polar form]にチェックを入れるか,FOURIER関数の4番目の引数にTRUE(1)を設定します.
  • DFTの計算においては,本来0であるべき値が(計算誤差の積み重ねによって)小さな値をもつことがあります.極座標表示をさせる場合は,[Minimum magnitude for polar form output (in dB)]に値を設定することによって,絶対値がそれに満たない値を0に切り捨てることができます.ここでのdBはパワースペクトル(絶対値の2乗)に対するものではなく絶対値そのものに対するものですので,10倍が(20dBではなくて)10dBになります.たとえば絶対値0.001未満を切り捨てるには,-30dBと入力します.

これらを駆使した例も挙げておきましょう.

LibreOffice Calcのフーリエ解析.B列に12行の入力,E列F列に12行の出力.極座標形式.有意な1行目,4行目,7行目,10行目以外の出力は0に切り捨てられている.
フーリエ解析の例(2)

最後に余談を一つ.FOURIER関数の出力は,行列式(数学の行列式ではない)になります.その扱い方を忘れがちですのでついでにメモしておきます.

  • 行列式全体を選択するには,範囲内のどこかにカーソルを合わせて Ctrl+/ を押す.
  • 編集後には,Shift+Ctrl+Enter で反映させる.

それでは素敵なフーリエ生活をお送り下さい!