« ExcelでLAMBDA関数が使えるようになった(6) 離散フーリエ変換(DFT=Discrete Fourier Transform)をLAMBDA、LET、MAKEARRAY、MAP、複素数関数(IMEXP,IMPRODUCTなど)を組み合わせてVBAも分析ツールもなしに関数として実現する。これは実用的じゃなかろうか。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年2月18日 IEEE Microwave Magazineは女性高周波研究者特集2。指の動きで信号が変わるタグなど。Microwave Journalは誘電体共振器アンテナ(DRA)、μmでもないのになんでマイクロ波と言い出したか?+6Gホワイトペーパー, Wi-Fi 7など。 »

2022年2月17日 (木)

ExcelでLAMBDA関数が使えるようになった(7) 離散フーリエ変換(DFT=Discrete Fourier Transform)(修正版)と逆変換(IDFT)をLAMBDA、LET、SEQUENCE、MAKEARRAY、MAP、複素数関数(IMEXP,IMPRODUCTなど)を組み合わせてVBAも分析ツールもなしに関数として実現する。

さて昨日やった離散フーリエ変換はちょっと問題があって、それは実数は大丈夫だが複素数を入れるとエラーになるということ。

理由は、セルを数えるのにCOUNT関数を使っていたが、複素数は文字とみなされるのでCOUNTAをつかわないとだめだった。

逆フーリエ変換を作ろうとしてずっとエラーになっていたので気づいた。。。なので修正します。

離散フーリエ変換=LAMBDA(fn,LET(N,COUNTA(fn),MAKEARRAY(N,1,LAMBDA(m,c,IMSUM(MAP(fn,SEQUENCE(N,1,0),LAMBDA(fnn,nn,IMPRODUCT(fnn,IMEXP(COMPLEX(0,-2*PI()*nn*(m-1)/N))))))))))

離散逆フーリエ変換=LAMBDA(fn,LET(N,COUNTA(fn),MAKEARRAY(N,1,LAMBDA(m,c,IMSUM(MAP(fn,SEQUENCE(N,1,0),LAMBDA(fnn,nn,IMPRODUCT(IMDIV(fnn,N),IMEXP(COMPLEX(0,2*PI()*nn*(m-1)/N))))))))))

(もう少しわかりやすく書くとこうなる)

 

Dftidft00

これに名前(DFT、IDFTとする)をつけて、

Dftidft01

変換したい列を選んで=DFT(B2:B9)や=IDFT(C2:C9)などと最初の行に入れるだけで全データが出てくる。

Dftidft02

これは本当に実用的じゃなかろうか!と自負している。

なんせVBAも分析ツールもいらないからね。

追記:

Advanced formula environmentというアドインがあって、

https://www.microsoft.com/en-us/garage/profiles/advanced-formula-environment-a-microsoft-garage-project/

それを使えばDFTのような複雑な式も読みやすくなるのを知った。

早速入れてみた。DFTを表示すると、

Dftidft03

おお!かっこの対応が分かりやすくなった。これで開発がはかどるな。

 

 

過去にやったもの:

ExcelでLAMBDA関数が突然使えるようになった。4段4次のルンゲクッタ法がワークシートだけ(VBA使わずに)で簡単に計算できるようになった。まずはローレンツ方程式を計算してみる。

ExcelでLAMBDA関数が突然使えるようになった(2) 5次のルンゲクッタフェールベルグ法でローレンツ方程式をワークシートだけで(VBA使わずに)計算

ExcelでLAMBDA関数が突然使えるようになった(3) LET、SEQUENCE、IFSと組み合わせてワンライナー(1セル)で数値積分(シンプソンの積分公式)を計算

ExcelでLAMBDA関数が突然使えるようになった(4) LET、SEQUENCE、IFSと組み合わせてクロソイド曲線を計算するオリジナルの関数を作る。セルに=Clothoid_X(A2)とか入れるだけで計算できる。

ExcelでLAMBDA関数が突然使えるようになった(5)なんと再帰まで使える。階乗とフィボナッチ数列で試してみた。

« ExcelでLAMBDA関数が使えるようになった(6) 離散フーリエ変換(DFT=Discrete Fourier Transform)をLAMBDA、LET、MAKEARRAY、MAP、複素数関数(IMEXP,IMPRODUCTなど)を組み合わせてVBAも分析ツールもなしに関数として実現する。これは実用的じゃなかろうか。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年2月18日 IEEE Microwave Magazineは女性高周波研究者特集2。指の動きで信号が変わるタグなど。Microwave Journalは誘電体共振器アンテナ(DRA)、μmでもないのになんでマイクロ波と言い出したか?+6Gホワイトペーパー, Wi-Fi 7など。 »

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

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

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

コメント

コメントを書く

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

« ExcelでLAMBDA関数が使えるようになった(6) 離散フーリエ変換(DFT=Discrete Fourier Transform)をLAMBDA、LET、MAKEARRAY、MAP、複素数関数(IMEXP,IMPRODUCTなど)を組み合わせてVBAも分析ツールもなしに関数として実現する。これは実用的じゃなかろうか。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年2月18日 IEEE Microwave Magazineは女性高周波研究者特集2。指の動きで信号が変わるタグなど。Microwave Journalは誘電体共振器アンテナ(DRA)、μmでもないのになんでマイクロ波と言い出したか?+6Gホワイトペーパー, Wi-Fi 7など。 »

最近の記事

最近のコメント

2024年12月
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
29 30 31        
フォト
無料ブログはココログ