RFワールド読者の掲示板U
 無線と高周波に関することを中心に、それ以外の話題も含めて、何でも書き込みOKの掲示板です。
 初めての方もネチケットを守って、お気軽にご参加下さい(^^)/
36 / 203 ツリー    ←次へ | 前へ→

[RFW22]fftの負の周波数の処理 Hiroyuki Naito 18/3/6(火) 20:28
Re:[RFW22]fftの負の周波数の処理 中本 伸一 18/3/7(水) 11:42
Re:[RFW22]fftの負の周波数の処理 中本 伸一 18/3/8(木) 4:52
Re:[RFW22]fftの負の周波数の処理 Hiroyuki Naito 18/3/8(木) 9:44

[RFW22]fftの負の周波数の処理
 Hiroyuki Naito  - 18/3/6(火) 20:28 -
SDRのスペアナは正負の周波数範囲を表示して、fft.csでは1024ポイントで
計算しているようですが、負の周波数の処理はソースのどこでおこなわれて
いるのでしょうか。
引用なし

パスワード


176 hits
・ツリー全体表示

Re:[RFW22]fftの負の周波数の処理
 中本 伸一 E-MAIL  - 18/3/7(水) 11:42 -
▼Hiroyuki Naitoさん:
>SDRのスペアナは正負の周波数範囲を表示して、fft.csでは1024ポイントで
>計算しているようですが、負の周波数の処理はソースのどこでおこなわれて
>いるのでしょうか。

しいて言えば回転因子を生成している部分で負の周波数も
生成しています。負の回転因子を乗算すると正の周波数成分が
直流となり積分するとその周波数成分が大きな値となります。
また正の周波数の回転因子を乗算すると負の周波数側の
成分が上にずれて直流になります。

FFTのポイントは0を中心にした正負の回転因子を入力信号に
掛けては積分するという事を繰り返すという事です。

1024サンプルのFFTの場合にはサンプリング定理により
その半分の周波数しか扱えませんので正負の両側を
対象に信号をひねります。

しかしFFTをそのまま演算すると1024回も信号全体への
掛け算が必要になるのでFFTでは回転因子として
1Hz、2Hz、4Hz、8Hzというように倍々で作成しておいて
バイナリーのビットに対応するように全体の半分に掛ける
という演算を行います。

例えば1Hz、2Hzの回転因子があったとして4つのメンバに
対して2Hzは3番目と4番目に、1Hzは2番目と4番目に掛けると
それぞれ1Hz、2Hz、3Hz、4Hzを掛けた状態になるという事です。

C#で書いていますので途中の変数をプリントしながら
結果を格納する配列をダンプして1ステップずつ全体の
挙動を観察するとFFTの動作がよく理解できると思います。
引用なし

パスワード


174 hits
・ツリー全体表示

Re:[RFW22]fftの負の周波数の処理
 中本 伸一 E-MAIL  - 18/3/8(木) 4:52 -
FFTのソースに関して少し補足させて頂きます。

>しいて言えば回転因子を生成している部分で負の周波数も
>生成しています。

実際にはこの回転因子はDCから始まってサンプリング
周波数の中央のサンプリング限界を超えてそれよりも高い
周波数までの回転因子を生成して乗算・積分を
行っています。

これはサンプリング周波数を超えた時点から鏡像つまり
エイリアスに対して計算を行っていることになります。

サンプリングされた信号は正方向はもちろん
後ろ方向にもエイリアスが延々と連なった成分を
持っていますので中央のサンプリング周波数を
超えた成分は実は負の周波数成分と等価です。

結果的に出来上がった積分値の配列はDCから始まり
サンプリング周波数の半分までは正の周波数成分で
それ以降は負の周波数成分となります。

なぜこのような処理を行うかといえば一貫した
回転因子の乗算を行えるのでプログラムの効率が
良いという事です。

もちろん正の周波数と負の周波数の双方の回転因子を
作成し教科書どおりフーリエ変換をまじめに行う事も
可能ですが一連の処理として全体に対してサンプリング
周波数までの回転因子を掛けて積分してもエイリアスに
より結果は分割して処理したものと同じものになります。
引用なし

パスワード


171 hits
・ツリー全体表示

Re:[RFW22]fftの負の周波数の処理
 Hiroyuki Naito  - 18/3/8(木) 9:44 -
▼中本 伸一さん:
>実際にはこの回転因子はDCから始まってサンプリング
>周波数の中央のサンプリング限界を超えてそれよりも高い
>周波数までの回転因子を生成して乗算・積分を
>行っています。
>
>これはサンプリング周波数を超えた時点から鏡像つまり
>エイリアスに対して計算を行っていることになります。
>
>サンプリングされた信号は正方向はもちろん
>後ろ方向にもエイリアスが延々と連なった成分を
>持っていますので中央のサンプリング周波数を
>超えた成分は実は負の周波数成分と等価です。

DFTやFFTの解説を読んでも正の周波数しか扱っていないものが多く、
負の周波数を扱った教科書は1種類でしたが、その考え方を踏襲して
ソースを眺めても、どこで負の周波数が扱われているのか分からなくて
質問させていただきました。

入力の発振器の周波数を上げていくと、8kHz以上は負の周波数側に表示
される意味が分かったような気がします。

丁寧なご回答をいただき、ありがとうございました。
引用なし

パスワード


168 hits
・ツリー全体表示

36 / 203 ツリー    ←次へ | 前へ→
 31,809
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.01b6