Excel を使ってフーリエ変換 (FFT)をしましょうという話ではなく、Excel を使ってフーリエ変換結果を描かせるためのサンプル数の上限の話。
Excel 2021、2019、2016 はいずれも1048576行が上限とのことで、これはExcel 2007 以来長らく変わっていない。なお、Excelの分析ツールによるフーリエ解析では、4096点が上限とのことである。
<上限にあたるFFT処理の規模>
10進法:1048576=16進法:0x100000=2の20乗であるから、1048576を表現する整数で、ANSI C で確実に保証されるのは、unsigned int(UINT_MAXが2の16乗-1以上)ではなく、unsigned long(UINT_LONGが2の32乗-1以上)
倍精度浮動小数点数型(8byte)でプログラムに処理させる場合、FFTの処理には最低でも8byte×2(複素数)×1048576(サンプル)=16Mbyteの記憶領域が必要。
<上限にあたるFFT処理をする波形測定の規模>
1000000S(サンプル)ということになるので、100sの測定ならば10000S/s(100us/S)までの速度(10kHzにあたり、サンプリング定理から5kHzまでをカバー)が最大ということになる。
Excel 2021、2019、2016 はいずれも1048576行が上限とのことで、これはExcel 2007 以来長らく変わっていない。なお、Excelの分析ツールによるフーリエ解析では、4096点が上限とのことである。
<上限にあたるFFT処理の規模>
10進法:1048576=16進法:0x100000=2の20乗であるから、1048576を表現する整数で、ANSI C で確実に保証されるのは、unsigned int(UINT_MAXが2の16乗-1以上)ではなく、unsigned long(UINT_LONGが2の32乗-1以上)
倍精度浮動小数点数型(8byte)でプログラムに処理させる場合、FFTの処理には最低でも8byte×2(複素数)×1048576(サンプル)=16Mbyteの記憶領域が必要。
<上限にあたるFFT処理をする波形測定の規模>
1000000S(サンプル)ということになるので、100sの測定ならば10000S/s(100us/S)までの速度(10kHzにあたり、サンプリング定理から5kHzまでをカバー)が最大ということになる。