• ベストアンサー

信号の正規化と奇関数のFFTについて

信号処理に関する文献を読んでいてわからないところが二つあります。 非常に困っているので、どちらかでも答えていただけたら嬉しいです。。 サンプル数 N(2の累乗数) の信号 y(t) (0<=t<=N-1)を高速フーリエ変換する際の操作なのですが、 まず、 u(t) = y(t) - (α*cos(t) + β)          …(1) α = 1/2( y(0)- y(N-1),β = 1/2( y(0) + y(N-1) ) と u(t) を計算すると、u(t) は y(t) を正規化したものとなる。 とあるのですが、(1)式で何故正規化したといえるのでしょうか? 次に、 この正規化したu(t)と対称な信号u'(t) u'(t) = -u(N-t) を使い、u(t)の右側にu'(t)を連結するように U(t) = u(t) :(0 <= t <= N-1) u'(t) :(N <= t <= 2N-1)  ( u'(t+N) = u'(t)とします) とした関数U(t)をつくり、 U(t) = U( t + 2*N*k) (k整数) として、U(t) を奇関数の周期関数に拡張します。 そしてU(t)にFFTを適用するみたいなのですが、 何のためにU(t)を奇関数の周期関数に拡張するのでしょうか? もとの y(t) もしくは正規化(?)した u(t) をそのまま高速フーリエ変換するのに対するメリットは何なのでしょうか? わかりにくい文章で申し訳ないですが、どちらか一方でも説明していただければ嬉しいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sinisorsa
  • ベストアンサー率44% (76/170)
回答No.4

No.3のものです。 補足します。 cos(t)をcos(πt/(N-1))としたとして、正規化は、 信号の全体的な傾きを平坦にする操作であるように 見えます。 cos(πt/(N-1))は、半周期分ですから、この信号の周波数は、 もとの信号の基本周波数の半分になりますので、 DFTの結果の直流分以外には、影響しないと考えられます。 ますます、cos(t)はcos(πt/(N-1))だと思えてきました。 いかがでしょうか。

tosu_ka
質問者

お礼

回答ありがとうございます。 なるほど、全体の傾きを平坦にし、無理なく両端を揃えることで、滑らかな周期関数にしているのですね! 確かにcos(πt/(N-1))とすると納得できます!

tosu_ka
質問者

補足

ふと疑問に思ったのですが、cos(πt/(N-1))は、もとの信号の基本周波数の半分ですが、奇関数に拡張することによって、基本周波数と同じになってしまうのではないでしょうか?

その他の回答 (9)

noname#101087
noname#101087
回答No.10

>位相特性を直線上にするのは、フーリエ変換後の実数部の値がゼロになるということと同義でしょうか。 「フーリエ変換後の実数部の値」つまり振幅には影響しないはず。 位相特性が、最少位相推移ではなく、直線状(Linear phase)になるのです。 なぜそうしているのか、ご質問だけからはわかりません。

tosu_ka
質問者

お礼

お礼が遅くなって申し訳ありません。 (1)はギブス現象を抑えるため、 奇関数にするのは、FFTをする際に、実部を考えずに、 虚部のみで計算できるため、プログラム上で、利点があると考えました。 皆さん回答ありがとうございました。

noname#101087
noname#101087
回答No.9

>u(t) = y(t) - (α*cos(t) + β)          …(1) >α = 1/2( y(0)- y(N-1),β = 1/2( y(0) + y(N-1) ) と u(t) を計算すると、u(t) は y(t) を正規化したものとなる。..... ご質問だけでは、これがよくわかりません。 時系列に含まれているトレンド成分を1 次近似で除去する前処理、のようにもみえます。 原信号に何か余分な信号が重畳しちゃうんですかね。  

  • sinisorsa
  • ベストアンサー率44% (76/170)
回答No.8

回答No.5の者です。 計算違いでしたので、この回答は削除したいと思います。 No.6の方のおっしゃるとおり、線形位相になります。 振幅特性だけ求められればよいのかどうか? という疑問は残ります。

tosu_ka
質問者

お礼

再度回答ありがとうございます。 読んだ文献では、欲しい情報は振幅特性のみです。 線形位相というのがあまり理解できてないのですが、フーリエ変換後の実数部分がゼロになるということと同義でしょうか。

回答No.7

#1です。 現実の世界には波に虚数は無いので、工学的にはそういう操作をしないと役にたたないことだったと思います。

tosu_ka
質問者

お礼

再度回答ありがとうございます。

noname#101087
noname#101087
回答No.6

>何のためにU(t)を奇関数の周期関数に拡張するのでしょうか? フーリエ変換後の位相特性を直線状(Linear phase)にするため、のような気がします。

tosu_ka
質問者

お礼

回答ありがとうございます。 位相特性を直線上にするのは、フーリエ変換後の実数部の値がゼロになるということと同義でしょうか。

  • sinisorsa
  • ベストアンサー率44% (76/170)
回答No.5

奇関数化についてDFTの式にあてはめてみました。 結果としては、 U(t)のDFTの結果F(k)について、k=2mのときには、 u(t)をそのままDFTした結果のU(m)の2倍になりました。 すなわち、 F(2m)=2U(m) kが奇数のときにはF(k)=0です。 さて、これは、何のためでしょう。DFTの点の数を2倍にして、 計算時間もかかり、出てくる結果は、そのままDFTしたのと 実質同じ? 普通は、Nを2倍にすると、周波数成分が細かく 見えるのですが、今回の場合には、それもありません。 なにもメリットが感じられないのですが。

  • sinisorsa
  • ベストアンサー率44% (76/170)
回答No.3

>u(t) = y(t) - (α*cos(t) + β)          …(1) この式のcos(t)のところは、cos(πt/(N-1))ではありませんか。 そうだとすると、(1)による変換は、t=0とt=N-1において、u(t)=0 となります。 離散フーリエ変換(DFT)(FFTはコンピュータの算法のこと) は信号が周期Nで周期的であることを想定しています。 したがって、信号の両端において、値が一致していない場合 不連続となります。これを避ける処理をしているように見えます。 後の処理で奇関数化している意味はわかりません。何か前提条件が あるのではないですか。 何を分析したいのか、分析結果をどのように解釈するのか ということも、何か前提があるのではないですか

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

「正規化」といってもいろいろな意味がありそうな気がします. あなたのいう「正規化」とはなんですか?

tosu_ka
質問者

補足

normalizedを正規化と訳したのですが、僕もここでいう正規化の意味をつかみかねています。 sinisorsaさんの回答にある、両端をゼロで揃えるということ、傾きを平坦にすることがnormalizedの意味かな、と思います。

回答No.1

正規化のところはよくわかりませんが。 奇関数に拡張するのは、 代表的なFFTアルゴリズムは複素数で計算するので、 実数部/虚数部で数値を与えられますが、実際は実部しかありません。 これに対応するのが偶関数/奇関数成分です。

tosu_ka
質問者

お礼

回答ありがとうございます。 なるほど、奇関数にすると、FFT後は虚数部のみになるんですね。 ただ、FFT後に実数部と虚数部がどちらも存在しても問題はないように思います。わざわざ奇関数にするメリットは感じられません…。 >実数部/虚数部で数値を与えられますが、実際は実部しかありません。 この部分がよくわからないのですが…。 ここでいう実部とは実数部のことでしょうか?

関連するQ&A

専門家に質問してみよう