2025年12月24日水曜日

小ネタ



 北海道宇宙レボリューション【後編】宇宙のまちづくりが進む大樹町に突撃!町長が語る衝撃の未来像&町の不動産を沸かせる意外な宇宙マネー事情とは! - YouTube







 PS2用のLinuxなんてのがあったのか。

 ぐぐってみると、今でもPS3にLinuxを入れて遊んでる人はちらほらいるらしいな。当然ながら、メジャーな遊び方ではないようだけど。



 GPS信号妨害で混乱 カーナビ6時間異常―中国・南京:時事ドットコム

 最近は配達とか相乗りとか、色々なところで位置情報が使われてるから、特に市民生活への影響が大きいわね。えてしてそういう用途はコストに敏感だから適切な代替手段も無いし、ユーザー側で頑張ってもらうのも難しいし。


 X インスタ SNS投稿写真 特定リスクに注意!生成AI画像解析ですぐに居場所が…投稿する時のポイントは? | NHKニュース | 生成AI・人工知能、IT・ネット、デジタル深掘り

 最近だとAIに画像を見せればすぐに場所を特定できるようになってきているから、市民生活に近い範囲だとGNSSに依存しない測位もできそうではあるけど。地図アプリでカメラにアクセス権渡して画像をサーバーに送って向こうで解析、とか、やろうと思えばできそう。やってほしいとは思えないけど。でもまあ中国ならそのうちどこかの企業がAIベースの測位サービスを始めて普及しそうだな。



 表舞台に上らなかった「世界初」のプロセッサ、MP944:マイクロプロセッサ懐古録(11)(1/2 ページ) - EDN Japan


 中東あたりを経由してF-14 CADCを密輸して分解する人とか出てこないかなー。ebayとかに出てるならともかく、戦闘機の部品を真面目に買おうとするといったいいくらかかるのか。。。よほどひどい壊れ方をしていない限りは、貴重な交換部品は売りたくないだろうしな。あるいは、すでに自国産のアビオに換装して捨ててる可能性もあるけど。

 米海軍のF-14ってどっかに残ってないんだろうか? あれだけ大量に廃棄したんだから部品の1つや2つどっかにありそうな気もするけど、正式に運用を終了した以上は交換部品の要求とかもないだろうし、適切に廃棄したんだろうか。

 Wikipediaを読む感じ、ちゃんと管理してあるのか、ずさんに管理しているのかはともかく、ある場所にはありそうな感じ。とはいえ、いちおうイランがF-14の運用を続けている間は、リバースエンジニアリングに繋がりそうなアビオ系の情報公開はされなさそうだな。相手は現物を持ってるんだからそれを調べればわかりそうではあるけど、だからといって積極的に出す理由にはならんし。



 米陸軍のLRHWダークイーグルは射程3500kmと新たに判明、炸薬量僅か13.6kgの意味を推定(JSF) - エキスパート - Yahoo!ニュース

 うちの近所を含めて、陸自駐屯地をいくつか挙げて射程範囲を示しているけど、これ陸自が買うみたいな話あったっけ? それとも米陸軍のMRBMないしIRBMを陸自駐屯地(or弾薬庫)に置くみたいな話? あるいは単に適当な地名をあげて範囲を示しているだけかもしれないけど。それなら中国側に中心をおいて「この円内の好きな場所に置けばここまで届くよ」とか書いたほうがわかりやすい気がするが。


 炸薬30lbってのもちょっと中途半端な気がしないでもないような。リーサリティエンハンサみたいに金属片を低速で打ち出すなら10kgも必要だろうか? かといってじゃあ例えば1kgでばらまきますとか言われても足りない気もするけど。あと、弾頭に対して極端に軽い金属片を撒いても、そんなのが効く目標にわざわざHGVを使うってのもなぁ。通常弾頭のCMでは突破が難しい場所に突っ込ませたいということだろうし、厳重に守られている場所なら柔らかいかも……という期待はあるのかもしれないけど。

 ペレットにしろロッドにしろ、大型の対空ミサイルであれば、航空機の与圧部に穴を開けるとか構造を切り裂くとか、あるいはエンジンにペレットが突っ込めばタービンを破壊できるみたいなことが期待できるだろうけど、それを対地目標に使って効果があるとも思いづらいのだが。ロッドで地上車両を切り裂くなら車両1両を認識して突っ込むシーカーが必要だし、ロッドで切れるなんて非装甲車両程度だろうから、それくらいなら誘導能力を100ftくらい改善させれば主力戦車を含めて大抵の車両には突っ込んで破壊できるけど、結局その程度の目標にHGVを使うだろうかという問題に回帰するし。

 硬目標に対しては純運動エネルギーで突っ込んで、もう少し柔らかい目標に対しては再突入体を炸薬で割って破片を散弾にして面的に使う、みたいなことは考えられそうだけど。V型成形炸薬みたいなものを内側に張り巡らせてあって、1個数百g程度の破片を1000個くらいばら撒いて、運動エネルギーで損害を与えるにしても、いくら超音速で突っ込んでくるとはいえ、非装甲車両が並んでいる場所に突っ込ませたって実際に被害を与えられるのは多くても数十~、多少の運動エネルギー程度なら修理して再稼働できると考えると、結局同じ問題に回帰するんだよな。

 航空機とか剥き出しの弾道ミサイルみたいに、修理コストが高い(容易に修理できない、破損したものを安易に使えない)目標が並んでいる場所ならそれなりに効果はあるかもしれないけど、戦争が起こりそうな状態になればすぐに分散させるだろうから、あんまり使いやすそうな気もしないし。防空システムで厳重に守られた大型の飛行場に並べられた航空機を多少なりともダメージを与えて猶予を稼ぐ、みたいな感じなら、使えないことがないことはないかな、といった感じ? 大型爆撃機で無誘導爆弾をばら撒くような事態も考えづらいけど、それこそCMやHGV、ASMの発射母機みたいに使うことを考えると、高価なHGVを何発か撃って大型機の稼働率を下げれば大型の対艦ミサイルが減って海軍が動きやすくなる、みたいなことはあり得るのかな。



 アメリカがトランプ級『戦艦』デファイアントの建造計画承認を発表、排水量3万5千トンのミサイル戦艦(JSF) - エキスパート - Yahoo!ニュース

 日本で「現代に戦艦(battleship)なんて存在しねーよ」論をやっている間に変なところから援護射撃が来たな…… 別に援護しようなんて気はサラサラないだろうし(タイミング的にも無関係だろうし)、どちらかといえば日本がイージス・システム搭載艦を作ろうとしているのを見て「アメリカのほうがデカいやつを作るべきだ」とか言い出したんだろうけど。それとも日本で戦艦云々が話題になって以降のここ数週間で「戦艦が欲しい!」とか言い出して絵を書かせたんだろうか? トランプならやりそうな気もしないでもないけど……

 Mk45を横並びに2門載せて副砲にするとかすさまじいね。ミリオタが妄想した最強兵器(攻撃力だけ考えて実用性ガン無視)って感じ。

 この大きさでMk41が128セル(タイコンデロガと同数)ってのはちょっと心もとない気もするけどなぁ。本格的な戦力投射には大型のVLSを使うにしても、Mk41にもトマホークとか色々乗せるだろうし。もうちょっと防空用のミサイルが欲しい感じはする。

 対空レーダーが中途半端に低い場所についているように見えるのもちょっと気になるな。なんで一番上に積まなかったんだろう? 重心が上がりすぎるとかちゃんと理由があるのか、あるいは。


 ろくに装甲もない(砲撃での殴り合いに耐えられない)こんな船は戦艦じゃねぇ、みたいな話は、あんまり意味ないような気がするけどなぁ。今の時代汎用駆逐艦だって遠洋に出たり海外派遣されたり色々使われているわけだし、フリゲートだって昔は駆逐艦よりも大きなものを指していたのに今では駆逐艦よりも小さなものを指すし、名前が指す対象なんて時代に応じていくらでも変わるものだと思うけど。巡洋艦(CG)より明らかにでかいから戦艦(BBG)と分けるのも無理ないと思うし。


 WWIIの戦艦が航空機の発達で役割を終えた、だから大型艦は航空攻撃等に脆弱だから無防備だ、みたいな話は、防空システムが発達すればある程度は覆せそうだけどな。どうせ小型艦(アーレイ・バーク級とか)だって防空戦闘は必要なわけだし、複数艦を分散させて個別に防空するくらいなら、敵の戦力を1箇所にあつめてまとめて防空戦闘する、みたいな考え方もできなくはない。まあ、相手からしても各個撃破する手間を省いて戦力を最大限投入できるようになるわけだけど。

 水上艦だと低空目標(対艦ミサイルとか)で攻撃されると困るけど、V-22を運用(&格納?)できるくらいの巨大艦なら、V-22にAESAモジュールをつけて空中哨戒機に仕立ててE-2D代わりに使ってもいいわけだし。

 過去のミサイルキャリア構想が実現しなかったのはコストを正当化(議会を説得)できるだけの材料を海軍が提供できなかったからだろうけど、止めるはずの大統領が最前線でゴリ押しするならワンちゃんあるかもしれんぞ。



 昨今の「プログラム次第でもう少しマシになったんじゃないか」という感じの話だと、シーケンス通りに立ち上がらない場合はアイドルモードで燃やせないか試す、みたいな機能はあっても良さそうな気がするな。アイドルモードで燃やすにしてもガスで押す必要はあるから内圧が抜けた場合に燃えるかどうかはともかくとしても。第1回が立ち上がらないならともかく、第2回燃焼ならすでにある程度の速度は持っているわけだし。第2段にダメージが有る時点で衛星側の健全性の問題もあるけど、それでだめでもどうせ近地点は低いから遠地点を上げたってそのうち落ちるだろうし。

 フルスペックの準天頂衛星システムの構築が遅れて「他国に依存しない測位」が遠のく、ってのは、沖縄に地上局を多数置いている時点で話半分だろうという気がするからなぁ。関東あたりに持ってこようとすると衛星側にだいぶ手を入れる必要があるだろうから数年で実現できるものでもないだろうし。いざとなれば南半球側の測位サービスは停止するとかになるのかもしれないけど。オーストラリアあたりにも地上局を置けば日本の南側がきな臭くなっても南半球でサービスを継続できるけど、他国に依存しない云々とは相性が悪そうだ。自国が依存しているわけじゃないからノーカン、の考え方もあるけど。



 JAXAのプレスキットの中のH-IIAの説明で「50機中6号機を除いてすべて成功し打上げ成功率は約98.0%」みたいな記述が出てきて、49/50=0.98だから「約」は不要なのでは?という気が。これが50号機の打上げ前なら「49機中48機が成功で打上げ成功率は約98.0%」は正しいんだけど。



 最近JAXAが大なり小なり関わっているゲームが何本か公開されているけど、どのくらい関わっているのか書いておいてほしいよなー。JAXAが関わっていると謳っているのに、物理法則を盛大に誤っているゲームとか、そうでなくても技術的に正確とは言い切れない描写とかを見かけたりするとな。。。



 わりと大きな音がした機体

 Fr24に機影無し、M-S有り。スコーク1200。インコヒーレントっぽい。近い場所を飛んだせいか、M-3/A,Cも振り切れてるし、M-Sもだいぶ強い。



 PoEでちょっとした電力(1Wとか、5Wとか)を簡単に得たいなと思って軽く調べてみたんだけど、PoEの受電って真面目にやるとだいぶ面倒なんだな。

 初期の仕様では2種類の給電方法を規定してあって、2ペアケーブルでデータと電力を流すのがAlt.A方式、4ペアケーブルでデータと電力を分離するのがAlt.B方式。給電側(PSE)はAlt.AとAlt.Bのどちらかに対応すればいいが、受電側は両方に対応する必要がある。さらに、イーサネットケーブルはストレートだけでなくクロスケーブルもあるから、極性が反転するのでダイオードブリッジも必要。受電側はAlt.AとAlt.Bの両方に対してダイオードブリッジが1個ずつ必要で、供給電圧は50V前後なので基本的にリニアレギュレータはNGで、高電圧を受けられるDCDCが必要。今でこそ高耐圧のDCDC Buckコンバータはそれなりの入手性があるけど、20年以上前だとかなり大変そうだ。

 en.wikipedia曰く、Alt.Aはクロスケーブルで極性が反転するからダイオードブリッジが必要だが、Alt.Bは極性が決まっているという書き方(暗にダイオードブリッジが不要と読める)だけど、現実には4ペアともクロスしているケーブルがあるから、結局Alt.Bもクロスケーブルが使われる可能性がある場合はダイオードブリッジが必要なはず。

 一番低コストに簡易PoE受電を行うなら、7,8ペアを基準(GND)にして、4,5ペアをダイオード1本で逆電圧保護、適当なDCDCで降圧、みたいな感じ? ただ、DCDCやディスクリートダイオードを入れるならダイオードブリッジぐらいケチるなよ、という気もする。ダイオードブリッジを1個入れるならもう1個もケチるなよ、という気もする。結局、フル機能のAlt.A/B両対応PDになる。


 受電回路はそれでいいとして、コネクタ側が大変そう。

 パルストランス内蔵コネクタの回路図を見てみると、ケーブル側の中点が出せないものとか、出せても75Ωで終端されているとか、そういう製品が多そう。物によっては予備ペアを短絡させてそれらをペアで引き出せるものもあるから、これならAlt.Bで使えるけど、物によってはそれらが75Ωで終端されているものもあって、これはPoEには使えない。

 少なくとも、秋月で取り扱っているパルストランス内臓のRJ-45は、中点はすべて75Ω終端かつケース内でGNDにAC結合かな(PoE対応のコネクタも売っているけど、在庫限りで残り13個)。

 かるくググった範囲だと、パルストランス内蔵PoE対応RJ-45コネクタって結構少なさそう。トランスレスのコネクタに外付けのトランスで中点を引き出すみたいな方法もあるけど、実装面積とかで色々と不便になりそう。

 市販のネットワーク機器でも、低価格な製品ではPoEの対応が進まないのって、このあたりにも原因があるのかな? かつてのPoE非対応なコネクタアセンブリが安価に生産されているから、PoEに対応するにはわざわざ高価格なコネクタを採用して、高耐圧なDCDCを追加して、みたいな感じで。


***


 OFDMのガードインターバル/サイクルプレフィックスの相関値、サンプルレートエラーだけでなく、ダウンコンバータの周波数エラーも含んでいるから、この位相だけでサンプルレートだけを抽出することはできない。



 パイロット信号を使用した等価処理で、切り出し窓がずれるとコンステレーションが小さくなる挙動がある。

 前方にガードインターバル/サイクルプレフィックスが付与されているから、窓が前にずれる場合は振幅方向には影響はないはず(複素平面の回転はある)。後方にはすぐに次のシンボル(GI)が来るから、切り出し窓が後ろにずれるとシンボル間干渉の影響が出始める。

 SISでパイロットの振幅が下がると、コンステレーションは膨らむ方向に影響があるはず。しかし実際には縮小している。不思議。可能性としては、パイロットの振幅が低下する以上に、データキャリアのSISによる縮小のほうが大きい、とかはありえるか。

 実際のところは有効シンボル長は8192(8.127Msps)とか10080(10Msps)とかだから、切り出し窓が10程度ずれたところで極端に大きな影響があるわけではない。とはいえ、QAM64みたいに振幅に敏感な変調方式だとちょっと気になる。

 前回フルセグを復調したときにコンステレーションの大きさが微妙にずれていた現象があったはずだけど、SISの問題だったのかも。



 1フレーム全キャリアのコンステレーション

 理想的とまでは言えないけど、それなりにまとまっている。

 だいぶ苦労したけど、チートしてTSが取れた。チートと言っても、数年前に自分が書いたソースコードから計算式を1個引っ張ってきた程度だけど。それ以外は、誤り訂正(巡回符号・畳み込み符号)以外はほとんど全部書き直したかな。やはり数年といえども書き方はだいぶ変わったので、より現代的(個人的)なコードになった。


 復調できなかったのは、時間インターリーブの遅延時間が誤っていたのが原因だった。時間インターリーブ長が不一致の場合、単純にバイト位置がズレるような挙動を示す。この際、エネルギー拡散を未解除の場合は同期ワード(47h)が誤った位置に見えることがある。一方、エネルギー拡散を解除した場合は同期ワードが見えなくなる。正しく復調できた場合、エネルギー拡散が未解除の場合はデータ部は乱雑なままだが、拡散を解除した場合はヌルパケットのFFh埋めで水平方向のパターンが見える。

 とりあえず、エネルギー拡散は解除せずに事を進めて、同期ワードが正しい位置(204バイトブロックの末尾)に見えるようになったらおそらく正しい、それ以外の場所に見えたら時間インターバルが間違っている、それも見えなければ別の場所が間違っている。同期ワードが正しい位置に見えたらエネルギー拡散を解除して、FFh埋めが見えればOK、みたいな感じで作業したほうが良さそう。

 先に部分受信だけ復調できて、これが動いてるからエネルギー拡散もOKだろう、とか思ってやってると、見えるはずのものも見えなくなる。


 R2でサンプリングしたデータの場合、S16C形式(4byte/サンプル)を使うはず。C#で処理する場合はComplex32で処理するのが楽。この場合は8byte/サンプルになる。OFDMを復調してコヒーレントモードで等価までできれば振幅を正規化できるから、浮動小数点のダイナミックレンジは不要になる。

 例えば80倍でスケーリングすれば-128 - +127のS8で-1.6 - +1.5875の範囲を表現できる。ISDB-TはI/Q軸で分離すればDBPSK系の±4/3(1.33...)が一番振幅が大きいから、分散を考えても多少の余裕を持って表現できる。分散が大きいとサチるけど、サチったところでDBPSKに振幅の意味はないから、問題ない。そんな事を言い始めるとQAM64を持てるギリギリまで拡大すればいいだろ、ということになるんだけど(正規化済みなのでパイロット信号の振幅情報は不要)。

 とにかく、S8C形式なら2byte/サンプルになる。ガードインターバルも捨てられるから8/9まで小さくなる。不要なキャリアも捨てるなら、5617/10080でさらに56%まで小さくなるから、S16C→S8Cと時間軸・周波数軸で不要なサンプルを削除する分で元の22%程度まで小さくなる。それでも元が40MB/sだから8.8MB/s程度にしかならないけど。

 キャリア1本ずつを保存するなら意味はないけど、WAVに合わせてU8Cで保存してもいい。実用的な意味はほとんど無いけど、後処理(後述)でテーブルから拾う時にオフセットを考えなくて済む。


 RS誤り訂正はZXingのやつを使って(だいぶ使いづらい。。。)、部分受信は誤り無し、フルセグはビット誤り率3.5e-4くらい。例えば188バイトのパケット2個に1ビットくらいの割合。RSパリティは16バイトだから少なくとも8bit/パケットの誤りは訂正できる。

 8bit正規化の形を使えばI/Q軸それぞれが-128 - +127の範囲になるから、オフセットすれば0 - 255の範囲になる。これでテーブルを引けば比較的軽い実行コストでビタビ軟判定ができる。コンステレーションは間隔2で配置されていて、それが/(42^0.5)でスケーリングされていて、正規化後に80倍するから、シンボル間距離は約25になるので、4.6bitくらいの拡張。そうやって復調してみると、RSビットエラー率は2.4e-5くらいまで下がって、誤り率が1桁以上改善する。軟判定の処理利得かなりでかいな。

 同様に部分受信(QPSK)も軟判定にしてみると、RSはBERゼロで変わらず、ビタビの推定誤り率は上昇(悪化)する。おそらく、硬判定の場合は象限だけ見ているからゼロイチに量子化できて、それで誤りが無いから最小の誤り率になるが、軟判定の場合は正しいコンステレーションの位置からずれたシンボルについては若干の誤りとして計測されるからだと思う。これは自作のビタビデコーダの特性もあるだろうし。おそらく隣の場所にまで飛ぶほど劣悪な条件で比較すれば、RS誤り率は改善すると思うけど、少なくとも正しい位置で見えている場合は硬判定のほうが数値の見かけ上は良くなる。あと、符号だけ見ればいいから、処理も比較的楽。C#の場合テーブルを引くと分岐が挟まるから、符号を見るほうが早い気がする(ストールしなければテーブルのほうが早い可能性はあるけど)。



 フレームごとに切り出し窓の位置・速度をグラフ化

 移動速度(左軸、サンプル/秒)、ウインドウズレ(右軸、サンプル)。

 ISI対策で10サンプルオフセットを狙っていて、クロックエラーで移動する分を吸収してのこぎり波状になる。クロックエラーは-4e-3sample/sec程度で、10Mspsなので、-0.4ppm程度かな。


 階層化レイヤー毎のビタビのエラー(任意の単位)とRS復号のビットエラー率

 Aビタビ(硬判定)は800ちょっとで理論値に張り付き、Bビタビ(軟判定)は1300程度で安定(理論値は1088)。レイヤAはビタビでエラー率(理論値との差)がゼロなのでRS復号もゼロに張り付いている。レイヤBは2e-5から3e-5程度で振動。188バイトあたり少なくとも8bitの誤りを訂正できるから、500e-5程度までは復元できるので、十分に低い誤り率で推移している。



 地震の時にサンプリングしたIQも復調

 中心部はだいぶ綺麗にコンスタレーションが出てる。ただ、周辺部のコンスタレーションは隣と繋がっているから、デマッピングエラーはありそう。実際、QAM64のRS BERは6e-5くらいある(先のBERもそうだけど、たぶん実際より92%くらいの値が出ているので、より正確にはさらに1割くらい高いはず)。17Mbps程度として6e-5なら1秒あたり1kbitくらい誤っている計算。

 このときはスクランブルが解除されていたので、TSをffmpegとかに投げてMP4とかに変換すればHDで再生できる。


 とりあえず、Airspy R2で広帯域のデジタル変調を受信できることは確認できたので一安心。ISDB-Tはパイロット信号が大量に入っているのでわりあい復調しやすい方ではあると思うけど。



 Visual Studioのソースコード内で書いた画像とかのパスにマウスオーバーするとプレビューする機能、結構前からあると思うけど、わりと邪魔な機能な気がする。VSがリソース(ファイル)にアクセスするから、外からアクセスできなくなる。ソースコードでパスを指定しているということは読むか書くかだけど、書きたい場合にVSが占有しているとブロックされる。そこそこ長い処理をやったあとでログを書き出そうとしてVSにブロックされて結果が全部飛ぶとか困るんだけど。

 ぐぐってもそれっぽい情報が出てこない。Copilotに聞いても的外れな回答が出てくる。どうやって切ればいいんだろう。



 低レベルな言語だと例えばfor(int bit=0x100;(bit>>=1)!=0;){...}みたいな処理はビットシフトした結果を分岐に使えて良さそうだな、みたいな雰囲気があるけど(実際はどうか知らないけど)、C#でもそういうのって効果あるんだろうか? それとも(CでもC#でも)for(int bit=0x80;bit!=0;bit>>=1){...}みたいに書いてもいい感じに最適化してくれるんだろうか? そんなところにこだわるよりもっと早くなる場所たくさんあるだろ、というツッコミは無視するとして。


0 件のコメント:

コメントを投稿