- 締切済み
FFTデータ数が少ないと直流成分が大きく変動する?
FFTの振幅スペクトルから実効値算出のために単一正弦波をFFTしてみると、(1)のように計算データ点数が少ない場合、窓関数の位置によって「0Hz直流成分」のFFT結果値が大きく変動してしまいます。((2)(3)は窓関数がどの位置でも問題ありません。) この(1)(1サイクル64点=FFTデータ数64個)のような計算の場合、どのように実効値算出すればよいでしょうか? また、正常な場合でもこれらのサンプル間隔(0、30Hz、60Hz等)の"すき間の部分”は考慮しなくても、全て計算結果に出力されているということでよいでしょうか? 単一正弦波(60Hz) ((最大値5388.9v=実効値3810.5v)、サンプリング3.84KHz=1サイクル64点) (実効値換算式=前半の√(実数^2+虚数^2)の合計/(FFTデータ数/2)/√2) (1)FFTデータ数 64個⇒0Hz(0.00~1905.2)???、60Hz(1905.2),120Hz(952.6)、180Hz(0.0)、 ⇒合計( ??? ) (2)FFTデータ数128個⇒0Hz(0.0), 30Hz(952.6),60Hz(1905.2),90Hz(952.6), 120Hz(0.0)、 ⇒合計(3810.4) ≒実効値 (3)FFTデータ数256個⇒0Hz(0.0),15Hz(0.0),30Hz(0.0)、 45Hz(952.6),60Hz(1905.2),75Hz(952.6), 90Hz(0.0), ⇒合計(3810.4) ≒実効値
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bongo-fury
- ベストアンサー率53% (7/13)
FFTについては使用したことはあるが、製作したことは無い素人ですが、 "FFTの振幅スペクトルから実効値算出" と考えたこともない発想が 気になったので、こちらでもExcelで手計算してみました。 残念ながら、同じ結果とはなりませんでしたが、ヒントになるかもしれない ので、その内容を記載します。 (1)Excel手計算結果 ・単一正弦波周期を窓に合わせるとFFTの周波数は、バラツかなかった。 ・サンプリング周波数を微妙に上げて、窓を正弦波より微妙に大きくすると DCがでたり、周波数の前後にも周波数が出るようになったが、 質問の(1)(2)(3)に記載されたような周波数的に大きなのバラツキは 出なかった。 ・単一正弦波にバイアス電圧を加えたら、正弦波の周波数とDCが出た。 ・単一正弦波にその2倍周期の正弦波形(振幅を1/2)を加えたら、FFTの 結果には元々の周期と2倍の周期(値は1/2)が出た。 (2)質問で気になる点 ・計算の(1)では、窓の中には60Hzが1サイクルしか入っていないように 記載されています。1サイクルだと、さすがに60Hz算出は厳しいので、 もう少しサイクル数を増やして試してみるのも良いかもしれません。 例えば、1サイクル4点で、16サイクル(計64点)にすれば良くなると 思いますので、差異を確認してみるのも良いかもしれません。
お礼
さっそくにありがとうございます。 ”バラツキ”については、1サイクル64点の波形を1点ずつずらして窓関数に64個ずつ入れた1点ずつの結果が、DC分のみが大きく変動します。 128個ずつ入れる場合は、DC分は0で、他の成分はどの地点でも同値でした。 こちらも、1サイクル64点のみのFFTでは誤差が大きくなるように感じていますが、1サイクルでFFTしているという古い装置もあるので、算出方法を確認しようとしています。 同じ64個でも「1サイクル4点で16サイクル(計64点)」という方法もあるのですね。一度やってみたいと思いますが、最終的には高周波ノイズの入った波形をFFTすることになるのですが同様に適用できるでしょうか。