filter特性も周波数遷移できる、複素周波数変換

1. 複素積は、すごい!

    上図は、以下の LPF ( Low Pass Filter )を、複素積を使って、+5KHzだけ、周波数遷移したものです。

    結果は、負の周波数側の成分が出現して、BPF ( Band Pass Filter )に、なりましたわ...

   //*******************************************************************************************

     どういう風にして作るか? と、言いますと、こうしました。

    実フィルターの係数配列    a[ NUM_FILTER ]

    複素数 +5KHz                exp(5KHz)

    フィルターの実数配列   a[] と、複素数+5KHzを、掛けます。

    a[] * exp( 5KHz ) = a[] * ( cos( 5KHz ) + i sin( 5KHz ) ) 

        = a[] * cos( 5KHz )  +  i  ( a[]  * sin( 5KHz )  ) 

    これで、フィルターの係数の数 NUM_FILTER の分だけの

     複素数が、出来上がります。( これが、複素フィルター係数に、なるのでは、ないでしょうか? )

    出来た NUM_FILTER 個 の複素数を入力として、

    複素FFTに、入力すれば、よいのです。 

   //*******************************************************************************************

 

    firフィルタの係数をQ15して、それを、入力データとして、

    spectrum解析したもので、レベルは、小さくなっています。

    この辺りの理論、及び実験は、

       ELMのChanさんの ラジオ、スペクトラム、モニタ

       Blackfin空挺団、酔漢さんの 複素プロダクト検波

    どちらの方も、すごい実験を、なさって、おられます。お二方には、いつも、お世話になっております m(__)m

 ものすごい、参考になります....ちゅうか、私は、純アマチュアの立場で、追試しているだけの存在です...(^_^;;

 

    今は、巡回畳み込みを使った、直線畳み込みによる、fir filterの事を、調べています。

    SDR-1000は、2048 tap の fir filterを、使っているらしい、からです。

    「FFTを使った、直線たたみ込み」を、使っているに、違いないと思ってます。

    長大な fir filterの使用については、

        「シミュレーションで学ぶディジタル信号処理 尾知 博先生 CQ出版 p.46」

     に、詳しい、丁寧な記述が、あります。( 「3.2.4 DFTを用いた直線たたみ込み」 [実習3.7 FFTを使ったOverlap-Save法  p.51」 .etc )

    巡回畳み込みに付きましては、webにて、ここも、参考にさせて頂きました、御礼申し上げます。

2. 追加記事 (途中経過)

上図は、上述のfir filter( Low Pass Filter )  101tapを用いて、

FFTによる直線たたみ込み(つまり、入力をFFTしたものと、fir filterをFFTしたものとの、積)の、結果です。

sampling周波数に比して、tap数が少ないので、ギザギザしてますね。

注意点は、阻止帯域を描画している時も、通過帯域には、-65dB付近の出力が、観察される事です。

fir filterの、tap数を増やせば、これが、無くなるんやろか....

H.18.10.15