• 締切済み

FFT解析について

 FFT解析について不明な点があります。 例えばf(t)=2sinωt という時間関数があったとします。  これをFFT解析してF(ω)-ωグラフにしたとします。この時、ω=ωに対してのみF(ω)という出力が得られると思うのですが、この時F(ω)はf(t)=2sinωtの振幅の2になるのでしょうか?  フーリエ変換の式では、e^(-jωt)とf(t)を積分した値が、F(ω)になるので感覚的に考えても違うのかな と思っているのですが。  

みんなの回答

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.1

N個の複素データ f(0),f(1),f(2),…,f(N-1) に対して、  N個の複素データ F(0),F(1),F(2),…,F(N-1) を次の様にして対応させるものです。         N-1     F(n)= Σ f(k)exp(-i2πnk/N) (n=0,1,2,…,N-1)         k=0  この計算を実行するにはかなり時間がかかります。もし、Nが2の巾乗の形ならば、特別な工夫によって効率的に計算できます。この特別な場合のDFTを、 FFTとよびます。  DFTの意味について考えるには、連続的なデータに近い場合を考えると分りやすいでしょう。 1024個の数値 sin(2πk/1024)      (k=0,1,2,…,1023) に対するFFTの結果を調べてみましょう。  N=1024 として計算すれば、     N-1  F(n)=Σsin(2πk/N)exp(-i2πnk/N)     k=0      N-1 =(N/(2π))Σ [(2π/N)sin(2πk/N){cos(2πkn/N) - i・sin(2πkn/N)}]      k=0 を計算しますが、n<<N の場合には積分で近似できて、           2π          2π F(n)=(N/(2π)){ sin x cos nx dx - i sin x sin nx dx}           0          0 となり、三角関数の直交性に注意して F(1) を計算すれば、           2π          2π F(1)=(N/(2π)){ sin x cos x dx - i sin x sin x dx}           0          0             2π         F(1)=-(1024/(2π) i sin x sin x dx}             0                     2π1-cos 2x         F(1)=-(1024/(2π) i ・・・・・・ dx             0  2          =-512 i となります。  最初の数列が関数f(x)のサンプリングされたN個の値からなるとしましょう。 このf(x)が周期関数で有限和のフーリエ級数で表現できて、          t   f(x)=(1/2)a0+Σ{amcos(x2πm/N) + bmsin(x2πm/N)}          m=1 だとします。  n<t<<N の場合には、            t     f(x)=(1/2)a0+Σ(amcos(x2πm/N) + bmsin(x2πm/N))            m=1 に対する FFT の結果については積分になおして、三角関数の直交性を使えば、         N-1     F(n)= Σ f(k)exp(-i2πnk/N) (n=0,1,2,…,N-1)         k=0    N-1     t  = Σ {(1/2)a0+Σ(amcos(k2πm/N) + bmsin(k2πm/N))}exp(-i2πnk/N)    k=0     m=1    N-1      = Σ {ancos(k2πn/N)cos(k2πn/N) - i bnsin(k2πn/N))sin(k2πn/N))}    k=0        N-1      =(N/(2π))Σ ancos(k2πn/N)cos(k2πn/N)(2π/N)        k=0         N-1   -i(N/(2π))Σ bnsin(k2πn/N))sin(k2πn/N))(2π/N)    k=0          2π    =(N/(2π))an cos(nx)cos(nx)dx          0            2π   -i(N/(2π))bn sin(nx)sin(nx)dx      0   =(N/2)(an - i bn)  となるので、実部が cos波、虚部が sin波の存在を示し、しかもその係数の(N/2)倍になっていることが分ります。

関連するQ&A

  • FFT後の振幅値

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

  • 数学の解析学の質問です

    数学のフーリエ解析についての質問です。 関数f(t)のフーリエ変換をF(ω)=∫[-∞→∞]f(t)exp(-iωt)dtと定義する。 関数F(ω)のフーリエ逆変換をf(t)とするとき、次の2つの関数のフーリエ逆変換を求めよ。 (1)F(2ω) (2)F(ω-1) 解答、解説がなく困っているので、どなたか分かる方がいらっしゃれば教えていただけると幸いです。 よろしくお願いします。

  • MATLABによるFFT

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

  • 4次元フーリエ変換による音波の解析について

    4次元フーリエ変換f(x,y,z,t) → F(kx,ky,kz,ω)についての質問です. 現在,独学で,FFTを用いて音波f(x,y,z,t)を解析しようとしています. ここで,4次元フーリエ変換 f(x,y,z,t) → F(kx,ky,kz,ω) を行った場合,Fは一体どのような意味を持つ値なのでしょうか. また,この4次元フーリエ変換を用いて,波数kと周波数ωの関係を表すにはどうすれば良いでしょうか. どうかご回答よろしくお願いいたします.

  • 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になると思っていました。) この結果はいったい何を表わしているのでしょうか? よろしくお願いいたします。

  • フーリエ解析についてです

    フーリエ解析についての質問です (sin(mω0t),sin(nω0t))=δmn (sin(mω0t),cos(nω0t))=0 を証明せよという問題です どうぞよろしくお願いしますm(__)m

  • フーリエ級数でノコギリ波をあらわすのですが

    いつもお世話になっております。中学生です。 何時間も計算しているのですが添付にあります式に たどり着きません(解法は載っていない本です)。 唐突ではありますが、関数f(t)をフーリエ級数であらわしたとき、 f(t)=A[0]+Σ[n=1~∞] { A[n]*(cos(nωt)+ B[n]*sin(nωt) } と書けるとして、自分は係数を求めようとしました(当然)。 A[0]とA[n]は零になったので、あとはf(t)にsin(nωt)を掛けて 周期で(-T/2~T/2で)積分しようとしました。 f(t)は、図から試しにf(t)=tとして行い、部分積分して 最後に2/Tを掛け、他T=2π/ωなどを駆使して導けると思ったのですが、どうしても添付にあります式にたどり着きません。 そもそも添付のグラフに縦軸の値がないのですが、f(t)=tが 間違っているのでしょうか。 当てになりませんが、 斜め線の範囲がTと書いてあるので、積分区間を(-T/2~T/2)としました。 考え方や、計算の仕方に間違いがありましたらわかる方、ご指摘 願いたいと思います。積分の演算やフーリエ級数の導き方はなんとか 分かっているので、遠慮のない回答をお願い致します。 よろしくお願い致します。

  • 教えてください。

    フーリエ級数では任意の周期関数 f(t) は次のように三角関数の和によってあらわされます。 f(t)=Ao/2+Σ[∞←n=1]{An・cos(nωt)+Bn・sin(nωt)} ここで、第一項Aoは直流成分、第二項Anは偶関数、第三項は奇関数成分の係数です。問題ののこぎり波は-T/2<t<T/2において、f(t)=2t/Tで、直流成分はなく、奇関数ですからAo=0でかつAn=0です。ですから、 f(t)=Σ[∞←n=1]{Bn・sin(nωt)} です。フーリエ級数の公式により、Bn=(2/T)∫[T/2←-T/2]{f(t)・sin(nωt)}dtです。 質問:ここで部分積分を使って積分 するようなんですが、これがとても苦手なためできません。変数変換などの途中式を教えていただけませんか。 最終的にはf(t)=(2/π){sin(ωt)-sin(2ωt)/2+sin(3ωt)/3-・・・} となるようなんですが、計算がさっぱりです。 よろしくお願いします。

  • フーリエ変換の手計算結果

    お世話になります。 フーリエ変換の勉強を始めています。 f(t)=cosωt という関数を次式で手計算でフーリエ変換しました。  Cn = 1/T・∫f(t)e^(-jω_nt)dt 積分区間は-T/2~T/2 この場合、結果は  Cn = 1 (ω=ω_n)  振幅(縦軸)=1    0 (ω≠ω_n) となるのが正しいと思うのですが、計算結果をエクセルでグラフで書いたところ、  Cn = 1 (ω≒ω_n)  振幅(縦軸)=0.5     0 (ω≠ω_n) 特異解(ω=ω_n) となりました。 手計算は添付に示します。どこがおかしいのかご教示頂けませんでしょうか? よろしくお願い致します

  • フーリエ級数展開について

    先日フーリエ級数について質問したものですが、こんがらがってしまったので質問させてください。 フーリエ係数を求める公式で an=2/T*∫f(t)sin(nωt)dt(-π≦t≦π) bn=2/T*∫f(t)sin(nωt)dt(-π≦t≦π) とありますが、tって時間関数ですよね? 時間関数を積分するのに一周期を2π[rad]とするのはおかしくないですか? T=2πだからと話を進めているHPや、横軸に『t[s]』と書いてあるのにメモリを見るとπ/2やπといった値が振ってあるHPもあります。(http://okawa-denshi.jp/techdoc/2-2-2Fourierkyusu.htm) それとも実は2π[s]ということなのでしょうか? 意味がわからなくなってしまったので、助けてください。お願いします。