• 締切済み

FFTで小数点以下のsin周波数を検出することはできるのでしょうか?

FFTで小数点以下のsin周波数を検出することはできるのでしょうか? 私はFFTどころか「フーリエの冒険」を読んででやっとDFTがなんたるかを理解できた人間なんですが、 今どうしてもC言語のFFTのプログラムを必要としています。 で、今の私ではFFTのプログラムを作ることはできないと思ったので インターネットからプログラムをコピーして使用していたのですが、 私が調べた限りだと小数点以下のsin周波数を正常に検出できるようなFFTのプログラムはみつかりませんでした。 ですので、詳しい人がいたら小数点以下のプログラムがあるところを教えてください。お願いします。 あと気になる点があるのですが、 http://mak-oto.cocolog-nifty.com/blog/2009/10/post-84b1.html ↑のURL先の記事を読んで、小数点以下の周波数をどう検出したらいいのかよく分からなくなりました。 そこについての補足もできればよろしくお願いします。

みんなの回答

noname#210617
noname#210617
回答No.1

>小数点以下のsin周波数を正常に検出できるようなFFTのプログラム 周波数領域での検出の限界は、プログラムによって決まるのではありません。 採取したデータのサンプリング周期とサンプル数によって決まります。 リンク先の記事では >今までは基準周波数を1で考えてきたので横軸の値をそのまま適用できましたが、ほんとうは基準周波数を掛けて求めます。 と言っています。 ここで言っている基準周波数は、サンプリング周期にサンプル数をかけたもの(基準周期)の逆数です。 FFTのプログラム上では、データの時間間隔を1(サンプル周期)としていますし、得られる結果での周波数間隔は1(基準周波数)となります。 ですから、プログラム上では"小数点以下のsin周波数"というものはありません。 "小数点以下のsin周波数"という概念は、サンプル周期・基準周波数によって、実時間・実周波数に換算した後に当てはめられるものです。

関連するQ&A