goo blog サービス終了のお知らせ 

-・-・ --・-  -・-・ --・-  -・-・ --・- 

不定期更新。電子工作オタクのメモなので、おもしろくないですよ。

IQ信号をFFT処理する

2011-08-07 10:54:55 | インポート
SDRの受信基板からのIQ信号を復調する方法として、今回のようなソフトオシレータを使う方法と、FFTをかけて希望の周波数部分を抜き出して逆FFTをかけて復調する方法がある。
LabVIEWを使って、両方の方法で復調してみたが、後者の方法では、FFTと逆FFTの処理が重いうえ、FFTの前回分の一部を使うoverlapという方法を使ったせいか、はたまた作りが悪いのか、とても重かった。

LCDも何とか表示できるようになったので、これからやることを整理してみる。
1. IQ信号のFFT処理
 選局のために使うだけなので、IQ信号の片方だけを使えばいいのだろうか。わからん。

 LCDの表示サイズはx方向128ピクセルだから、2行にわけて表示すると、256ピクセルとなる。
 したがって選局するためには、FFTのサイズ(ポイント数)は自動的に256となる。
 
 この場合の分解能はサンプリング周波数が48KHzだから、48000/256=187.5Hzとなり、このままでは使い物にならない。
 ここはサンプリング周波数の変換を組み合わせながら、分解能をあげることを考えよう。取りあえずはFFT処理をやってみる。
 ちなみに、デシメータ処理を行い、サンプリング周波数を2KHzにすると、2000/256=7.8125Hzとなる。

2. FFT結果の並べ替え
 FFT結果は周波数の昇順に並んでいないはずだから、これを昇順に並び替える。
 dsPICのコンパイラには昇順に並び替える関数があるが、Blackfinのlibdspにはなさそうだ。処理は遅いかも知れないが、Cで作るか。

3. LCDへのスペクトル表示
 FFTの昇順の並び替え結果の大きさに比例した、棒グラフ表示を行う。
 現在はASCII文字コードだけであるが、棒グラフ用の表示パーツの作成が必要。

まだまだ、時間がかかりそうだ。

最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。