【HSP/C/C++】高速フーリエ変換/逆高速フーリエ変換【プラグイン/ライブラリ】
【HSP/C/C++】高速フーリエ変換/逆高速フーリエ変換【プラグイン/ライブラリ】
FFT/IFFTを行うプラグイン (ライブラリ) です。
ダウンロードは下から。
プログラムは主にフェルミウム湾さんに書いていただきました。本当にありがとうございました。
(フェルミウム湾氏の許可の元、プラグインを配布しています。)
サンプルスクリプト
// 関数準備
#include "fftex.as"// 定数定義
#define sample 16
// 変数準備
ddim data,sample,2
// 初期値代入
repeat sample
data.cnt.0=double(cnt)
loop
// 表示
pos 0,0
repeat sample
mes ""+data.cnt.0+" + "+data.cnt.1+" i"
loop
// 高速フーリエ変換
fourier data,data,sample,0
// 表示
pos 213,0
repeat sample
mes ""+data.cnt.0+" + "+data.cnt.1+" i"
loop
// 逆高速フーリエ変換
fourier data,data,sample,1
// 表示
pos 427,0
repeat sample
mes ""+data.cnt.0+" + "+data.cnt.1+" i"
loop
16つの値をFFTし、IFFTするサンプルです。
#define sample 16 の値を買えれば個数変えられます。(ただし2のべき乗で)
逆FFTした結果の虚部が-0.000000とかなってるのがありますが、それは誤差の範囲で。
っていうか、FFT前が実数なんだから逆FFT後も実数になるのはわかるので、あえて実部だけ取り出しちゃっといてもよいと思います。
ではではまたいつかお会いしましょう~。
↓クリック (投票) お願いしま~す
用途によって様々でしょう。多分、これだけ桁数があれば
十分何らかのソフトは作成できそうです。
ここから各周波数成分の大きさをいじれば、楽しいことになりそうですね^^!
そうですね!
大きさをいじるだけでもイコライザになるので楽しめますし、横にシフトすればボイスチェンジャーになりますし…使い方いろいろです!!
はじめまして。
すばらしいライブラリが!と思い、使用させていただきました。
速度がすばらしく速いので、スペアナを作ろうとしたところ
起動後、数分の後に FFTEX.ASの7~9行目でシステムエラーが発生しました。。。
。・゚・(ノД`)・゚・。ウワーナンジャコリャ
と思って色々試してはみたのですが、
結局、原因わからずじまいです(涙)
もしよろしければ、原因究明をお願いします!
この速度でHSP上でFFTできるモノはこれしかないと思いますので…!
返信遅れてすいません。
現在とある理由により、ブログ並びにプログラミングを中止していまして、
このコメントはたまたま間があいたので書いているのですが、
今手元にソースがないので何とも言えません。申し訳ありません。
7~9行目というと、DLLから関数を呼び出して実行しているところですね…。
HSPとDLLの互換性の問題なのか、DLL内でエラーが起きているのか…。
次に返信できるのがいつになるかわかりませんが、具体的なプログラムのソースをいただけないでしょうか?
どこかのアップローダーにアップしていただけるとありがたいのですが、どうしてもそういうのがだめなら、私が普通にPCができるようになってから (12月13日(木曜日)~) Skype/Yahooメッセンジャー で送っていただけないでしょうか?
ソースを公開したくないとかの要望があればまたコメントでお願いします。
すぐに対応ができなくて申し訳ありません。
ご丁寧な返信ありがとうございます。。。
結局のところ自己解決いたしまして、モジュールによるFFTでくみ上げました。
そのため、FFTEXの不具合に関しては放置という状態になっています。
また、このソースは友人の卒業研究の一環として作成したもので、
友人に全て譲渡してしまい、手元に原本すら残っていない状態です。
大変後味は悪いままですが、このような形でのご返信をお許しください。
ありがとうございました。
了解です。お役にたてず申し訳ありません。