日記・備考録
Diary/Memorandum

2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024/ 1 2 3 4 5 6 7 8 9 10 11 12 | 2025
Search
May June
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
July | Home

2024/07/01~

....................................................................................................................................

2024/06/29

色々と直す必要があったが、Mac mini M2でも正常動作する様になった。24 MHzサンプリング、534 CH中 125 CH追尾で、CPU負荷66% (Mac mini M2, 8-core CPU/10-core GPU, RAM 16GB)。150 CH位までは実用になりそう。CPUに負荷かかってもファンがほとんど回らないのは良いね。あとアンチエイリアシングが効くので描画が美しい。FFTが遅いので捕捉は少し遅い。GPUが遊んでいるので、FFTはGPUに任せたいが、何かよいライブラリある ?

補足: 24MHzサンプリング 追尾180CHだとCPU負荷90%を超えるが、問題なく動いている。しかしホントにファンが回らない。これは凄い。最適化もう少し頑張れば、200CHでも問題なさそう。(7/2追記)

....................................................................................................................................

2024/06/28

Windows 11だとWindowsキー + Gで簡単に動画キャプチャできるようだ。概ね動く様になったので動画を上げてみる。


Pocket_SDR_ver.0.13_2024-06-28_18-37-33.mp4

補足: 上の方法ではメインウインドウしかキャプチャできないみたいで、ダイアログやコンボボックスが消えてしまっているが、まあイメージは大体分かるでしょう。相関波形表示ではモニタ用の相関器を81点追加するのでさすがに処理が重たいが、1CHのみなのでCPU負荷が3~5%増えるくらい。pythonなので、Windows、Linux、Mac OS、Raspberry Pi OS以外にも移植は容易だと思う。(6/29追記)

....................................................................................................................................

2024/06/27

PSDがちゃんと測れるようになったので、Pocket SDR FE 4CH No.3のアンテナ端子に50Ωのターミネータを接続して、素のノイズを測ってみた。24Msps IQサンプリングで、フィルタ帯域幅は順に23.4MHz、8.7MHz、16.4MHz、16.4MHz (全て3rd-order)。1560MHzのスプリアスはNo.3でもそれなりに出ている。あと、L5付近のスプリアス (1176MHz = 24MHz x 49) も結構大きくてL5のC/N0劣化に影響を与えている可能性がある。こう見るとTCXO周波数の選定は結構重要だな。


補足: リアルタイムで受信機内部を見られる様になったので色々と知見が得られて楽しいなあ。Pocket SDR FE 4CHの量産と市販、どこかやってくれる所ないだろうか。(8:26追記)

....................................................................................................................................

2024/06/25

リアルタイムPSD (スペアナ) が動くようになったので、Pocket SDR FE 4CHの特性を測っているのだが個体差がかなりある様だ。以下左からFE 4CH No.1, No.2, No.3 のL1付近PSD。No.1とNo.2は1560 MHzのスプリアス (24 MHz x 65 の高調波 ?) が目立つ。全くの同一基板なのだが、No.1とNo.2は色々とやらかして何度かリワークしているのでそのせいかも。

補足: PSDは、overlapなしのWelch's method (参照)、窓関数はHanning (参照)、FFTサイズは2048固定。matplotlib.psd() と互換になるようオフセットを加えている。(23:00追記)

....................................................................................................................................

2024/06/22

動作環境に Mac OS を加えたくて、Mac mini M2 (8 core CPU/10 core GPU, RAM 16GB, SSD 512GB) をポチってしまった。いくつか修正が必要だったが、ライブラリもAPも概ね動くようになった。ということで、まずは相関器単体速度を測る。

$ cd PocketSDR/test/utest
$ make
...
$ make test
...
        mix_carr corr_std corr_fft
 12000    0.0054   0.0091   0.1270
 16000    0.0057   0.0121   0.1591
 24000    0.0085   0.0181   0.2650
 32000    0.0114   0.0241   0.3328
 32768    0.0117   0.0246   0.6117
 48000    0.0170   0.0362   0.5353
 65536    0.0239   0.0493   1.3995
 96000    0.0341   0.0721   1.1678
test_05: OK

コンパイルオプションで -DNEON を指定してARM用の相関器最適化をONにしている。比較のため、Core i7 1260P (Windows 11 + MSYS2) と Core i9 13900HX (Ubuntu 24.04 LTS) の結果も以下に。全てシングルスレッド。256bit幅AVX2と128bit幅NEONの差が出ている。M2はHTがないので、実環境ではもっと差がつくはず。もう少し速いかと期待していたのだが ...。なお、Mac OS (ARM) 対応は Pocket SDR ver. 0.13に入る予定。

        Core i7 1260P + AVX2                Core i9 13900HX + AVX2
        mix_carr corr_std corr_fft            mix_carr corr_std corr_fft
 12000    0.0031   0.0047   0.0910     12000    0.0037   0.0056   0.0705
 16000    0.0047   0.0062   0.0783     16000    0.0049   0.0079   0.0691
 24000    0.0063   0.0110   0.1677     24000    0.0073   0.0124   0.1226
 32000    0.0079   0.0141   0.1803     32000    0.0090   0.0166   0.1506
 32768    0.0094   0.0141   0.2113     32768    0.0100   0.0168   0.1738
 48000    0.0126   0.0219   0.1704     48000    0.0145   0.0246   0.2553
 65536    0.0172   0.0292   0.6444     65536    0.0199   0.0336   0.3663
 96000    0.0250   0.0406   1.0630     96000    0.0290   0.0491   0.5505

....................................................................................................................................

2024/06/19

Pocket SDR ver.0.13のGUI画面大体できた。結局、プロットライブラリはpython3 tkinterのcanvas使って自前で書いた。MSYS2環境ではpipで正常にインストールできないパッケージが多くて、何使ってもポータビリティに問題が出そうなので (tkinterは標準ライブラリなのでインストール不要。線描画にアンチエイリアシングが効かないのはあきらめる。Mac OSだと効くらしいが)。

データはまだシミュレーション。これから、Cで書いたPocket SDRライブラリと合体して、できれば6月末までにリリースしたい。多分、その次がver. 1.0になる。


....................................................................................................................................

2024/06/15

内閣府, 準天頂衛星システムみちびき「衛星測位に関する取組方針」2024 (概要), 2024年6月12日

....................................................................................................................................

2024/06/13

とりあえず信号選択画面作った。ポータビリティを考えて python 3 + tkinter。

....................................................................................................................................

2024/06/11

JLCPCBからPocket SDR FE 4CHの新基板が届く。4層10枚 + ステンシルで $31.87也 (送料込)。発注後7日。いくつか改良を加えたのと、部品入手性の悪いクロックドライバを変更した (74AVC9112GTX74AVC9112DCH)。

....................................................................................................................................

2024/06/04

擬似距離ノイズ対策 (1) 相関器幅: 0.25 chip → 0.1 chip、(2) DLL積分時間: 10 ms → 16 ms、(3) サンプリングコードステップ: 1 sample → 1/10 sample、(4) 信号混合対策: 無 → 有。条件は5/30とほぼ同一。約30分間の測位誤差 (RMS) は、E 0.53 m、N 0.65 m、U 1.72 m。

....................................................................................................................................

2024/06/02

Wikipedia, GNSS software-defined receiver

Pocket SDR

補足: Core i9 13900HXで、test/pocket_trk_stress_test.shを1000CHで実行したら、同時追尾999CHでCPU負荷74%位だったので最大リアルタイムCH数999CHとした。src/pocket_sdr.hの定数SDR_MAX_NCHを書き換えれば、多分同時追尾1200CH位までは行けるはず。と言っても、普通は使いきれないが。(6/3追記)

....................................................................................................................................

2024/06/01

....................................................................................................................................

〜2024/05/31


Home by T.Takasu