FFTによるフーリエ変換はコード数も100行もないものだと思います。おそらく標準プログラムというものもあるのだろうと思いますが。その内容に関する確認の質問です。
手順ですが、例えば、256個の実数データがある場合、まず、256個の複素数型の配列の実部にそのデータを格納して、虚部はゼロのままFFTにかけます。そうすると、フーリエ変換後は位相と絶対値に分離される(実部と虚部に分かれるのと同等の意味)ので前半分の128までが意味のあるデータとなり、後半は無意味というか、前半分の対称になっていると思います。
では逆フーリエ変換して元のデータを取り出す場合、その無意味に思える部分はそのまま温存して逆変換フーリエ変換に流し込む、ということになるものでしょうか。無意味な後半をゼロにしたくなるような気分なのですが。そうではなく、逆フーリエのときは使うから無意味ではない、ということになるでしょうか。また、この場合、逆フーリエ変換で出てきたデータ(複素数)は実部が元データ、虚部はゼロということ(すなわち最初に完全に一致している)で間違いないでしょうか。
また、フーリエ変換されたデータ(周波数空間)として意味がある前半の128個だけという風に考えたとします。そうすると、周波数空間でいろんな仕事をしてスペクトルのデータを改変とか操作したあと、また元の実データに逆変換するとき、後半は一切編集する必要はないまま逆フーリエ変換にかける、ということになるのでしょうか。それはおかしな気がするですね。後半も逆変換には必要になるから(?)です。
どうでしょうか。よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1へのコメントについてです。
実数値関数f(x)をFFTして得た結果の一部分をいじったものを逆変換したら、一般に複素数値関数になる。これは、No.1でご説明したことから明らかでしょう。だから、もし逆変換して実数値関数を得たいのなら、実部が偶関数、虚部が奇関数になるようにいじらなくちゃいけません。
FFTは周期的離散関数(デルタ関数の列)のフーリエ変換であり、その結果もまた周期的離散関数です。(離散というのは「f(x)はxが整数のとき以外は0で、xが整数nの時にはδ(x-n)の複素数倍である」ということですが、ま、これはご質問とは関係ない。で、)周期的というのは、FFTのデータ点数をNとするときどんなxについてもf(x)=f(x+N)だということ。これはfをFFTして得た関数Fについても同じです。つまりF(-k) = F(N-k)という関係があります。
なので、F(k)の値をpにセットするのなら、(実部が偶関数、虚部が奇関数になるように)F(N-k)はpの共役複素数にセットしなくちゃいけません。
懇篤な回答ありがとうございます。
”実部が非ゼロで虚部がゼロ(実数といってもいい)の場合、フーリエ変換し出力された複素数配列は実部が偶関数、虚部が奇関数となる”ので、”フーリエ成分について何か操作してそのあと逆変換して実数データ(虚部ゼロ)としたいならば、実部を偶関数、虚部を奇関数となるようにせよ”、ということですね。ノイズ処理とかだと前半のある成分をゼロにするわけですからもちろん、後半もそうしなければならないということですね。ゼロは±ゼロと同じなので対応部分をゼロにしなければならないと。そうなるはずだと思っていました。式を見てじっくり考えたら当然そうなるってことがわかるのでしょうね。私はユーザなので使い方さえ間違わなければいいかなと思っています。実部ゼロで虚部非ゼロという純虚数の系列を与えたらiをかけることになるだけと考えたら、実部が正負逆の奇関数で、虚部が偶関数となりそうですね。
No.1
- 回答日時:
> 256個の複素数型の配列の実部にそのデータを格納して、虚部はゼロのままFFT
それは実数値関数をFFTするってことです。複素数値の関数だって扱えるアルゴリズムに「たまたま虚部が0」の関数を突っ込んだということにすぎません。
> 前半分の128までが意味のあるデータとなり、後半は無意味というか、前半分の対称
実数値関数をFFTすると、結果の実部は偶関数、虚部は奇関数になります。
純虚数の値をとる関数をFFTすると、結果の実部は奇関数、虚部は偶関数になります。
このことの一つの応用例を挙げますと:ふたつの実数値関数f, gをFFTして変換結果F, Gを得たい場合に(f + ig)をFFTするんです。結果としてF+iGが得られますが、その実部を偶関数と奇関数に分離し、虚部も偶関数と奇関数に分離してやれば、Fの実部と虚部、Gの実部と虚部が得られますから、一度のFFTで二つの実数値関数が処理できちゃうわけです。
(なお「偶関数と奇関数に分離」ってのは
f(x) = (f(x)+f(-x))/2 + (f(x)-f(-x))/2
ということですよん)
なので、
> 無意味な後半
と思うのは早とちりじゃないのかなと思います。
なお、逆フーリエ変換ってのはフーリエ変換と(定数倍を除いて)全く同じ計算であり、ただしヨコ軸の向きが逆転します。つまりf(x)をFFTしてさらにFFTすると、K f(-x)が出てくる。(定数Kがいくらになるかは宿題にしておきましょう。)
回答ありがとうございます。計測データなので1つの実数の系列がスタートです(虚部がゼロの複素数)。確かに2つの実数時系列のフーリエ変換を1回のFFTで済ませる場合、そういう手があります。今回はそこまで考えておらず、1つの実数の系列だけを考えています。FFTが本来の力を発揮していないとも言えるかも知れませんが。例えばFFTの結果の1~256の複素数で例えば、25~55までを実部・虚部ともゼロとしたとします(その周波数帯はエラーだった見なして)。そしてそれを逆フーリエすれば、その帯域を削除した時系列になると言えるでしょうか。129~256(後半)はそのままで。対象なので後半の対応部分もゼロにするべきなのではないかと思うのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 フーリエ変換後の負の周波数成分の扱いについて 4 2022/09/03 10:18
- 数学 離散フーリエ逆変換が周波数分割数をNにできる理由について 4 2022/09/18 12:56
- 数学 フーリエ変換、逆変換の「2π」の扱いについて 3 2022/10/07 08:31
- 物理学 フーリエ変換の振幅について 1 2022/09/04 08:56
- 物理学 複素フーリエ級数展開からフーリエ変換 1 2023/05/12 16:15
- 工学 周波数fで表現したフーリエ変換の対称性に関する質問です。 1 2022/09/14 12:27
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- 数学 数学の質問です。 関数f(t)のフーリエ変換をF(ω)=∫[-∞→∞]f(t)exp(-iωt)dt 1 2023/07/29 01:08
- 数学 f(x)のフーリエ変換をF(ξ) g(x)のフーリエ変換をG(ξ)とする時、 ①f(ax+b)のフー 1 2023/02/06 18:25
- 工学 フーリエ変換の質問です。 一定周波数の正弦波をフーリエ変換した結果のグラフはなぜか逆になっていますが 1 2022/05/05 18:37
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
鑞梅(ろうばい)の実の使い道
-
花桃の実の利用法
-
七味唐辛子に入っている麻の実...
-
外国語で「実を結ぶ」をおしえ...
-
ナスの収穫は,いつ頃まで可能...
-
「ちか」と1文字で読む漢字で、...
-
この木?実?はなんでしょうか...
-
成果と成功
-
2009年に実生のグレープフ...
-
この植物の名前を教えてください。
-
スポンジのようなナス
-
この波動関数の複素共役はなん...
-
ベンジャミンの木に実っぽいも...
-
野菜の苗は1種類1株だけで植...
-
南天の種まき。
-
キンカンの芽が出たけれど・・・
-
プルーンの実に蜜のようなもの...
-
緑色のバナナの実を、ヘタを下...
-
不知火シラヌイの実に 尻のとこ...
-
折れた枝の実を熟させる方法
おすすめ情報