CICフィルタ、昨日数時間唸って結局解決できなかったやつ。試しにまっさらなところから作り直してみたら、とりあえずうまく動いてる。「なんかわかんないけど動いた」
まずは易きに流れて既存のComplex(doubleベース)で作成。動きそうなので、自作のlongベースの複素数型を使うように改造。整数演算なので適当にスケーリングしてやればCICと相性がいい(浮動小数点型だとタップ5超えたあたりで発散する)。
水色が入力のSinc関数、オレンジがCICの応答、赤がFIRで補正/帯域制限した応答、紺がFIRの後で2分の1に間引いた形。格段ともにその場所でのレートで正規化した周波数。
とりあえず、16分周8タップまではちゃんと動くことを確認。あるいは、8分周10タップでも動く。128倍のsincに、FIR係数も256x64倍してたり、あちこちでビット数使ってるので、CICの累乗で増えていくビット数には、64bitといえども心もとない。実際に使う場合はもう少し余裕ある使い方になるだろうけども。FIRの前に右シフトしたりしてもいいし。
CICの非直線性、そんなに大きくないような印象だけど、それでも6dB、2倍くらいのゲインがある。広帯域で使うならFIRでの補正は必須っぽい。
今日1日でだいぶFFTとかにも詳しくなった気がする。ま、「なんとなくわかった」でそれ以上追求するのやめちゃうので、次はまた似たような苦労するわけだが。。。FFT、前に相関処理やったときにもちょろっと調べた気がするんだけどなぁ。
ダウンサンプリングはそこそこ動くようになってきた気がする。ということで、そろそろ次のステップに進みたい。
今の所、生データの端から端までダウンサンプリングしてるので、少なくとも仰角0度以上とかで切り出すような機能が必要。そのためのテストデータがほしいけど、どうしたものか。とりあえず、20時前後にいくつかパスがあるので、手動でコマンド作って割り込み。その時間は通常の観測ができなくなるが、まぁ、しょうがないね。ちゃんとビーム内通るかは賭けだけど。計画立案ソフトで作ったコマンドで、同じタイミングで指向性を予約してるやつがいくつかあるので、多分通るはず。1.6384MSPSで1.25時間分を予約。16.5GiBくらいかな。さすがにデカイ。
切り出して、ダウンサンプリングして、画像作って、JSON吐いて、ZIPにまとめて。ZIP喰わせて解析するソフトも作らなくちゃいけないし。
ま、細かいところはまた明日考える。問題の先送りは得意だ。
***
3月7日受信分
* 27848 / XI 4
* 28895 / XI 5
* 32785 / CUTE-1.7+APD II
* 32791 / SEEDS
* 33493 / PRISM (HITOMI)
* 42775 / AALTO 1
* 42790 / VZLUSAT 1
* 43615 / CP-7 DAVE
* 43743 / REAKTOR HELLO WORLD
* 43937 / NEXUS
* 44330 / RAAVANA1
* 44909 / BREEZE-KM R/B
0 件のコメント:
コメントを投稿