2025年6月18日水曜日

小ネタ






 近所で複数の会社が実験するような感じになってきて、いよいよ日本も『星のパイロット』の世界みたいになってきたか。



 VRの飛行体験で高所恐怖症を軽く 「落ちても飛べる」予測を獲得、NICT | TECH+(テックプラス)

『空の境界』みたいなことにならなきゃいいけど。



“ラピダス効果”北海道千歳市に2店舗目のドンキがオープン 工場の作業向け商品やプロテイン自販機で試飲も - YouTube

 先端半導体コーナーはないんでつか?

 ミニマルファブの消耗品がドンキで買えるような時代が来ると楽しそうだけどなー。中学生が夏休みにドンキで買った消耗品を持って近所の会社に行って、設備を借りて半導体を試作するような世界。



 大阪・関西万博 会場への自動運転シャトルバスの事故 システム設定ミスが原因 大阪メトロ | NHK | 大阪・関西万博

 舞洲万博P&R駐車場の待機場における自動運転バス車両のコンクリート擁壁接触事故の原因と今後の対応について|Osaka Metro

 緊急用のECUの設定に問題があって、250kbpsで出すべきところを500kbpsで出していたため、正常に通信が行えず、アンサーバックが無いために再送を繰り返して正常な通信を阻害し、パーキングブレーキのインヒビットが解除されず、ドライバーがパーキングブレーキをセットしたにも関わらず実際にはセットされなかった。で、傾斜面で動き出した、みたいな事象らしい。

 250kbpsとか500kbpsの設定だとCANバスっぽいけど、CANは通信エラーが多発すると自身をネットワークから切り離す仕組みあるんだけど、そういう動作はしてなかったっぽいな。ボーレートが違う場合、通常系の通信を受信している段階で受信エラーが多発して自身を切り離しているはずだし、そうでなくても再送を繰り返すと一定回数で送信エラーで切り離すはず。CANならそういう挙動をしなかった原因を探さなきゃいけないし、CANでないならそういう挙動(再送でバスを圧迫しないような機能)を追加するべきだし。そもそもなんで250kbpsで通信するべき場所を500kbpsで通信していたんだ(そういうソフトウェアになっていたんだ)というところも探らなきゃいけないし。

 車のソフトウェアに起因する事故やリコールは以前からあったけど、これからSDV(ソフトウェア定義車両)の開発を加速するうえで、こういうトラブル(ソフトウェアのバグ)は間違いなく増加するだろうし、人命に関わるような事故だって絶対に発生するから、ソフトウェア開発段階からそういうことを防ぐような努力も色々必要になるんだろう。航空機業界にはDO-178みたいにソフトウェア開発で従うべきルール等を決めているから、そういうのも取り入れていかないと。

「飛行機は車に乗るより安全」と言われているのは、航空機業界が事故を繰り返さないように努力してきた結果でもあるけど、単純に車の数と飛行機の数の差もあるはず。飛行機の安全基準を自動車に適用しても、数が圧倒的に違うから、車での事故は多発するはず。まず航空機業界で作られた安全管理のルールを車に輸入して、飛行機では問題ないような低い確率で起こる不具合みたいなものを減らす対策を飛行機に輸出して、双方がより安全になればいいのだけど。「空飛ぶクルマ」みたいに飛行モビリティを増やそうって話もあるし、車も飛行機もどんどん安全性を高めていかないと、普及すればするだけ事故が増えてしまう。

 今回は怪我人も出なかったけど、変数1個書き直してテストしてOKでした、と収束させるだけではなく、せっかく低コストで対応できる事故に遭遇したんだから、もっと大きな事故が起こる前に色々対策しておかないともったいない。


「車両側が認識できるデータ通信速度(250kbps)を超える通信速度(500kbps)で送信していたこと」という記述も謎いな。データバスって設定が250kbpsだからそれを超えたらNG、それ以下(例えば125kbps)ならOK、というものでもないだろうに(CAN FDみたいにネゴシエーションして動的に変調速度を変えるならともかく、数百kbpsオーダーならCAN FDでもないだろうし)。



 科学系の古い資料を読んでると、頻繁にというほどでもないけど、たまに学術会議の名前が出てくるのよな。学術会議が、この分野は重点的に研究するべきだ、と提案して、そのように政策が決定される。昔は実際に政府に対して提案を行って、それが採用されていたんだろうけど、最近はどうなんだ、という話。

 あと、実際に(昔の話とはいえ)政府に提案を行って採用されていた実績があるのに、最近になって、会員(or候補)が肩からプラカードを下げて市民と一緒に座り込みをするみたいなのをやると、最近は政府への提案能力が下がっているのを自分で証明してるじゃねーか、と思ってしまう。その座り込みで従来の学術会議の形を維持できたとして、なら学術会議いらないじゃん、政府に提案したいならその都度座り込みすればいいじゃん、という話になるし。

 そもそも、科学者の代表機関になんで政治専門の(科学がわからない)人間がいるんだって話だし。科学技術を推進するのが目的の組織のはずなのに、技術の発展を阻止したい人が大きな発言権を持っている印象。よくこんな組織が1950年代とかに日本でも宇宙開発を行うべきみたいな提言をできたよな。あるいは、こういう組織だからこそ手足を縛られたような宇宙開発しかできなかったのかもしれないけど。



 世間で広く信じられている相対性理論の誤解を解く、みたいな文章で、特殊相対論でも等価原理を使えば重力(加速度)を取り扱うことができる(一般相対性理論を使わないと重力を扱えないというのは誤り)みたいな話が書いてあるけど、なんというか、それを言っちゃ終わりじゃね?という気がするのだが。

 特殊論の時に等価原理は存在せず、一般論を出すときに等価原理が出てきた以上、等価原理を遡って特殊論に適用したうえで一般論が不要(重力を扱う上で)と言うのは、ちょっと違う気がする。それが許されるならニュートンの理論(ニュートン力学)に特殊論の考え方や等価原理を適用すればアインシュタインの理論(相対性理論)は不要である、みたいな話になる。特殊論と等価原理は考案者が同じだから、としても、遡って適用していい理由にはならんだろうし。



 光学衛星とSAR衛星の同時観測みたいなミッションってあるんだろうか?

 ALOS(初号機)には光学とSARが乗っていたけど、あくまでも光学は直下を、SARは斜め下を観測する機器であって、仮に同時に運用したとしても同じ場所を同時に観測することはできない。

 ほぼ同じ軌道を飛び、昇交点赤経を少しずらしたような軌道に光学衛星とSAR衛星を入れて、光(赤外-可視光)と電波(L帯やX帯)を同時に観測したら、今までは無かった解析手段が得られたりしないだろうか。あるいは、単に光/電波データセットを作っておくだけでも役に立ちそうだが。

 単に赤経を変えるだけだと緯度によって観測エリアが変化する欠点がある。これはどうしようもないから、同時観測するエリアはある程度の緯度範囲に制限しなきゃいけない。低緯度地域は同時パスで同一エリアを観測、高緯度地域は1周毎(約1.5時間毎)に同一エリアを観測、みたいな軌道設定ができれば、移動物体の同定は難しいにしても、数時間程度でほとんど変化しない現象はほぼ同時観測が満たせる。ただ、それを言うと10時LSTの光学と12時LSTの電波で個別に観測してもいいじゃん、という話にはなる。

 同時(せいぜい数十秒差程度)で観測するなら、それを活かせるような対象を探さないとなー。例えば港湾を同時観測して、光学で同定してSARの反射パターンのカタログを作る、みたいなことはできるけど、そういう用途ならALOS-2/4のSPAISEでもある程度はできるだろうし。

 非友好的な目標(例えば仮想敵国の軍事車両とか)のデータを集めるには光学とRFの同時観測は便利だろうけど、そんなものは表に出るはずもなく。



 またスズメバチが入ってきた。今度は窓を閉めていたとき。いよいよ侵入経路がわからなくなってきた。

 胴体の径で侵入経路が制限されると思ってたんだけど、もっと狭い場所でも入れるんだろうか? だとすると1箇所怪しいところはあるが。とはいえ、スズメバチが通れるほど広くもないと思うんだけどなぁ。


***


https://www.asj.or.jp/geppou/archive_open/1984/pdf/19840205.pdf

 1984年。日本と欧米の時刻をGPSで比較する。

 それまで、アジアと欧米の時刻は原子時計の運搬等で比較していた(長距離の電波航法での結合は伝搬特性の影響を受けるので精度が出ない)。GPSを使うことで精度良く頻繁に比較できるようになり、それまでは欧米の原子時計だけで作っていた国際原子時に、アジアの時計が参加できるようになった。


 日本で秒の定義が天文から量子へ変わったのは1972年だそうだけど、それから10年以上、日本の時刻は天文で決めていたんだな(決めていたというか、比較していたというのが正しいんだろうけど)。GPSが出現してようやく天体現象と時間・時刻が切り離せた。


*


https://www.jstage.jst.go.jp/article/ieejjournal1888/94/11/94_11_1008/_pdf

 1974年。GMS(77年打上げ予定)の説明。

 DPC(データ処理中枢、Data Processing Centerとか?)とDCP(Data Collection Platform)が出てくるのがややこしいな。


 静止衛星の欠点として、気球やブイなどの測位を行う際に、1機の静止衛星では困難である、みたいな説明が出てくる。ということは、当時の周回衛星ですでにブイ等の測位を提供していたのか。ARGOSみたいなシステムはTIROS-N/NOAA(80年代から打上げ)から実施したものだと思ってたけど、それより前からやってたのか。1機の静止衛星では困難、ということは、複数の静止衛星で測位を行う計画はあったんだろうか? 3機の静止衛星があれば信号の到達時間差である程度の位置決定はできそうではあるけど、コストが高そう(70年代当時に3機も静止衛星を打つのは大変そう)。

 撮影した画像は高解像度と低解像度の2種類を衛星経由で放送するけど、低解像度についてはAPT(136MHz帯)とある程度の互換性を持たせたい、みたいな話も出てくる(周波数はLバンドの予定)。ということは、TIROS-N/NOAAのAPTもそれ以前の衛星から引き継いだものだったのか。じゃあDCSも同様と考えてもいい?



https://www.jstage.jst.go.jp/article/rssj1981/9/1/9_1_69/_pdf

 MOS-1のDCST(Data Collection System Transponder)を使った時の位置精度に関する話。

 基本的にはArgosと同様。ただしMOSはベントパイプオンリーなので、サービス範囲は比較的狭い。データは32bit/Wを最大8ワード(最大256バイト)まで、最小30秒間隔で送信できる。

 Argosの場合、8bit/W、最大32ワード(最大32バイト)まで、測位を行う場合は55-60秒周期、データ転送のみの場合は180秒周期まで(周期は緯度による。この値は日本近海)。MOS-1はArgosに比べてデータ転送量が1桁高い。ただしArgosは複数の衛星を使えるのに対して、MOSは1機のみ(MOS-1bの打上で数年間は2機を運用していたが、同一軌道面で運用)。

 地上処理設備とかアルゴリズムとか色々書いてある。

 測位精度は軌道直下と両側2500km以上は精度が悪く、準拠楕円体上に静止したDCPが軌道から左右200-2000kmの範囲にあれば500mの精度で測位できる。移動DCPは計算上2.0m/sで2000mに劣化。



https://www.jstage.jst.go.jp/article/jjsass1969/36/408/36_408_2/_pdf/-char/en

 1988年。地球観測システムの知能化。

 10年位先を見据えて、どういうシステムがほしいか(作れるか)、みたいな話。1995年前後には12トンの、その後には55トンの観測システムを軌道投入して、様々なデータを取得したい。およそ650GB/day程度のデータレートになると予想(ちなみに、ひまわり8/9号の観測データが650GB/day程度のはず)。

 膨大な観測データに対して、ユーザ側はどうやってそれを使うかとか、あるいはデータ量を下げる工夫とか。例えば雲を自動的に認識してオンボードで観測結果を破棄する、とか。これに関しては、地上に興味がある研究者からすれば雲は無駄なデータだから不要だろうけど、気象に興味がある研究者からすれば「宝物を捨てるなんてもったいない!」みたいに言われそうだな。

 対象の自動識別に関する話がいくつか。例えば裸地、小麦、泥水、きれいな水、植物の、0.4-0.9umでの輝度のグラフとか、赤/赤外の比で水・裸地・植物・雲を見分けるとか。



https://www.jstage.jst.go.jp/article/jsprs1975/29/1/29_1_33/_pdf

 Topex/Poseidon計画の概要。ミッション機器の解説とか。

 どういうデータが得られるかとか、そのデータを得るためにはどういう条件があって、どういう軌道を使う必要があるか、とか。

 故障などによってミッションが達成できないと見込まれた場合には315kmまで軌道を落としてシャトルで回収し修理・最打上げができるんだそうだ。時代だなぁ。

 仏側のDorisはあくまでも海面高度計の電離層誤差を補正するために2周波で電子数を推定するために使うものであって、軌道決定は米側(Defence Mapping Agencyが運用)の機材を使って行うという雰囲気。ただし米側のTranetビーコンはSeasatと同様の150/400MHzであるのに対して、Dorisは401/2036MHzを使うので、高い精度を期待している。GPSも2周波受信機を搭載。とはいえ、DorisもGPSもこの時点では飛行実績がないので、あくまでも実験的に乗せる、という扱い。



https://dl.ndl.go.jp/view/prepareDownload?itemId=info%3Andljp%2Fpid%2F8792275&contentNo=1

 2001年。アルゴフロート(Argosで伝送)の伝送エラーの解析。

 日本近海ではそれ以外のエリア(遠洋)に比べてエラー率が高く、特に昼間はエラー率が高くなる。おそらく人間の活動に由来する電磁波がノイズとなっている。

 1回の浮上で400byte程度を伝送するが、ARGOSでは1パケットあたり最大32バイトしか転送できないから、分割して伝送する(おそらくフレーム番号1バイト+データ30バイト+CRC1バイトのパケット)。フロートは1回あたり8時間浮上し、その間パケットを順番に繰り返し送信する。

 塩分濃度は電気抵抗と水温から推定するが、電気抵抗は生物由来のコンタミでドリフトしやすい。表層の滞在時間を減らせば生物が付着する可能性を減らせる。送信するパケット数を低減できれば消費電力も削減できる。フロートが浮上する時間帯を人間活動が少ない時間帯に設定すれば色々メリットがありそう。等々。アルゴフロートは10日に1回の観測だから転送時間は時間分解能のネックにはならないけど、消費電力が減らせればより長い期間の運用ができるようになる。



https://www.jstage.jst.go.jp/article/jsmst/27/1/27_p01/_pdf/-char/ja

 アルゴフロートよりも深いところへ潜ることができるDeep NINJAの説明。

 海の熱交換は海面で行われるし、深層への輸送はほとんど行われないから、アルゴフロートでは2000mまでの潜航能力を持っている。ところが、観測船などによって深海への理解が進むにつれて、深層にも変化が出ていることがわかってきたので、4000mまで潜ることができるDeep NINJAを開発した。これによって体積比で88%の海を観測できる。

 浮力の調整は体積の変化で行う。いくつかの手法の説明。それぞれの利点や欠点など。

 測位はGPSで行い、Iridium SBDで転送する。SBDにも簡易的な測位機能があって、GPSで測位が行えない場合でも10km程度の精度で位置を把握できるんだそうだ。Deep NINJAは耐圧性優先で作っているのでRF周りは若干不安定な傾向があるらしい。GPSの測位率が低い物があったり、時々SBDのエラー率が高くなったり。

 その他、観測内容の説明とか、耐圧容器の強度の説明とか、いろいろ。



 SBDの測位を軽くググってみたけど、それらしい話はほとんど見当たらない。Argosが開発された時代ならともかく、SBDを使うようなアプリケーションならGPS受信機のコスト(金額・容量や質量・消費電力)は大抵の場合許容できるだろうから、SBDの測位(GPSより精度が3桁悪い)を使うようなアプリケーションはなさそう。このくらいの精度だと洋上で大雑把な場所が知りたい、程度でしか使えないだろうし。


 とある情報(20年以上前のPDF。斜め読みした感じでは大したことが書いてある資料ではないけど、おそらくIridium本社と契約しないと読んじゃいけない資料)によると、SBDが送られてくるメールには、本文には受信時刻や転送ステータスのほか、Lat/LngやCEPRadius(整数、km)も書かれているらしい。SBDのデータ自体は付属ファイルにBase64で入っているんだそうだ。


 SBDってどういう変調方式なんだろうか。ドップラで位置推定するならある程度長めの送信時間なんだろうけど、とはいえたかだか数百バイト程度だしなぁ。複数のSBDパケットのドップラから測位精度を改善するみたいなアルゴリズムは作れそうだけど、kmオーダーの精度ならそういう仕組は使ってなさそう。



https://www.teledynemarine.com/brands/webb-research/apex-standard

 Teledyne Marine社のAPEX Standardフロート。アルゴスフロートのうちの50%を占める製品だそう。Teledyneグループって色々作ってるんだなぁ(en.wikipediaによると22年時点で100社以上が傘下)。

 観測機器で色々追加オプションがあったり、深度6000mまで潜れる機材もあるらしい。

 標準はIridium Circuit Switched(アナログ音声回線経由のデータ通信)もしくはRUDICSで通信を行い、オプションでSBDにも対応、とのこと。SBDは伝送容量が小さいからRUDICSを使いたいんだろうけど、オプションでSBDを残しているのはなんでだろう? 通信コストとか? あるいは古いSBD用の観測(データ処理)システムとの互換性の問題なのか。

 オプションでAir Deployableで、カタログには4発ターボプロップ機からパラシュートで落とすイラストがついてる。NOAAはP-3を持っていたり、去年はC-130を注文したりしてるからな。アメリカの研究者はスケールがでけーや(日本でもドロップゾンデみたいな小型な観測機器を落としたりはしてるけども)。まあ、トランプ政権でこのあたりの予算もガッツリ切られてそうだけど。。。



https://www1.kaiho.mlit.go.jp/kenkyu/report/rhr46/rhr46-tr11.pdf

 2010年頃? 海難事故で捜索救難に使うためのGPSブイの開発。

 2008年の漁船事故では海流の推定値と実際の漂流物の流れが大幅に異なった。僚船が投入した漁業用のブイは漂流物と一致する結果があったため、海流を実測できるブイの重要性が認識された。前年に配備したブイは携帯電話回線?を使用していて、沿岸部以外では使えないことから、オーブコムを使用したブイを開発した。

 2004年に松下電器が発売したオーブコムの送信機は製造中止になったので、米国のメーカーが発売している製品(販売されている唯一の製品)を採用した。

 航空機側の要求から、放出後にパラシュートを開くまでにある程度の遅延が必要となった。市販の玩具に内蔵されたゼンマイ機構を使ったらしい。

 既存の市販ブイは1台60万円くらいで、老朽化による故障も多く、継続的な使用(海流のモニタリング等の用途)は難しい。一方で今回開発したものは電源容量が少なく、長期間の運用には向かない。


 最近だとシーガーディアンのレーダがあるけど、あれって海流の解析みたいな機能ってあるんだろうか。ビデオ信号をフーリエ解析すれば視線方向の風や海流の速度を求める位はできそうだけど、接線方向の情報がないから、せめて10度とか30度とか離れた2視点のデータがないと海流ベクトルを計算するのは難しそう。あと、この手の無人機は足が遅いから遠洋でのSARミッションは使いづらそう。



https://www.jstage.jst.go.jp/article/nictkenkyuhoukoku/31/159/31_47/_pdf

 1985年。EPIRB/ELTの測位に関するシミュレーションとか。軌道精度と測位精度の関係とか、それを改善する方法とか。軌道精度(高度・アロングトラック・クロストラックの誤差)がわかれば測位精度もある程度決まるから、それに応じて捜索範囲を設定したり、あるいは推定位置に近い場所に位置が既知のビーコン(他のシステムで位置を決定した船舶等)を設置して、それを基準点として衛星の推定位置を改善してから測位を行ったり。


 最新の改正性能基準に対応した406 MHz衛星非常用位置指示無線標識装置Tron 60AISを発売|JRC 日本無線株式会社

 2024年から従来のEPIRB送信機の販売はできなくなって、新方式の送信機のみ販売が可能になったらしい(既存の設備は引き続き使用可能)。

 変調方式を追加してGNSSに対応したのと、AISにも対応したのが大きな違い。あと、この製品だと、夜間のNV向けに赤外線LEDビーコンを内蔵したり、Galileoのリターンリンクに対応したり(日本では使用できない)。



 MOS-1とMOS-1b、ほぼ同じ仕様の衛星で、運用期間が5年ほど重なっている(軌道位相差180度で運用)。日本の衛星で、同じ仕様で同時に運用した衛星って珍しい気がする。HTVは数は多いけど運用期間は違うし、ALOS2/ALOS4はだいぶ違う衛星のはずだし、ETS-7は親子というにはあまりにも似てなさすぎるし。実用衛星(放送衛星、気象衛星、測位衛星)はさすがに同じような衛星を同時運用しているけど、気象衛星を除いた観測衛星はあまりない気がする(最近のGRUSやQPSは別として)。


***


 いくつかのSBAS衛星(特にPRN142)から特定のCRC値が出ると騒いでいた件、原因が判明した。当たり前だけど、復調側の問題でした。そりゃそう。

「固定値」というのは、0x864CFBだったんだけど、これはCRCの生成多項式の最上位ビットをクリアした値に相当する。で、この値を簡単に作ろうとした場合、最後の1bitを反転すると出てくる。畳み込み符号の特性上、テールビットが無い場合は、最後のビットが正しく復調できなくなる。今回はそれを踏み抜いていた。

 こういう実装にしていた理由としては、SBASメッセージの最後のシンボルを受信した段階で復調を行えば、SBASの正秒にほぼ同期したタイミングで復調結果が返せるという狙いがあった。そのために、メッセージ1000code(実際はオクテット区切り用に1024code)分のシンボルを受信した段階でビタビ復号を行っていた。

 これを、1056code(追加で1オクテット)分のシンボルを受信してから復調するようにしたところ、以前は正しく読めなかったビット列を、正しく復調できるようになった。


 今回は結果的に最後の1bitがエラーになるパターンで、それはCRC計算結果を見れ推測できるんだけど、これとは別に、テスト用に書いたCRCチェッカーにもバグがあって、CRCが正しいときは0になるが、CRCが正しくないときは本来得られるビット列とは違うビット列が表示されていた。なので生成多項式が得られるという特殊な状況に気が付かなかった。

 それと、メッセージの復調部の不具合であればすべての衛星に均一に発生するはずで、特定の衛星に集中して発生することはないはずだ、という思い込みもあって、原因が判明するまでに時間がかかってしまった。



 約24時間で受信したLNAV/SBAS系メッセージの件数

 LNAVは24時間あたり14400件、SBASは24時間あたり86400件のメッセージが放送されている。SBASの半数は8.5万件以上が受信できている。残りの半数は3万件から7万件弱と、受信数が少ない。

 LNAVはQZSで1万件弱、GPSで2千件前後、といったところ。GPSは1番から32番まで全衛星が見えている。

 PRN129, 137, 189が受信できているから(特に189は受信率98.8%)、QZS-3は間違いなく視野に入っているが、PRN199は受信できていない。


 パリティ(LNAV)/CRC(SBAS系)エラーのメッセージ数

 PRN185だけ突出してCRCエラーが多い。といってもエラー率は0.16%程度だけど。CRC演算結果は大半が3種類に固まっている一方で、1回しか出ないCRC値も7個ある。ランダムエラーっぽい気もするけど、詳細は不明。

 それ以外だと、LNAVは7個の衛星で1回ずつ、SBASは2回から10回程度、エラーが発生している。RTL2832Uはたまにデータを取りこぼすので、その時はキャリアのPLLのロックが外れて、正しく復調ができなくなる。たいていはロックオフを検知してメッセージのデコーダを停止するけど、検出が間に合わずに1メッセージ分の信号を受信し切ると、末尾はビットエラーを含むから、確率的に文字化けしたメッセージを受信することになる。LNAVとSBASのエラー率の差はメッセージ長の違い(LNAV6秒、SBAS1秒)に起因する確率の差、SBAS内でのエラー率の違いは受信したメッセージ数の違いの影響だと思う。

 正常なメッセージの受信数が少ない137はエラー率も少ないという結果。これは受信強度が低くて文字化けが多く発生しているわけではなく、そもそもの受信件数が少ないということを意味している。もっとも、受信強度が低くてキャリアをロックできず、一旦キャリアをロックできてしまえばメッセージは誤りなく受信できる、ということなのかもしれないけど。


 メッセージを受信したタイムライン(JST)

 GPS衛星は、いくつかの衛星は1日に2回受信できるものがあるし、それ以外は1回受信している。あまりきれいに受信していないのはアンテナの視野角の問題だと思う。

 SBAS衛星の中、間欠的に受信している衛星は、あまり規則性はなさそう。PRN184,194は14時ちょうどに途切れて19.5時ちょうどに再開しているけど、単純にLoS/AoSが偶然そのタイミングになっているだけの可能性もある。PRN185/195や186/196はあまりきれいなタイミングじゃないし。

 185と195では、若干とはいえ、185のほうが消えるのが遅く、現れるのが早い(186/196も同様)。また、195や196では途切れている(信号強度が低そうな)タイミングでも185/196は受信できていることがある。LNAVとSBASのノイズ耐性の差かな? そう考えると、SBASはLNAVに比べてビットレートが5倍早いけど、信頼性は変わらないどころか若干高い。誤り訂正つよい。


 適当な部分の拡大

 データのドロップですべての衛星を一斉にロストする。



 試しに、搬送波位相をグラフ化(縦軸rad、ただし1機ごとに5ずつバイアス)

 下4個がGPS、上2個がQZO。サンプリングレートが8Hzで、ドップラーシフトが8Hzの整数倍に近づくと位相角速度が低くなる。QZOはドップラーシフトレートが低いのでこの図ではほとんど一定の角速度に見える。

 搬送波位相を取ったところで何に使えるかもわからないけど。まだ測位演算ですらまともに実装できていないのでな…… 搬送波位相はPLLさえ実装しておけば簡単に得られるので、ついでにグラフ化してみただけ。

 適当に測位演算してそれを初期位置にして、山の数と衛星との相対距離変化を差っ引けば、初期位置からの移動距離はある程度正確に得られないかな、とか考えてみたり。電離層の変動の影響とかはありそうだけど、この図を見る感じ(少なくとも30秒程度のオーダーなら)あまり気にならなそう。コード追尾のループフィルタがかなり手抜きな(良く言えばロバストな)実装で、擬似距離ベースの測位演算はあまり精度が出ない(径数十m程度に分布する)から、簡易的な干渉である程度細かい動きが見えれば面白そうだな、とは思いつつ。


*


 ワッセナー・アレンジメント - GNUプロジェクト - フリーソフトウェアファウンデーション

以下はわたしたちが知る限り最新のワッセナー・アレンジメントのわたしたちの解釈です。これはまだ弁護士によるチェックを受けていません。

一般ソフトウェア覚書第2項によると、この協定は「パブリックドメイン」なソフトウェアには適用されません。

 既知の情報は秘密ではない、みたいな考え方なのかな?


 オープンソースのGPS受信機って法的にはどんな扱いなんだろ、と気になってるんだけど、ググっても出てこないんだよな。

 この考え方を適用するのであれば、パブリックドメイン、あるいはそれに準ずるようなライセンスのOSSであれば問題ないのかな? 拡大解釈すると「秘密の情報も広く一般に知らせてしまえば保護されない」みたいな頭の悪い解釈ができそうだけど。


*


 L1帯の軸モードヘリカルアンテナの空想

 主に静止衛星(QZS-3とか)狙いなので、広視野とかは気にしない。

 コイルはWikipediaの指示通りに作って、グランドプレーンも伸ばしてみた。5ターンで高さが220mmくらいだから、ウチの3Dプリンタでもかろうじてフレームを一体で作れる。GPはもう少し小さくてもいいと思うけど、どうせ導体の強度で伸ばすから、造形エリアには関係ない(後で適当な長さに設定する)。送信用としても使うなら(アマチュア無線等のヘリカルアンテナなら)マッチング回路(構造)を作る必要があるけど、受信用だし、GPにDCで短絡して、1/4λで給電すればいいはず。ただ、GPがシンプルな導体の平面ならそこに接した点を節にして1/4λ離れた場所を腹と考えればいいけど、GPをワイヤで作る場合はどこが節になるのかわからないんだよな。HFならワニ口クリップで動かすという手もあるけど、L帯でそれをやるのはちょっと怖い。まあ、大電力を扱うものでもないので、マッチングもさほど気にする必要はなかろう……


***


 Ubisoft+Premiumに加入。先月末にACSのアプデや追加シナリオが来てたし、ロードマップによればもうすぐ別の追加シナリオも来るはずだし。これから暑い季節が来ると熱い(物理)ゲームを遊ぶのは厳しいかな、ということで、その前にちょっと遊んでおこう、とい言い訳。

 以前は1ヶ月遊んだ時点でプレイ時間131時間とかいうアホみたいな遊び方をしていたので、今回はもう少し抑えめで遊びたい所存。

 最初の2時間位は操作方法ほとんど完璧に忘れてた。最初10分くらい軽く戦闘してなんとなく思い出したしいけるやろと思ってDbDコラボ行ってみたら鬼が鬼強くてめちゃくちゃ時間かかった。敵ボスがハメ技使うなよ。。。レーションも最大6個持てるのに3個しか持たずに行って謎の縛りプレイしてたし。

 ACSはミッションの再プレイができないから、コラボミッションも1回遊んだら終わりってのがちょっとなー。ストーリーミッションも再プレイできないから、一通り最後まで遊んだら遊び続けるインセンティブが無いし。

 ストーリーを進めつつマップを開放していくと、その場所でしか拾えないサブクエアイテムが出てくるけど、ストーリー優先で拾わずにいると、そのアイテムがどこで拾えるのかがわからなくなる。で、サブクエが進まずに積む。いくつかのサブクエがこんな状態で放置されている。

 メインのストーリーをまっすぐ読むだけなら面白いんだけど、メインストーリーが終わったあとはちょっとイマイチ。最初から遊び直すにはストーリーが長すぎるし。


2025年6月11日水曜日

小ネタ


 Wolfspeed社が破産準備、半導体を急激にコモディティー化する中国の戦略 - 吉川明日論の半導体放談(339) | TECH+(テックプラス)

 旧Cree系のパワエレ企業。

 Cree自身はLEDから手を引いて社名も変えてパワエレ系に中力していたけど、CreeはCreeで別の会社にブランド名売って残ってるのよな。


 アメリカ(というかトランプ)が一部の企業(大昔からある鉄鋼とか自動車みたいな企業)の保護に力を入れてR&Dみたいな方向の支援を絞る一方で、中国は様々な分野に幅広く補助金等を与えて、アメリカのEVみたいな企業は環境保護系の補助金の打ち切りで窮地に立たされるし、その間に様々な分野の中国企業は政府からの補助金で力をつけるし。どんどんアメリカと中国の差が縮まる(or開いている)感じがするな。



 マスク氏、トランプ氏の弾劾求める スペースXの宇宙船退役も宣言 - CNN.co.jp

 別の投稿で同氏は「大統領が私との政府契約を打ち切ると表明したことを受け、スペースXは宇宙船ドラゴンの退役を直ちに開始する」と述べた。

 その後撤回したし、イーロンはそういう人間なんだろうけど、とはいえもうちょっと考えて話せよ、とは思うよなぁ。トランプからすればドラゴンがISS補給任務から離脱したらスターライナーにテコ入れするだけのような気もするけど。第一次大戦中から米国の軍事力を支え続けてきたボーイングだから、トランプも喜んで金を突っ込みそうだし。



 燃料を使わずトラクターミリ波ビームでロケットに推進... | プレスリリース・研究成果 | 東北大学 -TOHOKU UNIVERSITY-

 燃料を使わずトラクターミリ波ビームでロケットに推進力を与える実証実験に成功 ─ 地球と地球外惑星からのロケット打ち上げに期待 ─

 どちらかといえばパルスジェットエンジンに近いイメージ。前方から吸気して、外部からミリ波でエネルギーを供給して、プラズマ化させて高圧を得て、その反作用で推力を得る。

 従来方式(ノズル側から照射)ではノズル付近に残ったプラズマにエネルギーが加わるとそこで点火してしまい、燃焼室の中の最適な位置での点火を持続することができなかった。

 新方式では吸気側から照射するから、照射ビーム内にプラズマが残留することがないため、繰り返し点火した際の特性が安定する。


 原理的に大気圏内でしか使用できないから、エアブリージングロケット程度にしか使えないはず。あるいは、大気圏外でも使いたいならLN2みたいに適当な形で推進剤を持っていくか。化学エネルギーを自分で持っていく必要がない分でエアブリージングよりはマシだろうけど。

 エネルギーは進行方向側から照射する必要があるが、人工衛星から照射することを想定しているらしい。宇宙太陽光発電システムみたいなものが必要になるから、実用化段階で打上げコストを多少下げられるとしても、最初の実証実験までのハードルがとても高そう。あるいは、先にSSPSの実用化を期待していて、それのビームを振り替えて実証しようみたいなことなのかもしれないけど。しかし、ロケット1機を純電力で軌道投入するようなエネルギーって、どれほどの規模のSSPSが必要になるんだろうか。普通の(地上へ送電する用の)SSPSとは全く別物になりそうだし(少なくともビーム径を3桁くらい絞らなきゃいけない)。いろいろハードル高そうだなぁ。

 前方から電波を突っ込みたいだけなら、上部にリフレクタを積んでビームを90度曲げて側面(地上)から照射すればいいんじゃね?って気もする。リフレクタに適当な曲率を与えるか、あるいはISARAみたいに集光させれば、リフレクタ1枚で点火用の集光も兼ねられるし。というか、そもそも、噴流とビームが同軸なのが問題なんだから、ロケット側面から照射しても良さそうな気がするが。地上から照射するにしたってヤシマ作戦みたいな様相になりそうだけど、軌道上から照射するよりは遥かにマシなはず。



 富良野 市内初のウイスキー蒸留所の建設計画 三者が協定締結|NHK 北海道のニュース

 富良野にはワインの醸造所があるけど、ウイスキーってことはワインの蒸留(ブランデー)ではなくて、別の酒(ビール)を蒸留するのか。元の酒はどこで作るんだろう。せっかく作ってるんだからワインも蒸留すりゃいいのに。

 大樹のウイスキーとか余市のワインとか、最近は北海道で新しく酒関係の話題が多い感じがするな。



https://www.jstage.jst.go.jp/article/showabungaku/24/0/24_145/_pdf

 1992年。陰陽寮の話とか。明治6年の改暦の頃の話もちょろっと。どちらかといえば近代史の方向なので、暦とかの方向の資料ではないけど。



 List of objects dropped on New Year's Eve - Wikipedia

 大晦日に落とされたものの一覧。いくつかの国で色々落としているけど、アメリカはダントツで多いな。その地域を象徴するアイテムを落としがちらしい。受験生に勉強の息抜きとして大晦日のイベントにつれていくのはNGか…… いや、少なくとも日本のイベントで物を落とすことはそう無いだろうから、それに関しては大丈夫だと思うけど。


 USNOでは現在でも毎日正午にタイムボールを落としている、みたいな記事を見かけたんだけど、本当だろうか? YouTubeで探しても動画が一個も出てこないが。世界初のタイムボールはグリニッジ、と書いてある記事なので、話半分程度かなー。いちおうタイムズスクウェア公式のWebサイトっぽいんだけども。

 USNO本部は敷地内にアメリカ合衆国副大統領の公邸があったりするので一般公開はされていないんだそうだ。ストリートビューで見てみても、本部屋上のタイムボールが見えるような隙間はなさそう(敷地内はストリートビュー無し)。近所にあるイギリス大使館の屋上からだと見えるかな? ギリギリ木が邪魔そうな気もする。

 そもそも、なんでこんな場所にタイムボールがあるんだろう? こんな内陸まで海軍の船が入ってきてたんだろうか?


***


 夜中に風呂から出て、暑いから窓を開けたらスズメバチが入ってきてびっくり。しばらく格闘してようやく駆除。せっかく風呂に入った後なのに汗びっしょり。

 あいつらって明るいところに行きたいらしいのな。懐中電灯に突っ込んできたり、壁に貼ってあるコピー用紙めがけて頭くっついてるのに直進しようとしたり。昼間は窓開ければすぐ出ていくし。夜中に入ってきたときのためにLED入りの内側が白い段ボール箱とかを用意しておくべきか……

 これまでも窓の外にスズメバチが飛んでいることはあったけど、部屋に入ってくることはほとんどなかった。今年みたいに何回も部屋に入ってきているのは異常。


 スズメバチの羽音のスペクトル

 思ったより録音音量低くてSNR悪い。500Hzと1kHzに小さいピークがあって、これが羽音だと思う。ただ、ググった感じだとスズメバチの羽ばたき周波数は150-200Hzくらいそうだから、もっと下にスペクトルがあるはず。


 チャチャッと適当なプログラムを書いてフーリエ変換。無線で遊んでた経験が役に立ったな。AF用のスペクトル解析ソフトを探してダウンロードするほうが早い気がするけど

 きれいな1/f波形。/* 人間相手の1/fってここ数年のトレンドだと思ってたんだけど、結構古いんだな。1997年の資料にも1/fのCDや扇風機が販売されているというのが書いてある */

 44.1ksps、8192pts(青)と32768pts(橙)、Blackman、21回(青)と5回(橙)インコヒーレント積分。20kHz弱で綺麗にカットオフしてる。レコーダー側の仕様かな。


 140Hzあたりに鋭いピークがある。2倍弱の236Hz付近にも鋭いピークがあるけど、ちょっと低い。その上は520Hzとか、937Hzとか。あんまり綺麗な高調波って感じには見えないなー。サンプル数が少ないし、SNRも悪いし。



 別の日に入ってきたやつ。なんでそう頻繁に夜中に入ってくるんだよ……

 前回はマイクのHPFが有効だったので、フラットな特性に切り替えたらだいぶ強く録音できた。

 時間窓を短縮。積分回数が減る分でノイズは増えるけど、線幅はかなり狭くなる。適当なピーク、例えば1.31kHzを選んで、これが12倍とすると、109Hzが基本波になる。低周波部分のノイズ(PCのファンとか?)に埋もれているけど、小さいピークが見える。その上は2倍で218Hz、3倍で327Hz、というふうに、各ピークが109Hzの自然数倍で並んでいる。

 150-200Hzと考えると、109Hzはだいぶ低い。夜行性のスズメバチにはモンスズメバチという種類がいて、こいつはスズメバチの中でも大型な種類らしい。大きくて周波数が低いと考えれば、110Hzあたりは妥当なのかな?


 設定を変えてFFT

 44.1ksps、4096pts、10回インコヒーレント積分(約1秒間)。ちょーっとSNR悪いかなーって感じ。積分期間を長くしようとすると線幅が広がったりするし、そもそも蜂が通過してしまう。かといって短い時間だとSNRが悪いし。アルゴリズムで蜂の羽音を検出するのはちょっと難しそうだなー。



 2^16pts、1.48s

 だいぶガタガタになるな。


 10Hzから1kHzの範囲を、15倍波の範囲までインコヒーレント積分

 110Hzの基本波付近は周辺ノイズが強すぎて埋もれている。2倍の220Hzには明確なピークが見える。3倍以降はピークは見えない。線幅が広がってエネルギーが分散しているんだと思う。

 橙の点線は対数近似したもので、いい精度で一致する。線幅が十分に狭く(または弱く)、対数近似に与える影響が少ないと仮定すると、対数近似に対して一定以上の差(例えば3dB)があれば信号として検知する、みたいなアルゴリズムは作れそう。

 今回取った波形では、ノイズや羽音は1/fで減少しているから、10倍波は10分の1しか寄与しない。積分してノイズ除去したい場合、あまり良くない。とはいえ、n倍波を単純にn倍して加算するとノイズも大幅に増える。n倍波の寄与をn^(1/2)とかn^(1/3)とかにすれば高調波の寄与を増やせるけど、グラフをぱっと見た感じではSNRが改善している感じはない。



 時間方向に積分してから、周波数方向に積分

 (16x4096)/44.1kspsで約1.5秒くらいの区間。周波数分解能が高いほうが明らかにピークが綺麗に出る。しかし、この波形だと200Hzあたりを直接見るほうが良くね?って気がするな。

 そもそも、周波数方向に積分した波形と元の波形のピークの高さが同じだから、積分効果が全く出ていないんだよな。単にノイズを加算しているだけという感じ。うまいことモデル化すれば音声ベースで蜂検出できるのかもしれないけど、いい方法が思いつかない。


***


 12 point nutみたいな形を簡単にデザインして3Dプリンタで出力



 M12、二面幅17mm、くらいで、普通の六角ナットと同じ寸法。ただし高さを増やしてフランジを付けたり上に伸ばしたりしている。

 この形は高張力が要求される場所で使うことが多いみたい。高さがある分で噛み合う部分が長くなるので、ネジ山が負けなくて済む。通常の六角ナットは6点で接触するが、12角ナットは12点で接触するから、高トルクで締め付けたときに角が負けずに済む。

 P&Wの航空機用ジェットエンジンとかでセクションを結合するのに使うことが多そう。

 File:F-35A Lightning II Joint Strike Fighter Powerplant on display at Centenary of Military Aviation 2014.jpg - Wikimedia Commons

 F-35用のP&W F135エンジンのモックアップ。ケースのボルトは実物とほぼ同じ配置。めちゃくちゃ大量のボルトが並んでる。P&W以外にも、いろいろなメーカーで同様に採用している。

 今回はスレッド部は普通のナットとしてデザインしたけど、本物はおそらく先端が楕円形にカシメてあるはず。それでボルトに食い込んでセルフロックナットとして使える。12角が上部まで無いのは、セルフロック用の変形を見込んだ分もあるのかも。

 とりあえず、12角ナットで使用する工具の疑問は解けた。市販の普通の12角レンチやソケットが使える。それだけ。12角レンチ/ソケットは12角ナットと6角ナットの両方に使えるけど、6角レンチ/ソケットは12角ナットには使えない。


 12角ナット、手で回すのにすごく手触りが良い形状。セルフロックナットだと最初の方しかねじ込めないけど、それでもhand-tightで締めるのに便利そう。


***


 PRN36が320週目576996秒(Sat 16:16:36Z、6月1日)から出ていたっぽい。数フレームに1回(SF4/5のタイミング?)で不正なメッセージが放送されている。金曜17:48:36Zのサブフレームが最後かな?


 正常なサブフレームは、ざっと見た感じは内容も正しそう。ただし当初はURAが大きくてSV HEALTHが全ビット1埋め。最後の方に受信したサブフレームは、SV HELATHこそ全ビット1埋めは変わらないけど、URAは6まで下がっていた。

 不正なサブフレームは、ワード1とワード2は正しそう。少なくとも、正常と考えられる衛星と同じビット列が放送されている。ワード3からワード10までは全ビット(パリティ含)が1と0の繰り返し(0x2AAAAAAA)で埋められている。ただしワード10の最後の2bitは航法メッセージの構造上、ゼロクリアされている。


 PRN36のエフェメリスから求めた適当な時刻の位置と、同じ時刻(18秒前)をTLEで計算すると、NAVSTAR 63 (USA 203)が4.1kmくらいの差になる。TLEの精度を考えれば非常に高い精度で位置が一致しているから、PRN36は34661U 2009-014A USA-203で間違いないはず。

 WikipediaのList of GPS satellitesによると、この衛星はL5のデモ機として打上げられたが、信号品質が悪かったために正式に運用される前に退役して、予備として置いておきつつ時々運用している衛星らしい。

 USCGのWebサイトで、NANU 2025017として、PRN35, 36, 37を使うと通知が出ている。35,37は今のところ見かけていない。



 あと、PRN142のエラーフレームも復調してみたけど、MT2,3,4(高速補正)、25(長周期補正)、MT26(電離層補正)が出ていて、しかもCRC値が必ず同じ値になる。ランダムエラーの場合CRCはランダムな値になるはずだから、毎回同じCRC値が出るということは、意図的な不正メッセージだと思う。ただ、なんでそんな物を出しているのかが理解できない。

 不正なメッセージ(SBASの仕様で定められたアルゴリズムから逸脱したメッセージ)を実験的に放送する手段として、CRCが固定値になるように改変したメッセージを放送して、通常の受信機ではCRCエラーで棄却、実験用の受信機では予め設定したCRCが得られたら実験用メッセージとして読み込み、みたいなことをやっている可能性は皆無ではないにしても、そんなことやるかなぁ。

 あるいは受信側(復調処理)の問題かもしれないけど、142からも正常なメッセージが受信できているし、142以外のSBAS衛星(QZSS L1S含む)では全く問題なく受信できているから、少なくとも142固有の相性問題だと思う。でも、SBASメッセージに衛星固有のメッセージは無いからなぁ。



 LNAVは航法メッセージにTOWがあるので、衛星時刻を直接時刻を観測できるけど、SBAS衛星にはそういうメッセージは無いので、LNAVから時刻情報をコピーして、SBAS衛星の時刻を観測。LNAV/SBASのエフェメリスから観測点との距離を求めて、グラフ化。

 青がLNAV放送衛星、橙がSBAS放送衛星。

 LNAV衛星にフィッティングした直線にSBAS衛星も乗っているので、正しく測定できていそう。


 LNAVだけでも8機いるから、SBASを使う旨味っていまいちないのよな。あと、PRN142みたいに明らかに不正なSBAS衛星(エフェメリスが正しくない)もいるから、それを除外するアルゴリズムも必要だし(現状の142のエフェメリスだと、Z軸の位置と速度が0なら除外する程度で良さそうだけど)。

 SBASを含めると13機まで増えるからDOPは多少下がるけど、静止衛星は天球上の一部に偏って分布しているから、大幅な改善にはならないかな。


***


 C#のDateTime/DateTimeOffsetのParse、文字列の後ろにZが入っていると特殊な処理が走るけど(UTCとして取り扱って、DateTimeならローカル時刻のオフセットを加算、DateTimeOffsetならタイムゾーンゼロで保持)、ToStringのformatオプションにZを入れてもUTC処理が走らないのが地味に不便。フォーマットにZを指定したらUTCに換算して表示してくれたら便利だったのにな。C#の互換性のポリシー的に今更変えることもできないし。


 C#、byte[]arrayに対してif(array is "hoge"u8)とかif(array is [0,1,2,3,.."hoge"u8])みたいな書き方できないのが不便なんだよなー。


 VS CodeでJavaScript書いてて、三項演算子をネストすると1段ごとにインデントが1段増えるの、地味にキモいからやめてほしいんだよなー。


2025年6月4日水曜日

小ネタ


 最近ちょっとPCの調子が悪いような感じがしている。普段は問題ないんだけど、時々調子が悪くなる。雰囲気的にストレージアクセスのボトルネックっぽいかな。ブートドライブがNVMe SSDのRAID1、データドライブがSATA HDDのRAID5で、RAIDはチップセット処理、CPUはAIOだからチップセットの冷却は不足気味。ストレージアクセスにトラブル出そうな構成ではある。最近暑くなってきて顕在化してきているという可能性もある。そうすると夏場にかけてはより一層悪化していく予測。まあ、相変わらず様子見の姿勢。

 Cドライブに使っているNVMeの1本が、CrystalDiskInfoで62%くらいなのが気になるな。昨年10月時点で70%未満だったらしいから、1%/月くらいで下がってる。PC組んだのが’22年4月だから38ヶ月が経過、1%/月として62%だから、ちょうどピッタリ。このまま線形で経過するならあと5年は持つわけだが、いくらRAIDとはいえ明らかに寿命が目前なのを放置するのも嫌なので、それまでにはどうにかせねば。とはいえ、組んでから6年とか経てばもうPC自体交換時期ではって気もするし。



 物の本によると、大陸横断鉄道で東向きと西向きの線路を複線で分離すると、レールが摩耗する速度に差が出ることがあるらしい。地球の自転速度に列車の速度分が増えたり減ったりするので、遠心力でわずかに貨車の重さが変わるから、とのこと。とはいえ、その差はごく僅か(0.1%程度)だから、実際は積載物(東西の輸送量)の違いが支配的だろう、とも書いてある。

 軽くググっても出てこないので、有名な話ではないのだろうし、遠心力が有意な差にならないのも事実なんだろう。



 光格子時計、NIST曰くサブミリメートル(髪の毛1本文程度)の高さの変化も検出できる、とのことだけど、イオンの雲ってどのくらいの大きさなんだろうか。

  2010年のNICTのSrの資料にある画像だと、ざっくり0.5mmくらい? 本当に0.1ミリメートルの感度があるとして、一般論的効果の感度に対してイオンの広がりが広めな気がするけど、光格子時計の精度が一般相対論で制限されたりするんだろうか。あるいは、上と下で効果を打ち消し合って問題ないんだろうか。見かけ上は輝線幅が広がるわけだから、精度の低下に繋がりそうではあるが。

 NICT-東大間の標高差60mで87Sr光格子時計の周波数差が3Hzだそうだから、0.1mmだとマイクロHzのオーダー。輝線幅が10Hzとしても、7,8桁下。本当にそんなものが比較できるんだろうか?


 将来的に光格子時計の運用性や信頼性が向上して宇宙に持ち出せるような時代になると、UTCのアンサンブルに超高高度の周回衛星が参加したりするようになるんだろうか(軌道高度だけで言えばいまだってUSNO経由でGPS衛星が参加しているはずだけど)。

 地球-月ラグランジュ点あたりに置いた光格子時計なら、一般相対論で発生する輝線幅の広がりをある程度は回避できるし、十分な強度で符号列を送信すれば、光格子時計の超高安定なクロックを使って大陸間の時刻比較にも使える。E-M L3,L4,L5に120度ずつ配置して、それぞれのラグランジュ点に2,3基の時計を置いたりして。あるいは、太陽系の他の天体(木星とか)との影響を直接計測するためにも、惑星間軌道にもいくつか光格子時計を置いたりして。

 GPS衛星の運用寿命(現役で一番古いものは27年9ヶ月)を考えると、惑星間軌道に乗せて十分に意味のあるミッション期間が得られそうだよな。木星のラグランジュ点とかに突っ込んでおいて、数周分くらいは使える。


***


 CICでデシメーションとインターポレーション

 振幅2048pp、f0.21の正弦波を10倍(N5)、5分の1(N10)でインターポレーションとデシメーション。振幅はfのゲインで補正済み。波形は概ね正しそうだけど、インターポレーションは振幅がちょっと低く出ている。


 CICでリサンプリング(ダウンサンプリング)

 R256N3でインターポレーションして、R315N3でデシメーション。多分ちゃんと動いてるんじゃないかなぁ。



 10Mspsで0.1MHzから4.9MHzまで100kHz間隔で正弦波を作って、CIC2段(それぞれN=3)で8.127Mspsにダウンサンプリング

 CICのSinc特性が綺麗に見えている。


 FIRでSinc補償フィルタを作成

 ISDB-Tの帯域幅が5.57MHzでその半分が2.79MHzだから、2.8MHzまでフラットになればOKで、FIRは10MHzの段階で処理するから、内側の2.8MHzがフラット、その外側2.2MHz(折り返して4.4MHz)程度でロールオフすればいいから、かなり緩やかなフィルタでも十分な特性が得られる。ロールオフより先に折り返しが問題になる。

 今回はカットオフ周波数3.3MHzでCIC2段分の補償係数を27タップ、係数ゲイン4096で作っている。0.1MHzの正弦波に対して2.8MHzの正弦波は3dB程度低いけど、この程度なら問題ないと思う。そのためのパイロット信号なわけだし。そんなこと言ったらSinc特性だって問題ないだろみたいな話になるけど。

 折り返しが-60dBくらいのところにいる。3桁下なので多分問題ないと思うけど、これの対応は結構面倒な気がする。FIRタップ数を増やしても折り返しの利得は下げられない。CICを3段でなく4段にすると処理利得が大きくなりすぎて64bit整数だと簡単に飽和してしまう。入力信号が8bitなら多少は余裕があるけど、FIRゲインを下げても結構ギリギリ。それに、N=4にしても78dB程度だから、18dB程度しか変わらない(といっても8倍の差だから結構な違いだけど)。CIC単体では1段あたり13dBだから、CIC2段で26dB下がるはずだけど、Sinc補償フィルタで上がってくるんだと思う。


 とりあえず、10MspsでサンプリングしてFIR(27tap)-CIC(x256, N3)-CIC(/315, N3)でもかなり良さそうな特性で8.127Mspsへダウンサンプリングできることはわかった。ということで、Airspy R2がたとえ10Msps以外を選択できないとしても、フルセグの復調はできそう。

 いくらCICといえど256倍とか315分は計算量がかなり多そうだけど、とはいえそもそもフルセグを復調したところで地デジ放送は全チャンネルがスクランブル化して放送されているから、視聴できるわけでもないし、実用性は最初から問題外だから、学習用として使えればオッケー、程度の期待値だし、多少の計算コストは許容できる。ISDB-Tを復調するなら少なくとも数十秒程度は処理しないと意味のあるデータが取り出せないから、トータルの計算量はだいぶ多いはずだけど。

 2.56Gspsとして、16bytes/sampleとして、40.96Gbyte/sec、30秒で1.2Tbyte程度のデータ量、計算量で言えばCICでその数倍になるから、10TBオーダーをCPUに通さなきゃいけない。さすがに現実的な処理時間は無理かも。。。SIMDで1命令16byteが通るとして、隙間なく3GHzで処理して200秒くらいか。30秒のIQファイルの処理に10倍くらいの時間がかかる? とはいえ、サンプリングレート変換は1回やればあとは必要ないから、ISDB-T復調処理を書き換えるたびにこれをやる必要はない。


 さーて、Airspy R2を買う上での懸念点がまた一つ消えたぞ。

 残る一番大きな懸念点はR2が発売からそろそろ10年で、後続機の噂もちらほら聞こえてきている点なんだよな。新しい製品が出たとして、R2よりは高くなるだろうし、発売当初はバグも色々あるだろうから、そういうのを勘案するとある程度枯れていることが期待できるR2を買うというのも有力な選択肢ではあるんだけど。


 ISDB-Tはサンプリングレートが512/63Msps≒8.127だけど、高度化方式は512/81Msps≒6.321MHzと、若干下げられている。今回は10M*256/315のCICを組んだけど、同様に10M*256/405のCICを組めば、10MspsのADCで高度化方式もサンプリングできる。帯域幅が少し広がるのでFIRのキレは良くする必要があるけど、おそらく問題ないはず。

 まあ、高度化は誤り訂正が複雑化している(なんたって現代の情報通信技術四半世紀分の技術の進化がある)から、気軽に受信して遊べるようなものでもないだろうけど。少なくともコンスタレーションや制御チャンネルは復調できるだろうけど、映像信号を取り出すのは難しそうだ。


***


 試しに1575.42MHzのQFHアンテナのフレームを3Dプリンタで出力

 VVFの中身を巻いてみた。

 Fusionは演算精度があまり良くないのか、曲面が複雑な形状をデザインしようとすると誤差やエラーが色々出てくる。3桁下駄履かせたりすればいいのかもしれないけど。


 適当な同軸線をはんだ付けして、受信テスト

 ドップラスキャンしても、相関が全く得られない。ノイズだってもう少し強いだろ、というレベルで静か。LNAが無いからノイズフロアも低いんだろう。やはりGPSを受信するならSAWやLNAが必要っぽい。


 試しに普通のGPS受信機(異様に安いNEO-6M)で、最初に普通のGPSアンテナでエフェメリスを覚えさせてからQFHに交換したら、再捕捉までだいぶ時間がかかったけど、ちゃんと測位できたから、アンテナとしては一応機能しているはず。しばらく放置しても受信衛星数は5個程度だから、かろうじて受信できている、といった程度だけど。SDR(ワンセグチューナー)はGPS受信機に比べて桁違いに受信感度が悪いはずだから、パッシブアンテナで使うのは無理そう。


 QFHアンテナ、VHF(NOAA APTとか)だとかなり巨大だけど、L帯はめちゃくちゃ小さい。キューブサット狙いのUHFだと直径が10cm、高さが22cmくらいで、ギリギリうちの3Dプリンタでも一体で出力できる大きさ。まあ、フィラメント使用量とか造形時間とかで非現実的というか、作りたくないような大きさだけど。試しに直径10cm、高さ20cmくらいで厚さ3mmの円筒をスライスしてみたら、フィラメント90m(270g)、造形時間6.3hくらい。作れないことはないにしても……

 NOAA APTも受信したいとは思いつつ、QFHを作るのは面倒なので、手っ取り早く3素子の直線偏波八木あたりかなー。クロス八木もVHFだと遅延線が50cm位になるのでな。固定で(自動で)受信できるQFHも魅力的なんだけどね。



 直線偏波を2入力して円偏波として出力するSAWフィルタみたいなのってあるんだろうか? 遅延線を1本内蔵したSAWフィルタ。あるいは、SAWフィルタが2本入っていて、偏波毎にフィルタを通してから遅延線経由で合成するような形でもいいけど。水平偏波2入力、円偏波2出力(RHCP+LHCP)みたいなSAWデバイスがあると便利なところはありそう。SAWで作るほど売れるかはさておき。

 軽くググってみた感じ、バランとして使えるSAWフィルタ(機能性SAWフィルタ)みたいな物はあるらしいけど、偏波合成ができるみたいなのはなさそう。大量に売れる移動体通信みたいな用途は直線偏波でいいし、衛星通信みたいな用途だとアンテナ自身で必要な偏波を受信するだろうしな。GPSみたいに普及した技術で左旋・右旋多重化していればそれ用の偏波合成デバイスも量産されるだろうけど、そういうものも無いし。


2025年6月2日月曜日

陸自駐屯地イベントで撮った変な写真いろいろ

 地元の陸自駐屯地の周年行事に行ってきたので、そこで撮った変な写真をいくつか紹介する。

 今年は70周年で、ブルーインパルスの飛行も計画されていたのだが、最近のあれこれの事情で中止になってしまった。

 隊員の立ち話を聞いていた感じ、今年は例年に比べてかなり人が多かったらしい。個人的には数年前に行ったときと比べてそう多いという印象もなかったが、毎年開催している側からするとやはりコロナ禍で人数が減ったところから増えて来たのは実感としてあるのかも。


 写真はほとんどスマホ(Pixel 6a)で撮影したので、画質悪め。行ったり来たりしながら撮ったので順番もバラバラ。

 基本的に当ブログは画像の下に説明テキストを付けるスタイルだが、本記事では画像の概要を先に書いて、続いて画像、必要に応じて下に補足のテキスト、というスタイル。


 MLRSのコンテナの着脱式の緩衝スキッド



 MRLSコンテナの上についているトゲ、もとい、ロケーターピン? コンテナを重ねて保管するときに位置決めするためのものだと思う。


 釣り上げ用の金具


 マインスイーパーの弾体


 ランチャーレール?の先端部。複雑な機構。


 後端部


 固体燃料が左右2本ずつ、点火器がノズルに突っ込んである。環境維持(固体燃料の防湿とか)用のプラグも点火器が兼ねているのかな。ノズルは適当なキャント角がついている。1本不点火でも、真正面には飛ばずともまっすぐ飛ぶように、みたいな感じなのかな。あるいは単にアンバランスの影響を減らすためだけか。

 クランプバンドは弾体とランチャを拘束するためのものだと思う。バンドはかなり頑丈な見た目だけど、実際にテンションを受けてるのはかなり薄い板材1枚だけ、しかもそれを支えているのはプラスネジ6本程度にしか見えない。締め付けトルクから考えるに、締付用のボルトはM4とかM5とかその程度だろうから(もっと太く見えるけど)、テンションはあまり強くないのかもしれない。バンド自体がゴツいのは荷重の分散かな。鉄パイプだろうし、そんなヤワな物でもないだろうけど。

 バンド上部のボルト(見えているのはナット側)がおそらく分離ボルト。画像では上側のボルトにしかケーブルが出ていないけど、同じ大きさのコネクタが下部にも1個あるから、上下2個の冗長系だと思う。片方しかつけてないということは、今は片方しか使っていないのかもしれないけど。10時方向の大きなコネクタがアンビリカルかな。


 固体燃料前端のラグ

 かなり華奢な雰囲気。たぶんここで推力を受け止めてると思うんだけど。


 ドローンと油圧ショベルのシミュレータのテントの前のパネル

 ドローンはSOTENのやつで、ちょっと触らせてもらったけど、操作と映像のレイテンシが結構大きくて、慣れないと大変。日本企業製だけど、モード2だった。まあ、そりゃそうか。

 個人的にパネルの左下がすごく気になったので聞いてみたら、レーダ衛星を欺瞞するために使うリフレクタとのこと。本来の場所とは違う場所に車両のようなエコーを作ることで、攻撃をそちらにも分散させる、みたいな戦術らしい。さもありなん。ちらっと話しただけなので詳しい話は何も聞けなかったけど、「内輪ノリ」と自虐していたのが印象的だった。金網やアルミホイルでリフレクタを作れば偵察衛星を騙せるってのはあんまり有名な話じゃないだろうしなぁ。/* THE LAST SHIPの中で、敵艦の対艦レーダーを欺瞞するためにアルミホイルでリフレクタを作るシーンがあるけど、描写としてはちょっと間違ってるのよな */

 リフレクタは比較的シンプルな構造(物自体は小学生でも作れる)で、電子戦に対してある程度は有効なアイテムだし、使用が簡単だから教育費用も少ないし、費用対効果は高そうだけど。最近はアルミ蒸着PETフィルムをダンボールに貼り付けた製品もあるらしいし、それを使えばレーダリフレクタも安価に量産できそうだ。段ボールだから折りたたんでおけば荷台の隅にでも収納できるし、断熱性も高いからイザとなれば寝袋に重ねて防寒とかにも使える。アルミ蒸着段ボール、そのうち自衛隊に装備されるかもな。SARの分解能が上がったら車両とリフレクタを容易に見分けられそうではあるけど。


 88式地対艦の予備弾薬車両のキャニスター拘束部

 ナットは12角形状っぽい。航空機とかで特に高信頼のトルク管理が必要な分野でよく使われる形状。ボルトを外したときは外側に倒すから、根本のボルトがヒンジになっていて、それはキャッスルナットに割ピンで緩み止め。

 トルクの数字が見づらいけど、169.7-203.4 N m(1730-2075 kgf cm)、とかいう、いかにもお役所仕事みたいな数字で笑っちゃう。設計当時は125-150 lbf ftだったんだろうな。

 そもそも、このトルク指定ってヒンジ部と上側のナット、どっちなんだろう? 距離で言えばヒンジ側かな。上側は現場で頻繁に締めたり緩めたりするし、いちいちトルクレンチとか使ってられないって話もありそう。

 アイボルトの先端側にも穴がある。ここに割りピンを入れればナットが脱落することはないし、クリアランスも十分にあるっぽいから、ナットを完全に外しきらずにアイボルトを外側に倒したりできそう。ただ、ここに割りピンを入れたら正規のソケットが使えないような気がする。針金で縛ったりすれば問題ないだろうけど。


 キャニスター側のヒンジ

 同じ締め付けトルクが指定されている。やっぱりヒンジ部のトルクかな。割ピンが入っているけど、キャッスルナットではない。こっちは規定トルクでしっかり締め付けて、緩んだとしても脱落しないように割りピンを入れているのかな。


 ミニミの珍しい形態(おそらく)

 89式の20発弾倉が入るのか聞いたら入れてくれた。とはいえ、2人いた隊員のうち、一人は入ること自体知らず、もう一人も入ることは知っていたがその状態で撃っているのは見たことがないと言っていた。


 89式のブルーガン

 うーん、見たことあるロゴ。とはいえ、おそらくブルーガンを作ったのは別メーカーで、エアソフトから形を取っただけだと思うんだけど。


 駐車場に通じる道はアスファルト舗装で、装軌車両は進入禁止。

 奥では戦車の後ろにつけたカゴに乗る体験をやっている。土埃がすごい(これでもおとなしい方)。


 コンクリで舗装した道路


 端を除いて装軌車両でガリガリ削られて、骨材の砂利まで削れて平坦になってる。肉眼で見ると色々な色や大きさのドット柄がカラフルで綺麗。意図的に作ろうとすると表面を削らなきゃいけないから大変だろうけど、装飾のデザインとしては良さそう。


 戦車砲の先端。どっちだったかな。画像検索した感じ90式っぽい

 滑腔砲のはずなのにライフリングが!! いや、ただの傷だろうけど。

 太い方のボルトは割ピンで固定して、細い方のボルトはロックワイヤで固定している。

 ロックワイヤはめちゃくちゃ細いな。引っ張ったら切れそう。ボルトが緩まないように固定するためのものではなくて、緩んだボルトが脱落しないようにするための、陸上用っぽい思想な気がする。まあ、陸上装備品なので当たり前といえば当たり前だけど。

 それにしても、こんな小さな部品を固定するだけなのに太いボルトを5本も並べてあってすごい。戦車砲の発射の衝撃は凄まじいんだろうな。わずかなズレすら許容できないデバイスだし、とにかく頑丈に固定したいんだろうけど。


 90式の駆動輪

 駆動軸とホイールを固定するナットはセルフロックナットを使用している。スプロケットを固定するのは通常のワッシャとナットの組み合わせ。よく見るとセルフロックナットのボルト側にメーカーロゴとか型番らしい数字が入っている。

 スカートめくれ防止のピンが1本無い。


 10式の駆動輪

 こちらも同様にセルフロックナットと通常のナットの組み合わせ。ボルトのメーカーロゴは無し。

 90式と10式の履帯だけ見ると、90式は履帯とスプロケットがツライチで、スプロケットの内側で履帯のコマを接続しているが、10式はスプロケットの外側でコマを接続している。

 履帯だけ見ても10式と90式は見分けられる。湿った土とかで条件が良ければ、走行の跡が少し残っているだけでもどの種類が通ったのかわかりそう。


 90式の転輪

 軸の真ん中に赤く見えているのは、潤滑油の色。小さな窓があって、液面が把握できるようになっている。

 赤いオイルはATFと呼ばれるやつかな? ATFは色が変わったら交換のタイミングだそうで、窓は液面の把握だけでなく交換時期の把握にも役に立つのかも。/* アメリカの乗り物系YouTuberが湿式エアフィルタに赤いATFを染み込ませながらジョークを言ってたな(アメリカには別の有名なATFがあるので) */


 スカートで見づらいけど、スリットから覗いた10式の転輪の軸部分

 窓が省略されて、90式のように転輪1個ずつ液面を管理する必要がなくなっている。90式に比べて整備性がだいぶ良さそう。個別で管理すると1箇所液漏れしても他の場所には影響がない利点もあるけど、平時の運用コストがな。。。


 96式多目的誘導弾の起立用油圧ロッド

 断面が円形以外の油圧ロッドって初めて見た。おそらく円形の外側を四角形に切り落とした形状だと思うんだけど。シールの部品交換とかで汎用品が使えないから大変そう。それともこういう形状でも汎用品が売ってるんだろうか?


 75式ドーザの履帯

 ここもセルフロックナット。



 写真を眺めてると、ここの写真撮ればよかったとか別の向きから撮ればよかったとか色々後悔あるんだよなー。次機会があったら躊躇せず撮りまくろう。

2025年5月28日水曜日

小ネタ





 ギアとベアリングの一体化で機械部品に新たな進化を、ジェイテクトの「JIGB」:人とくるまのテクノロジー展2025 - MONOist

 片側だけ一体化しているけど、将来的に両方とも一体化するような感じになるんだろうか? 組み立てかなり面倒くさくなりそうだけど。それとも長周期の収縮みたいな成分をベアリングの部分で分離できるから一体化はできないのかな。



 HAC、衛星使う新着陸方式「LPV」運用開始 国内初、悪天候時の就航率向上

 2022年9月14日

 HACによると、奥尻空港の滑走路に西北西側(RWY13)から進入する場合、従来の方式では視界不良時に滑走路が視認できない際に対地高度380フィート(約116メートル)までしか進入できなかったが、LPV進入であれば約30%低い257フィート(78メートル)まで進入できる。

(中略)

 2025年以降はSBASの配信サービスを提供する準天頂衛星「みちびき」の運用機数が増えることで、「LPV200」と呼ばれる200フィートまで進入できるモードの実用化が見込まれており、ILSの「CAT I(カテゴリーI)」相当の運用が可能になる。

 MSASが1機だと制限がつくのはSBAS衛星の故障を許容するためのものだと思うけど、2機に増えてもILS CAT I相当までしか使えないんだな。固定の電波をゴリゴリ出しておくだけでいいILSのロバスト性すごい。微弱なCDMAをコヒーレント積分して浮かせて相互にナノ秒精度で比較して連立方程式を解いて各種補正情報を加算しなきゃいけないGPSの複雑なことよ。まあ、わざわざ何百億もかけて静止衛星を複数機打上げてILS相当のシステムを作ろうとしてるんだから、ILSもちゃんと信頼性を維持して長期間稼働させようとするとめちゃくちゃコストかかるんだろうけど。



 親が普段使いしている安物のアナログクォーツが、風防の水滴が目立つようになってきたとのことで、分解。裏蓋はかなり硬かったので、ナイフを突っ込んでガシガシやって開けた。べつに仕事でやるわけじゃないしね。多少の傷は気にしない。

 ムーブメントの小さいことよ。ムーブメント自体はJAPAN S.EPSON CORP. NO JEWELS 1 Y121という表記。セイコーエプソン製のY121というモジュールで、宝石無し。

 裏蓋にはパッキンがついているけど、竜頭の部分はスカスカな感じ。パッキン入れ忘れの不良個体? 実は入っているのかもしれないけど。汚れのつき方からしても、竜頭の穴から水分が入った感じっぽい気がする。

 とりあえずシリカゲルと一緒にジップロックに一晩入れて、風防の水滴も消えたので、そのまま蓋を閉じて返却。


 この腕時計自体は日本の会社のブランドらしい。一つの会社でウォッチとクロック合わせて12のブランドを持ってるんだそうだ。

 Y121はぐぐると大量に出てくるから、セイコーが小さいムーブメントを大量生産して売って、小さい時計メーカーは量産されたムーブメントを買ってきて、フレームやバンドだけ自分で作って(orさらに買ってきた部品で)オリジナルの時計を売ってるんだろう。



 久しぶりにCorsair iCUEを開いたら、「サービス開始に失敗しまいた」という微妙に残念なメッセージが表示されて、ダッシュボードが開けなかった。Corsair関係のサービスが停止していたけど、タスクマネージャーからは起動できず。インストールされているアプリの一覧からiCUEの変更で修復しても改善せず。一旦アンインストールしてから再インストールしたら無事ダッシュボードを開けるようになった。/* iCUE、相変わらずサポート欄には「不一致」があるな */

 ダッシュボードを開いたら急にファンの音が大きくなった。温度に応じたフィードバックはPCアプリケーションレベルで実施しているらしいな。低い値でフィードバックが止まると冷却能力が不足した状態で停止する。



 時々部屋の中にスズメバチが入っている。どこかに巣があるはずなんだけど、家の周りを歩いても極端にスズメバチが多いような場所も見当たらない。ここ数日は急に寒くなってあんまり飛んでないけど。



 2015年に買ったICOMの特小トランシーバ、アンテナ部の樹脂モールドがボロボロに割れて中の金属がむき出しになってるんだけど、樹脂って10年でこんなにボロボロになる物なの? アマチュアとかデジ簡だとアンテナ交換ができるけど、特小は原則としてアンテナ交換は不可だからなぁ。このモデルは同じ本体でアンテナサイズの違う2機種がラインナップされていて、アンテナ自体はY字ネジ1本で固定してあるだけだから、交換部品さえあれば簡単に交換できるんだけど、買えるものでも無いだろうし。



 ちょーっと特殊な機材を買いたいなーと思っていて下調べに軽くググってたら、別のモデルを買った人のブログを見つけて、曰く代理店に在庫があるらしいからショップに行って実際に触らせてもらった、とか書いてあって。田舎住みだと一か八かで通販で買わなきゃいけないところを、関東圏が行動範囲に入っている人は実際に触って判断できるの羨ましいなー。

 札幌の某家電量販店も売り場面積半分くらいになって店員も減ってて、気軽に手にとって確かめるような場所じゃなくなったんだよなー。特殊な機材ならともかく、普段使いする家電ですら触ってから買うのが難しい北海道。さすがに誰でも買いそうな商品は店頭販売しているけど、とはいえそんなものは店頭で確認しなくたって必要なら買うだろ、というものもあるし。



 Add additional Airspy R2 sampling rates. · AlexandreRouma/SDRPlusPlus · Discussion #335 · GitHub

Q.「Airspy R2では2.5Mspsと10Mspsが選択できるけど、それ以外のサンプリングレートはどうやったら設定できるの?」

A.「できない。あきらめろ(意訳)」

 そっかぁ……

 RTL2832Uも28.8Mspsでサンプリングして必要なサンプリングレートまでデシメーションしているわけだから、Airspy R2等も必要なら各自デシメーションしてねってことなんだろうけど。というかそもそも大抵の変調方式ってサンプリングレートにそこまで敏感じゃないだろうしな。地デジを始めとしたOFDMだとサンプリングレートが指定されているけど、そういうのは変調方式の中でもごく一部だろうし。

 10Mspsから8.126984Mspsを得るには結構複雑なサンプリングレート変換が必要になる。一番シンプルに変換すると、10Msps x 256 / 315 = 8.126984Mspsだけど、2.56Gspsを経由するから計算コストがアホみたいに高い。ステージを増やして変換すれば最大spsは減らせるけど、とはいえ処理が増える。R2でフルセグを受信するのは大変そう。


 Airspy R2ってSi5351CとかRTCとか、色々乗ってるはずなのに、APIからはそれらがほとんど見えないのが謎なんだよなー。

 一応airspy_si5351c_writeみたいな関数はあるけど、それを使って何ができるのかはよくわからない。ダウンコンバート用のLOはR820T2のPLLを使うはずだから、Si5351CはRF周りとは独立して、おそらくLPC4370のADC駆動用を意図して乗せているはずなんだけど、サンプリングレートを設定することはできない。

 RTCも、for packet time-stampingと書いてあるけど、それを使う方法がわからない。airspy_start_rxに渡すコールバック関数の引数で得られる構造体には、タイムスタンプみたいなデータは入っていないし、RTCに時刻を設定したりする関数も見当たらない。

 当初の計画では将来的なファームウェアアップデートで可変サンプリングレートとかタイムスタンピングに対応する予定だったのかも。ただ、思ったよりも販売数が伸び悩んだので、ベーシックな処理に対応した初期のファームから変更されず……みたいな。さすがに「各自LPCのファームウェアを書いてね」みたいな無責任な話ではないと思うんだけど、現状ではそうでもしないと使えないはず。じゃあ自由度の高いサンプリングレート(Si5351C要求?)やタイムスタンピングを諦めるならAirspy Miniでも良いのか、というと、帯域幅がR2の10MHzに対して、Miniは6MHzまで(エイリアスフリーは9MHzと5MHz)だから、性能的にも若干ミニという。

 R2のRTCは、基板上に乗っているわけではなさそうだから、おそらくLPCに内蔵したもののはず。だったら同じLPC4370を乗せたMiniだってRTCを内蔵しているはずだし、そもそもR2もMiniもR820T+LPC4370という同じ構成なんだから、Miniだって9MHzまで見えたっていいはず。MiniはR2に比べてR820T周りに実装してある部品の数が明らかに少ないから、そのあたりで特性の違いが出ているのかもしれないけど。

 Miniの解説記事によると、5351が乗っていないことでADCの設定の自由度が低い(少なくとも発売当時は低かった)らしいから、R2のADCが5351に依存していることは間違いない。ということは、airspy_si5351c_writeでPLLの設定を書き換えれば、好きなサンプリングレートを設定できるという可能性はありそう? 今度はIFの帯域幅が問題になるけど、それはairspy_r820t_writeで自分で帯域幅を狭めればいいわけで。とはいえ、5351はある程度の計算をすれば素直にレジスタを設定すればいいだけのはずだけど、820の帯域幅ってどうやって設定するんだろうか。一応rtl-sdr.comにR820T2のレジスタ一覧は公開されているし、あるいは何らかのOSSを見ればそのあたりのコードもあるんだろうけど。

 R2で、R820TとSi5351のレジスタ叩いて帯域幅/サンプリングレートを自由に設定できるのであれば、かなり良さそうだよなー。さらに言えば外部クロックとかPPS入出力(フレームに同期したパルスの出力、パルスに同期したフレームの開始点、とか)があればさらに便利なんだけど。5351CはXTALとCLKINを選択できるから、おそらく5351のレジスタを叩けば外部クロックに同期できるはず。CSACとかHMとか、そこまでいかなくてもOCXOとかMEMSとか、確度の高い発振器とか、あるいはSDR受信機に内蔵したTCXO(温度環境厳しめ)ではなく、もう少し安定した温度環境に置いたTCXOをソースにするということもできるし。

 R2をGPSクロックにスレーブさせて使う、みたいな使用例はちらほら出てくるから、もしかしたらクロック入力端子に10MHzを入れれば、自動的に選択されるのかもしれないけど。CLKINにクロックが検出されればそれを使用して、検出されなければXTALを使う、みたいな設定なのかな。

 Si5351のクロックをADCのトリガにしていて、完全にイベントドリブンで駆動して、DMA転送バッファがフルになった時点でUSB転送をトリガする、みたいな挙動になっていれば、外部からADCサンプリングレートを変えても問題ないだろうけど、実際にはADCのサンプリングレートを10Mspsとかに決め打ちして、周辺の動作もそれに応じた挙動にしている気もする。とすると、API(DLL)経由でレジスタを叩いたところで意味はないはず。どういう実装になっているかは実際に試してみないとわからないけど。ファームウェアのソースを読めばわかるだろ、という話ではあるけど、さすがにやりたくないというか、なんというか。

 MiniやR2を買わない理由を探して買わずに済むようにしたいのに、現物を確認しないと除外できない項目が出てきて、結局買わざるを得ない流れになっている気がする。もっと普及した製品なら、軽くググればレジスタを叩いてる人も見つかるんだろうけど、そこまで普及しているわけでもなく。というかそこまで普及していればオフィシャルに対応してくれたんだろうけど。人柱になるべき? 10年も前に発売された製品の??



 rtl_tcpからIQを受信して、IQの絶対値が閾値を超えたら、その前後を含めてWAVに保存する、キャリアスケルチみたいな機能を試しに実装中。

 場当たり的に実装しているので機能を追加する事に無理が出てくる。まっさらなところから作り直すべきかも。

 とりあえず、信号が入ったときだけ保存する機能は動きそうな気配なので、信号の頻度が低い帯域を連続的に記録するよりは、記録メディアに優しい。はず。実環境での動作確認ができてないんだよなー。とりあえず特小をOOKで出してそれっぽく動いているのは確認できるけど、実際の電波信号で良さそうなものが無い。

 433あたりっていつでも違法無線がいるイメージだったけど、最近は減った? 433MHz2.4Mspsでスペクトルを表示していてもほとんど動きがない。



 C#でループ内の任意の場所でbreak/continueを使えるような機能がほしいんだよなー。例えばvar bar=foo switch{0=>'A',1=>'B',_=>break};とか、var foo=flag1?1:flag2?2:continue;とか。現状だとif...elseで分岐するかswitchで分けるかしか無くて、ちょっとめんどい。switch文だとループを抜けることを目的としたbreakは不可能だし。三項演算子とかswitch式でbreak/continueが使えれば便利だと思うんだけどなー。

 breakが任意の場所で使えるようになった場合、邪悪な使い方だと、StreamReader sr;StreamWriter sw;があったとして、while(true){sw.WriteLine(sr.ReadLine()??break);}みたいに書いて、null合体演算子でsr.ReadLine()の戻り値を評価して、第2オペランド(break)が評価されたらループを抜ける、みたいな応用もあり得る。breakは戻り値の型が違うけど、??throw new Exception()が許されるならbreak/continueも許されそうな気もする。今のところはwhile(true){var line=sr.ReadLine();if(line is null){break;}sw.WriteLine(line);}とかstring?line;while((line=sr.ReadLine())is not null){sw.WriteLine(line);}とか、変数を1個噛まさなきゃいけない。

 最近のC#はwhile(!sr.EndOfStream){NotNullableFunc(sr.ReadLine());}みたいにすると警告が出るのが、しょうがないとはいえ、使いづらいのよなぁ。


 T[]に対してAsSpan(range)があるのにSpan<T>に対してSlice(range)が無いのが地味に不便。Span<T>spanに対してspan[range]すればいいって話なんだろうけど、T[]arrayに対してarray[range]しちゃう怖さがある。