• 締切済み

FFT後の振幅値

振幅値が1で5Hzのsin波をFFTにかけたところ、実数部と虚数部それぞれ出力されました。 横軸を周波数軸、縦軸を実数部としてグラフ化したところ、5Hzのところに鋭いピークがみられるのですが、スペクトルの値が元のsin波の振幅値1にならず、とても大きな値になります。 これは計算が間違っているのでしょうか?

みんなの回答

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.3

普通,FFT は逆変換の方で 1/(離散点の数 N) をかけます. 正規化するには, FFT (data) / ルート(N) で, 逆変換は, IFFT() * ルート(N) です.

matsuo423
質問者

補足

FFT後、実数部と虚数部が出力されました。FFT(data)というのは、実数部のことでしょうか?

  • kiyomushi
  • ベストアンサー率68% (13/19)
回答No.2

正規化しないとそうなります。FFT 点数で割る必要があります。 あと、正負の周波数で半分ずつになるとか、窓関数を掛けると振幅が変わったりします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「FFT」によってはそうなることもあります. 「振幅」とデータ点数とを比較してみてください.

関連するQ&A

  • FFTの結果ついて

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

  • ImageJによるパワースペクトル

    こんにちは。 物理は素人です。 どうかよろしくお願いします。 ImageJで画像にFFTをかけたあとで、 パワースペクトルを作成すると、 よく意味のわからない、真っ黒画面中央にしろい点が出ます。 パワースペクトルといえば、 縦軸が振幅で、 横軸が周波数のものとおもっていたので、 なんだかわからなくて困っています。 ImageJやなんらかの簡易なソフトで、 FFT画像から、 横軸周波数、縦軸振幅の パワースペクトルを求めることは出来ないでしょうか? お知恵を頂ければ助かります。 よろしくお願いいたします。

  • FFT/スペクトルに関して

    エクセルにてFFTを勉強しているのですが、FFT後に出てくる縦軸のスペクトルとは何でしょうか? 時間軸×音圧 ⇒ 周波数×音圧に変換したんですが、この縦軸は音圧ではなくスペクトルというものだと理解しています。このスペクトルが示すものは単にその周波数の成分が強い傾向にあるというのを示しているだけで、その周波数の音圧がいくらというのを示しているのではないのでしょうか? 現在、訳あってその周波数の絶対量を使用したいのですが、その数字に意味はないのか教えてください。

  • Octaveを使ったFFTについて

    Windows用のGNU Octave3.0.3を使っているのですが、 今回OctaveのFFT関数を試してみようと思い 「​http://diaspar.jp/node/209​」 ↑このサイトに書いてある通りのプログラムで、 簡単な合成波にFFTをしてみました。 結果、サイトに書いてある通りのグラフが表示されたのですが、 元の式がy=sin(2*pi*100*t) + sin(2*pi*150*t)ですので、 100Hzと150Hzでピークを迎えることはわかるのですが、 なぜピーク時での値が約90になるのでしょうか? (私は同じピークを迎えるとしても、90ではなく値が1になると思っていました。) この結果はいったい何を表わしているのでしょうか? よろしくお願いいたします。

  • 振動計測結果をグラフにする

    電圧信号を取り込んで、加速度や速度を周波数領域のグラフにしたいのですが、専用のFFTアナライザで測定したグラフと結果が異なってしまいます。 計算式を直そうにもどこを直したら良いかわからないので、教えてもらえないでしょうか? 行っている計算は以下のとおりです。 Y軸はリニアスペクトルとします。 1.取り込んだ電圧信号を加速度の物理量に変換する。   1G=0.375Vとしています。例)0.2V=0.075G 2.1で求めた値をFFT演算する。 3.FFT演算で得られる実数部と虚数部からスペクトルを求める。   リニアスペクトル = {√(実数部の2乗)+(虚数部の2乗)} / 2 4.3で求めたスペクトルを実行値(RMS)に変換(1/√2)する。

  • FFTスペクトルって何ですか

    FFTAnalyzerについて質問いたします。これは、「音声、振動など様々な波形をFFTスペクトルによって解析するプログラム」ということですが、「FFTスペクトル」とは何でしょうか。素人にも分かるように説明をお願いできないでしょうか。横軸の時間経過、縦軸は何を表しているのでしょうか。無理を承知でお願いいたします。

  • フーリエ変換の振幅について教えてください。

    エクセルアドインを使って下記サイン波をフーリエ変換しました。 振幅3mm、周波数4Hz、サンプリング周波数256Hzの波形であり、 つまり、フーリエ変換したい波形は3×SIN(2×PI()×4)です。 アドインでフーリエ変換を行い、出てきた複素数の絶対値つまり√(実部^2+虚部^2)を計算すると3を示すと思っていたのですが、実際は周波数4Hzで384 という値になりました。 周波数分析して周波数4Hz時の振幅が3となるようにするには振幅はどう計算すればよいのでしょうか?またいろいろな振幅や周波数の混ざったランダム波でも各周波数での振幅を求めるにはどう計算したらよいのでしょうか?素人ですが教えてください。

  • バタフライ演算を用いたフィルタ(数式)の畳み込みについて

    現在、バタフライ演算によるFFTおよびIFFTのプログラムを用いて、 音の空気減衰の理論式を畳み込みたいと考えています。 理論式は横軸が周波数、縦軸が音圧レベルの減衰量のグラフで表されるもので、周波数の関数になっています。 そこで、FFTで原信号を周波数領域に変換し、この理論式を適用してIFFTしたらどうかと考え、減衰量をパーセンテージ(減衰量が6dBなら50%)に変換して、FFT結果の各値に周波数ごとの減衰量を乗算する、等を行っているのですがうまくいきません。 IFFTを行うと、虚数の値が0ではない数になってしまっています。 おそらく、FFTにより得られた値のサンプリング周波数と、減衰の理論式の周波数軸が一致していないためと考えられますが、具体的な手法が分かりません。 なお、入力している原信号のサンプリング周波数は44100Hzです。 どうかよろしくお願いいたします。

  • FFT(高速フーリエ変換)について

    直流成分0の正弦波と矩形波形をFFTするとFFTグラフには 正弦波・・・・一本の線のピーク 矩形波形・・・・複数の線のピーク となっているのですが、 FFTグラフの横軸と縦軸はなんでしょうか? FFT結果を複素数の絶対値を計算しグラフ化するのですが 何故、FFT結果が複素数なのですか? 定義式(g(t)=直流成分+Cos成分+Sin成分)をみる限り 複素数にならないと思います。 それか見ている式が違うのでしょうか? あと定義式(ある時間信号g(t)が、ある周期Tを持つ連続関数である時) であるのですが、”ある時間信号g(t)”っていうのはよくわかりません。 このgを求めることが 正弦波・・・・一本線のピーク 矩形波形・・・・複数の線のピーク になる理由がわかるのですか? ご指導の程、よろしくお願い致します。

  • MATLABによるFFTと位相スペクトルについて

    純粋な正弦波信号 y=sin2πft ただし周波数f=500MHz をサンプリング周波数2.5GHz,サンプリング数128,256,512,1024の四パターンMATLABでFFTし、パワースペクトルと位相スペクトルを求めました。 結果、パワースペクトルは予想通り500MHzでピーク値をとったのですが、位相スペクトルは各サンプリング数ごとに全く違う値を取りました。 というわけで、 (1)理論上、正弦波の位相スペクトルはどのような値になるのか (2)なぜサンプリング数ごとに位相スペクトルの結果が大きく変わったのか この二点をご教授ください。よろしくおねがいします。

専門家に質問してみよう