« 松屋で黒毛和牛入り粗挽きハンバーグのビーフシチュー定食(ご飯特盛)を頂く。かなり濃い味でご飯が進む。 | トップページ | すき家でファイヤー炭火チキンカレー(大盛)をいただく。炭火焼になっても柔らかさは変わらずほろほろ崩れていいな。 »

2022年12月13日 (火)

JavaScriptの数値計算ライブラリmathjsを使う(4) 高速フーリエ変換(FFT)を計算してココログにplotlyでグラフ表示できるようにする。

さてmath.jsを使うシリーズ4回目。今回は高速フーリエ変換(FFT)。

これは簡単にmath.fftとすればいいだけ(逆フーリエ変換はifft)。

PythonのNumpyの例題で確認しよう。

https://numpy.org/doc/stable/reference/generated/numpy.fft.fft.html

ソースコードはこんな感じで、

Mathjsfft02

結果はこちら。Numpyの例を再現している。

Mathjsfft01

テキストでもソースコード書いておきます。

    const t = math.range(0, 256).toArray()
    const y = t.map(function (x) {
        return math.sin(x)
        })
    sp = math.fft(y)
    freq = fftfreq(256, 1)

    const trace1 = {
        x: freq,
        y: math.re(sp),
        type: 'scatter'
    }
    const trace2 = {
        x: freq,
        y: math.im(sp),
        type: 'scatter'
    }
    const data = [trace1, trace2]
    Plotly.newPlot('fft1212', data)


    function fftfreq(n, d) {
        let x = []
        if (n % 2 === 0) {
            for (let i =0; i < n/2; i++) {
                x[i] = i * d / n
            }
            for (let i =n/2; i < n; i++) {
                x[i] = (i - n) * d / n
            }
        } else {
            for (let i =0; i < (n-1)/2 + 1; i++) {
                x[i] = i * d / n
            }
            for (let i =(n-1)/2 + 1; i < n; i++) {
                x[i] = (i - n) * d / n
            }
        }
        return x
    }
ココログで使えるようにしたのがこれ。

過去のもの

JavaScriptの数値計算ライブラリmathjsを使う(1) まずは行列演算。LU分解で一次方程式を解き、逆行列と行列式を求める。このココログで直接計算できる機能も付けた。

JavaScriptの数値計算ライブラリmathjsを使う(2) 次は複素数演算。四則演算や平方根、べき乗、expなどが簡単にできる。このココログで直接計算できる簡易電卓を作ってみた。

JavaScriptの数値計算ライブラリmathjsを使う(3) Plotlyを併用して関数をグラフ表示する。ココログでもグラフ表示できるようになった。

« 松屋で黒毛和牛入り粗挽きハンバーグのビーフシチュー定食(ご飯特盛)を頂く。かなり濃い味でご飯が進む。 | トップページ | すき家でファイヤー炭火チキンカレー(大盛)をいただく。炭火焼になっても柔らかさは変わらずほろほろ崩れていいな。 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 松屋で黒毛和牛入り粗挽きハンバーグのビーフシチュー定食(ご飯特盛)を頂く。かなり濃い味でご飯が進む。 | トップページ | すき家でファイヤー炭火チキンカレー(大盛)をいただく。炭火焼になっても柔らかさは変わらずほろほろ崩れていいな。 »

最近の記事

2025年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  

最近のコメント

無料ブログはココログ
フォト