Excel VBAで複素数演算(一次方程式・FFT他, Numerical Recipes移植)、フィッティング(非線形含む)、ルンゲクッタ8次(DOP853)などが使えるライブラリ その2: FFTライブラリ
昨日の続き。今回はFFT。
Sub FFT(cdata() As Complex, nn As Long, isign As Integer)
のようにサブルーチンとして宣言されています。
まずは複素数のデータ配列を準備します。2のべき乗個(Longで宣言)のデータが必要です。
Dim z1() as Complex
Dim n as Long
n=4 ' 2のべき乗
Redim z1(n)
のように宣言して、データをいれ、
Call FFT(z1, n, 1)
のように呼び出します。z1にデータが上書きされます。
最後の1を-1にすると逆変換になりますが、
データ個数nでは割られていません!必要ならば後で自ら割る必要があります。
(これはNumerical Recipesのルーチンの仕様です)
なので変換→逆変換を繰り返すと元に戻らずにn倍された値になります。
例題:
z1(1) = ToComplex(1#, 2#)
z1(2) = ToComplex(2#, 3#)
z1(3) = ToComplex(3#, 4#)
z1(4) = ToComplex(4#, 5#)
Call FFT(z1, n, 1)
Call FFT(z1, n, -1)
For i = 1 To n
z1(i) = Cdiv(z1(i), ToComplex(CDbl(n), 0#))
Next i
For i = 1 To n
Debug.Print z1(i).x & "+i" & z1(i).y
Next i
とすると元に戻ります。
ライブラリ本体:
またルンゲクッタ8次のDOP853ルーチンとそのドライバ。
メルセンヌツイスタ用
« #深イイ話 徳井さんが一番会いたいダンサーとして東京ゲゲゲイが登場。あ、ゲゲゲイの鬼太郎のダンサーか! | トップページ | Silicon LabsのThunderboard™ React Derby ミニチュア・カー・キットに衝撃を受ける、、、Bluetooth+センサのキットとくればロボットカーと思いきや、、、 »
「パソコン・インターネット」カテゴリの記事
- 高周波回路シミュレータQucsStudioを使ってみる(その3)Mixed Mode S parameterを計算(2018.10.12)
- 高周波回路シミュレータQucsStudioを使ってみる(その2)SパラメータのTouchStoneフォーマットで出力するには?(2018.10.11)
- 高周波回路シミュレータQucsStudioを使ってみる(その1)まずは何をさておきμの文字化けだけには注意。(2018.10.10)
- 円の弧長,弦長,矢高,半径のどれか2つを与えて残りを計算(カシオの高精度計算サイト自作式)で180°以上、複数解に対応。(2018.10.09)
- macbook proをmacOS Mojaveにアップデート。せっかくなんでダークモードにしてみる。(2018.09.26)
「学問・資格」カテゴリの記事
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2021年2月16日 IEEE Microwave Magazineの特集はオールデジタルのRFID、Microwave JournalはEバンド ミリ波通信に衛星や気球を使う話、アメリカの半導体企業がバイデンに投資を迫る、(2021.02.17)
- カオスを生じる電気回路、Chua’s circuitをLTspiceで回路シミュレーションしてみる。(2021.02.19)
- Labyrinth Chaos(迷宮カオス)を生むThomas-Rössler方程式のパラメータbを色々変えて、Python+Scipyでルンゲクッタ8次のDOP853(Dormand&Prince)を使って計算してGIFアニメ(2021.02.16)
- フィッツヒュー・南雲 (FitzHugh-Nagumo) 方程式をPython+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)で計算。(2021.02.23)
- 「水晶振動子の等価回路計算」をカシオの高精度計算サイトkeisan.casio.jpの自作式としてUP! インピーダンスの大きさと位相がグラフ化できる。(2021.02.12)
「日記・コラム・つぶやき」カテゴリの記事
- ExcelのLET関数+SEQUENCE関数で数値計算シリーズ(その4)ワンライナーでシンプソンの積分公式でクロソイド曲線を計算する。(2021.02.25)
- ExcelのLET関数+SEQUENCE関数で数値計算シリーズ(その3?)ワンライナー(1行というか 1セル)で数値積分のシンプソンの公式を計算する。(2021.02.24)
- 新型コロナウイルス、中国、日本、韓国、アメリカ、ドイツ、フランス、イギリスでの感染者数を指数関数&ロジスティック関数&Log-Logプロットでべき関数フィッティングした(2/21更新)さすがに日本も増加率は鈍化してきた。しかし中国が2/7から更新データがない、、、(2021.02.22)
- 点Pのあおり運転をGeogebraで3次元GIFアニメにしてみた。(虚構新聞の記事:辺上で急接近や急減速 あおり運転の疑いで点Pを逮捕を見て)(2021.02.18)
- 新型コロナウイルス、中国、日本、韓国、アメリカ、ドイツ、フランス、イギリスでの感染者数を指数関数&ロジスティック関数&Log-Logプロットでべき関数フィッティングした(2/14更新)増加率はさすがに減少したものの、まだ日本が一番増加率が高い。(2021.02.15)
トラックバック
この記事へのトラックバック一覧です: Excel VBAで複素数演算(一次方程式・FFT他, Numerical Recipes移植)、フィッティング(非線形含む)、ルンゲクッタ8次(DOP853)などが使えるライブラリ その2: FFTライブラリ:
« #深イイ話 徳井さんが一番会いたいダンサーとして東京ゲゲゲイが登場。あ、ゲゲゲイの鬼太郎のダンサーか! | トップページ | Silicon LabsのThunderboard™ React Derby ミニチュア・カー・キットに衝撃を受ける、、、Bluetooth+センサのキットとくればロボットカーと思いきや、、、 »
コメント