メーカ勤務の会社員です。
離散フーリエ変換後の「逆変換」の公式が分割数N(-∞~∞では無い)にできる理由について、有識者の方々にご助言いただきたく宜しくお願いいたします。
【質問の詳細】
複素フーリエ級数から離散フーリエ変換への式変形を考えると
<複素フーリエ級数の式>
f(t)=∑[n=-∞~∞](Cn・exp(j・n・2πt/T))
Cn=1/T∫[t=-T/2~T/2]f(t)・exp(-j・n・2πt/T)dt
↓↓↓周期の範囲をT/2~T/2から0~TにしてN分割し、
↓↓↓時間t=k・Δt=k・T/N(k=0~N)と考えると、
f(t)=∑[n=-∞~∞](Ck・exp(j・n・2π・k/N))
Ck=1/N・∑[n=0~N-1](f(k・(T/N))・exp(-j・n・2π・k/N))
ここで、
離散フーリエ変換が「Ck」になるのは理解できますが、
●離散フーリエ逆変換が、何故範囲-∞~∞から0~Nに
●∑の範囲縮小ができるのか?
●式として等価になりその他の範囲は無視できるのか?
が理解できず・・・。
離散フーリエ変換の結果が周波数軸上でも周期性を持つのは理解できるのですが、つまり「∑の範囲外を足し算していない」ということにならないのでしょうか?
お手数ですが、宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ご質問は結局、離散フーリエ変換をフーリエ変換の特殊な場合として考えたい、ということだろうと思います。
[1] 間隔Δtで並んでいるデルタ関数たち
r(Δt,t) = Σδ(t - nΔt) (Σはn=-∞〜∞)
のフーリエ変換は(ちょっと難しいけど、結局)
r(W,ω) = Σδ(ω - nW) (Σはn=-∞~∞)
になる。ここにWは、関数fのフーリエ変換Fを
F(ω) = ∫{-∞〜∞} exp(-2πiωt) dt
とするのであれば、
W = 1/Δt
です。(フーリエ変換の他の定義を使えば、右辺に定数倍が付くことがあります。)
[2] 以上を使って周期関数とサンプリングとの関係を把握しておくと良いかと思います。
「連続関数f(t)をサンプリングした列{f(nΔt)}」を係数とするデルタ関数の列
g(t) = Σf(mΔt)δ(t - mΔt)
を考えると、
g(t) = f(t)r(t)
です。つまり列{f(mΔt)}はこのg(t)を表すひとつの表現です。そして、g(t)のフーリエ変換は(convolutionを*とすると)
G(ω) = F(ω)*r(W,ω)
すなわち
G(ω) = F(ω)*r(W,ω) = ΣF(ω - mW) (Σはm=-∞~∞)
という周期関数になる。G(ω)をF(ω)のaliasと言います。つまり、「サンプリングする」のフーリエ変換は「aliasを作って周期関数にする」ということ。
[3] もし[2]において ∀ω(|ω|≧W/2 ⇒ F(ω) = 0) である場合、
∀ω(|ω|≦W/2 ⇒ G(ω) = F(ω))
となる。これがいわゆるサンプリング定理で、W/2がナイキスト周波数ですね。
B(W,ω) = if |ω|≦W/2 then 1/W else 0
という関数を使って G(ω)B(W,ω) (すなわち、G(ω)から|ω|≦W/2の部分だけ取り出したもの)の逆フーリエ変換をやれば、f(t)が得られる。B(W,ω)の逆フーリエ変換はsinc(t/W)なので
f(t) = g(t)*sinc(t/W)
によって連続関数f(t)が再現するわけです。 もし ∀ω(|ω|≧W/2 ⇒ F(ω) = 0) ではない場合には、G(ω)B(W,ω)≠F(ω)なので、いわゆるaliasingが生じます。
[4] では周期関数のフーリエ変換はどうなるか。
h(t) = Σf(t - nT) (Σはn=-∞~∞)
はf(t)のaliasで、周期関数はT。どんな周期関数h(t)(周期T)も、適当なf(t)を作ればこの形に表せます。すると、
h(t) = r(T, t)*f(t)
なので、そのフーリエ変換は
H(t) = r(Δω,ω)F(ω)
すなわち「F(ωをサンプリングしたもの」になる。上記のフーリエ変換の定義に従えばΔω=1/Tです。
[5] h(t)をサンプリングしたもの
k(t) = h(t)r(Δt, t) = Σh(mΔt)δ(t - mΔt) (Σはm=-∞~∞)
を考えます。すると、そのフーリエ変換K(ω)は、[2]により周期関数で、
K(ω) = H(ω)*r(Δω,ω) = ΣH(ω - m) (Σはm=-∞~∞)
である。そして[4]により、
K(ω) = r(Δω,ω)G(ω)
である。つまりK(ω)も周期関数で、かつサンプリングされた関数(デルタ関数の列で表される関数)だということです。
[6] というわけで
k(t) = r(Δt, t)h(t)
から
K(ω) = r(Δω,ω)H(ω)
へのフーリエ変換は、対象になるのはサンプリングされた周期関数であって、そのフーリエ変換はまたサンプリングされた周期関数である。これが(フーリエ変換の特殊な場合としての)離散フーリエ変換です。
ご回答ありがとうございます。
本当は色々理解できてからお礼を書きたかったのですが、調べる程に混乱してしまい、何をしたいのかすら分からなくなっている状況です・・・。お礼にも締め切りがある筈なのでまずはお礼させていただき、頭の整理ができた時点で疑問が出た場合に改めて質問しようと思います。
>ご質問は結局、離散フーリエ変換をフーリエ変換の特殊な場合として考えたい、ということだろうと思います。
正にその通りで、フーリエ級数から始めた理論を、数式として離散フーリエ変換まで繋げたいのです。(できればその後の理論にも繋げてサッと見通せる様にしたいなと。)なかなか厳しい状況ですが・・・
●(コンボリューション(畳み込み積分))=(反響合計)
これだけは制御工学で学び図で理解できているのですが・・・
まだまだ先は長いです・・・。
ありがとうございました。
No.3
- 回答日時:
> 本日本屋で調べていたら、「行列で時間軸の点を周波数軸の点に置き換える
> のが離散フーリエ変換(DFT)、その逆行列で周波数軸の点を時間軸の点に
> 戻すのが逆離散フーリエ変換(IDFT)」という説明を見付け
がちょっと気になったので先の回答を補足しておく。
本屋で粘ってもう少し読み進めればよかったのにと思う(笑)。その先に高速フーリエ変換 FFT の説明はなかったかな?
N = 8 の DFT を
Ck = (1/8)∑[m=0→7]F[m]e^(-jkmωD) (k = 0→7)
で表す。このまま展開してもいいのだが、見にくいので(本当の目的は FFT に備えて)回転子 W^(km) というものを
WD = 2π/N = 2π/8 = π/4
W^(km) = e^(-jkmωD) = e^(-jkmπ/4)
で定義する。すると
Ck = (1/8)∑[m=0→7]F[m]W^(km) (k = 0→7)
8Ck = ∑[m=0→7]F[m]W^(km) (k = 0→7)
ここでプログラミングの便宜上 Xk = 8Ck と置いて
Xk = ∑[m=0→7]F[m]W^(km) (k = 0→7) ・・・・・ (※)
W^(km)の性質より
W^N = W^(N mod 8)
であるから、回転子は
W^0, W^1, W^2, W^4, W^5, W^6, W^7
だけでよい。さらに
W^4 = -W^0, W^5 = -W^1, W^6 = -W^2, W^7 = -W^3
であるから 64 種類ある回転子は W^0, W^1, W^2, W^3 の 4 個で表せる。これらを考慮して(※)を展開した式を行列で表すと
ご回答ありがとうございます。
DFT、IDFT、畳み込み、デルタ関数の活用、FFT・・・等々、まだまだハードルは続き混乱ばかりですが、なんとか冷静に答えに辿り着こうと思います。
まずはお礼まで。ありがとうございました。
No.2
- 回答日時:
>
https://rikeinotame.com/dft1/> 上記のサイトは数日前に見て、離散フーリエ変換の導出と理解はできた
とのことなので、離散フーリエ変換
Ck = (1/N)∑[m=0→N-1]F[m]e^(-jkmωD) (ω = 2π/T k = 0, 1, 2, …… , N-1)
は既知とする。
周期Tの未知の信号 f(t) が区分的になめらかな関数であれば
f(t) = ∑[k=-∞→∞]Ck*e^(jkωt) (ω = 2π/T)・・・・・(#1)
のように表せ、周波数成分 Ck は
Ck = (1/T)∫[t=-T/2→T/2]f(t)*e^(-jkωt) dt ・・・・・(#2)
で計算できるというのがフーリエ級数展開の主旨だった。
連続関数 f(t) の周期 T を 時間 D で N 個の区間に分割する。ただし N は偶数とする。
D = T/N となるから時刻 t は
t = 0, 1D, 2D, …… , (N-1)D
のように飛び飛びに変化する。f(t) は未知だが、信号を計測することでこの離散的な時刻に応じた f(mD) はわかっているものとする。mD をフーリエ級数 (#1) に代入すれば
f(mD) = ∑[k=-∞→∞] Ck*e^(jkωmD) ( m = 0, 1, 2, …… , N-1 )
となるわけだが、無数の f(t) から高々 N 個取り出した f(mD) をこのように無限個の線形結合で求めるのは大げさだし、その必要もない。N 個の線形結合で十分である。そもそも 最初に見た通り Ck は N個しか用意されていない(笑)。
そのCkに合わせて、この f(mD) を
F[m] = f(mD) = ∑[k=0→N-1] Ck*e^(jkωmD) ( m = 0, 1, 2, …… , N-1 )
のように表すのが離散逆フーリエ変換 IDFT である。あとは F[m] はわかっているのだから、最初に挙げた DFTで周波数 Ck を求める。以上のことを実感するには、ちょっとメンドイが N = 8 くらいで筆算でやってみるのが一番だ。
適当なデータF[m]を用意して Excel のフーリエ解析などで計算してみるのもよい。ただし、Excel のフーリエ解析は DFT の高速版の FFT なのでデータの数 N は 2^n にする必要がある。
ご回答ありがとうございます。
本当は色々理解できてからお礼を書きたかったのですが、調べる程に混乱してしまい、何をしたいのかすら分からなくなっている状況です・・・。
お礼にも締め切りがある筈なのでまずはお礼させていただき、頭の整理ができた時点で疑問が出た場合に改めて質問しようと思います。
ありがとうございました。
No.1
- 回答日時:
ご回答ありがとうございます。
>初歩的な信号処理の本を1冊読むのが一番いいのだが、とりあえず
>https://rikeinotame.com/dft1/を紹介しておく。
上記のサイトは数日前に見て、離散フーリエ変換の導出と理解はできたのですが、逆離散フーリエ変換が何故∞個ではなくN個のデータだけしか∑しないのかという疑問の解決はできませんでした・・・。
なお、本日本屋で調べていたら、「行列式で時間軸の点を周波数軸の点に置き換えるのが離散フーリエ変換(DFT)、その逆行列で周波数軸の点を時間軸の点に戻すのが逆離散フーリエ変換(IDFT)」という説明を見付け、やっと腑に落ちた理解の切欠が見付かった気がしています。
自分は複素フーリエ逆変換の式から逆離散フーリエ変換(IDFT)の式を導出しようとしたから駄目だったのかと・・・。もっとシンプルに、離散フーリエ変換での算出値を逆行列で元に戻す式にしたのが逆離散フーリエ変換(IDFT)だったのかと・・・。
もう少し熟考してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで(~以上,~以下)...
-
COUNTIF関数 ある範囲の数値で...
-
離れた列での最大値の求め方
-
2重積分の変数変換の範囲につ...
-
年代と年台・・・どちらが正し...
-
三角関数の範囲について、 0≦x≦...
-
微分(数Ⅱ) +−+となるような...
-
「余年」の意味について教えて...
-
方程式 e^x=x+1 の解
-
言葉、日本語について。 所要範...
-
【数学】 Q.t=2ˣ+2⁻ˣ とし...
-
シグマの範囲が2nまでの関数で...
-
判別式の使う時とか使わない時...
-
数学で複素数を使う場合
-
お教えで来る範囲内で 文言が変...
-
図形の問題の求め方を教えてく...
-
指定範囲内のオートシェイプを...
-
(x2乗+9)って因数分解出来ます...
-
絶対値のついた2つの不等式に...
-
それまで これまで っていうの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
年代と年台・・・どちらが正し...
-
エクセルで(~以上,~以下)...
-
「余年」の意味について教えて...
-
離れた列での最大値の求め方
-
判別式の使う時とか使わない時...
-
三角関数の範囲について、 0≦x≦...
-
2重積分の変数変換の範囲につ...
-
COUNTIF関数 ある範囲の数値で...
-
三角関数 -3分のπって3分の5...
-
シグマの範囲が2nまでの関数で...
-
極座標ではr>0の時のみ考えて、...
-
お教えで来る範囲内で 文言が変...
-
2025年の共通テストの数ⅠAに、 ...
-
方程式 e^x=x+1 の解
-
EXCELで最大値と最小値を除いた...
-
エクセルでPrint Area と表示さ...
-
X4乗=64の解き方を教えてほし...
-
X3乗―2=0
-
絶対値のついた2つの不等式に...
-
基礎問題精講、演習問題47(2)(i...
おすすめ情報
最後から2行目の誤記修正です。
誤:「∑の範囲外を足し算していない」ということにならないのでしょうか?
↓
正:「離散フーリエ逆変換では、∑の範囲外を足し算していない」ということにならないのでしょうか?