• 締切済み
  • 困ってます

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) ≒実効値

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.1

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することになるのですが同様に適用できるでしょうか。

関連するQ&A

  • 単振動+ホワイトノイズの時のFFTの振幅

    振幅ルート2(実効値1)の正弦波(周波数f)に標準偏差が0.1のガウシアンホワイトノイズが重畳したとき、FFTで算出される周波数fの振幅はどう変化するのでしょうか?(窓関数による誤差は無視した場合) よろしくお願いします。。 感覚的には(1^2+0.1^2)^0.5なのですが・・・・

  • FFTについて

    FFTについて 得られたデータをハニング窓を用いて、FFTを行ったところ どのデータに関しても 周波数が0付近で他の周波数に比べて非常に大きいパワースペクトルが得られます。 これは窓関数による影響でしょうか? FFtについていくつか参考書を読みましたが、正直まったくつかめず、 よくわからないままツールを振りまわしていますので 得られたデータが本当に正しい結果であるのか信じきれません・・・。 よろしければFFTを初学者が学ぶコツ、オススメの参考書等ありましたら教えて頂きたいのです。 よろしくお願い致します。

  • FFTの結果ついて

    ある50kHzの信号を1024点FFTにかけ、横軸周波数、縦軸をパワースペクトルに変換しました。  しかし、0Hzのところにとても大きな値が出力されました。 3Hzの正弦波を入力した際にはちょうど3Hzのところにピークが現れたので計算は合っていると思うので、原因がよくわかりません。   後、スペクトルをdb表示にしたいのですが、計算方法がわかりません。 申し訳ないですが、どなたか教えて下さい。

  • FFTの計算結果について

    FFTについて勉強しています。 「教えてgoo」でFFTで、検索したら、 http://momonga.t.u-tokyo.ac.jp/~ooura/fft-j.html の、計算パッケージが良いと分かったのですが、計算結果の、読み方?が、分かりません。fftsg.c か、fft8g.c を利用して、計算結果を利用してグラフを描こうと考えています。それで、質問なのですが、 1.サンプリング周波数 44.1KHz  16ビットで 8192個のデータを計算させた場合、計算値として得られる、配列は、周波数の小さい順に並んでいるらしいことは、分かるのですが、それぞれのデーターの周波数は、どうなっているんでしょうか?  単純に0Hzから22050Hzを8192で、割った小さい順で良いのでしょうか? 2. また、パワースベクトルは、どの様に計算したらいいのでしょうか? 20log絶対値 で、良いのでしょうか?  よろしくお願いします。

  • FFTを使って異なるサンプリング周波数での周波数強度について

    100Hzのsin波に対してFFTを行い周波数スペクトルを出したときのことです。 解析条件 サンプリング周波数・・・・44.1kHz , 22.1kHz FFTの点数・・・32768点 窓関数・・・ハニング窓関数 まず、サンプリング周波数44.1kHzで解析を行い、100Hzにメインローブが現れていました。 次に、サンプリング周波数22.1kHz以外は同様の解析条件で解析を行ったのですが、サンプリング周波数44.1kHzに比べて、100Hzのスペクトル強度が下がっていました。また、サイドローブは44.1kHzに比べて上がっていました。 スペクトル強度がサンプリング周波数によって変化するというのはありえるのでしょうか? それとも、私の組んでいるプログラムが間違っているという事なのでしょうか?どなたかご教授下さい。よろしくお願いします。

  • FFT分析、成分の最大値

    FFTで周波数成分分析を作っているところなのですが疑問があります 例えば、以下の信号をFFTした場合 振幅0-3V 矩形波 *かなり理想形 周波数 10Khz 10KHz 2.0V  30KHz 0.7V  50KHz 0.4V  ... とかの周波数成分が分析できました 10Kが基本周波数になるので最大振幅になっています その振幅値なのですが、 今、信号振幅が3.0Vだと2.0Vと算出は正しいのでしょうか 最大成分だから。3.0V以上になるような気がします 理想波形なら、何Vが正解でしょうか? もしかして、2.0vではなく倍の4.0Vが正解でしょうか?

  • 周波数発生器と直流電圧発生器を直列/並列に繋ぐとどういう波形になる?

    カテゴリが違うかも知れませんが、 詳しい方が多いと思い、ここに質問させて頂きます。 今、ある変換器に模擬入力を入れようとしていますが、 分かっているようで理解出来ていなかった 電圧と周波数について教えて下さい。 お分かりになる範囲だけでも結構です。 周波数発生器がHz(正弦波)出力のとき、 直流電圧発生器5Vを「直列」に接続すると 5V付近で正弦波が波打っている波形になるんだろうなぁ、 と思っています。 これを「並列」に接続するとどうなるのでしょうか? 実質、このような発生器の接続は可能なのでしょうか? また周波数発生器の出力がHz、Vrmsとありますが Hzは発生器に設定された1V~-1Vが?Hzで発振 していると考えて問題ないのでしょうか。 ではVrmsは? 実効値のことだとは理解しているつもりですが、 実際、このときの周波数はどうなっているのでしょうか? 宜しくお願いします。

  • MATLABによるFFT

    MATLABのfft関数を使用して,フーリエ変換してPSDを算出すると,スペクトルの周波数領域での積分値が元データの二乗平均値と一致しないのですが,原因は何が考えられるでしょうか?FFTの出力がフーリエ係数であれば一致するはずなのですが.

  • EXCELとMATLABのFFT計算結果の違い

    はじめまして。 EXCELのフーリエ変換機能を使って計算したピーク周波数が、 MATLABのFFT関数から計算させたものとの結果より高くなってしましました。 ※0.0001秒刻み、振幅が4096行あるデータで約2.4Hz違いました。 違いの原因を調べたいのですが、どの様な事が考えられるでしょうか? よろしくお願いします。

  • FFTを使って信号から特定の周波数を抜き去る方法

    FFTを用いてある時系列データから特定の周波数の成分を抜き去ろうと思っていますが、 うまくいかないのでお伺いします。 調べてみると、スペクトルを出すとき、例えば同じ振幅で周波数の異なるの正弦波を 10個入れても全て同じ振幅にならず、振幅の大きさにばらつきが出ていて周波数成 分の成分の推定がうまくいっていないようです。FFTの2乗のデータを小さな周波数区 間で積分してスペクトル密度にしても、先ほどの10個の正弦波の振幅がそろわない のと、周波数推定が悪くなりうまく、引き去れなくなっています。 よくある状況だと思いますが、どういう工夫が必要なのでしょうか。 ちなみに、FFTのルーチンはnumerical recipeとFFTWの二つで試しました。