2026年10月21日水曜日

小ネタ



 半裸の鳥頭に比べればまだ常識的な格好よな。




 最近のFormlabsってホビー向け(個人で買える価格帯)からは撤退していたけど、また戻ってきたんかな? /* ホビー向けの樹脂SLSを開発中だった会社を買収したアレはどうなったんだ */




 コールドガスでジャンプしたり軟着陸したりできる車だそうだ。化学エネルギーを使わないので特別な推進剤が不要、コンプレッサーも内蔵していて外部支援無しに(電力ライン程度で)再充填できる、みたいなことなんだろう。これだけの推力を出そうとするとアホみたいな超高圧大容量タンクが必要だろうから、再充填にはめちゃくちゃ時間がかかりそうだが(外部からLN2を「給油」したりできるのかもしれないけど)。

 こういうバカみたいな遊びも大真面目にできるのは純粋に羨ましいな。仮にトヨタとかホンダがこういうコンセプトで試作だけでもしようと思ったら何が必要だろう? トヨタなら水素用に超高圧ガスタンクのベースラインは持ってるかもしれないけど、大容量のバルブやノズルの設計まですぐできるとは思えない。テスラ/SpaceXならその辺に座ってる技術者に「こういうやつを作りたいんだけど」って声をかけたら「じゃあこの部品を使えばいいよ」位の話はすぐ通りそう。本田技研ならRCSの制御はできるだろうけど、だからといってそれを車に積めるかというとなぁ。そもそも日本国内で合法的に試作できるかという点もあるだろうし。


 しかし、これが「空飛ぶクルマ」と紹介されているのを見るとちょっとアレだな。第二次世界大戦の潜水艦みたいな感じ。「空飛ぶクルマ」って、地上を走る車両を空に飛ばすわけじゃなくて、車のように気軽に使える航空機を意図しているものだと思うんだけど。スポーツカー的なレンジだとHondaJetとかだろうし、SUVみたいなあたりだとR-44あたりだろうし、徹底的に切り詰めるとウクライナのアレみたいなやつになるんだろうし。

 もうちょっと発表が早ければ、ワイスピで出てきそうな感じではあるか。でも、あの作品だと市販車でビル間を飛んだり、あるいは普通の車にロケットを追加して極端な使い方をするから面白いのであって、「空を飛べますよ」と言って売ってる車で空を飛んだりしても、F-150でホームセンターに買い物へ行くような、何の面白みもないシーンにしかならないんだろうな。「(テスラ)ロードスターで空を飛ぶの? メーカーの想定用途じゃん」。

 そういう意味では、ロードスターはFalcon Heavyで飛んだ時から、SF的な大衆作品では使えなくなってしまったんだろうな。まるでSFみたいなことをやるとSFに使えなくなるのか。そりゃ、SFが面白いのはフィクションの世界を見せるからであって、我々の世界をそのまま「サイエンスフィクションです」と提供したって面白いわけがないか。それで言うと、今後アクション映画でロケット付きの車を登場させると「あー、テスラのやつね……」ってことにもなるのか。

 Boom Tech.のCEOの子どもの話とかもそうだけど、今後数年くらいで映画を見始めるような世代はワイスピを楽しむのも難しくなってしまったんだな。まあ、技術革新の歴史としては、創作物を時代遅れにしていくのが正しい方向ではあるんだけど。日本の場合、鉄腕アトムとかドラえもんとかガンダムとか、わりと振り切ったものが多いから、その点では当面は安心して見ていられるかな? ドラえもんの道具くらいの感じだと、一部は実際にそれらしいものが作られ始めてはいるし、人型ロボットもだいぶ近づいてきた感はあるけど。





 うるう時間で調整が数千年単位になると、その時代では、例えば我々の時代の朝8時が9時だったり、1時間ズレて生活しているのが当たり前だから、いきなり「明日から社会を1時間早くします」とか「1時間遅くします」ってのはさすがに影響が大きすぎる気がする。1時間の移動は夏時間の調整程度ではあるとはいえ。

 グリニッジ子午面の太陽通過で正午を決めなくなると時刻の定義は天文時から純粋に原子時に変わるだけで、それ以降もわざわざ天文時に合わせる必要はなさそう。そのまま時間のズレが増えていけば、数千年、数万年後には0時頃に日の出や日の入りが観測される、みたいな。コールドスリープで1万年後とかに飛んだ人間は時計の読み方に困るけど、連続的に生きている人からすればそれが日常になる。

 数字全体を移動する(例えば正午を12時ではなくする)のは、現代を生きる我々からすればそんなことは許容できない、みたいなことになるだろうけど、何千年も経てば気にしないはず。我々(主に英語圏の人類)が使ってるカレンダーだって10月がOctだし12月がDecだぞ? 2ヶ月もズレてるのに誰も文句を言わないだろ。2000年も経てばそんなものよ。慣習として「歴史的にこの数字はこの時刻に割り当てられている」として記憶されていれば良い方で、多分その時代になれば誰も何も気にせず14時とかに昼食を食べたりするはず。学校で「今日はやけに腹が減って13時に早弁しちゃったよ」とか、歴史に詳しい友達が「おまえ紀元前の人間かよ」と突っ込んだりとか。

 あるいは、現在でも巨大なダムで地球の自転が変わるみたいな話もあるわけだから、数千年くらいのタイムスケールなら地球の回転速度をうまいこと調整する技術を人類が作るという可能性もあるが。角運動量を直接出し入れするのは大変だから、質量の標高分布を変えて角運動量を保存したまま回転速度を調整する感じになるのかな。遅くするには質量を上げればいいわけだけど、長期的に見れば地球の自転は減速方向だから、加速するように調整しなきゃいけない。となると、山を崩して海を埋め立てる、みたいな話になる。核融合でエネルギー問題を解決してAIで無人土木工事が実用化すれば、数千mの山を切り崩して埋立地を作る、くらいは可能だろうけど、とはいえ。


 電波で直結できなかったアジアは国際原子時に接続されるようになったかなり最近まで天文観測で時刻を決めていたわけだけど、UTCも結局天文観測でTAIとオフセットしていたわけだから、閏秒の廃止によって人類は有史以来続いた太陽で時間を決めていた歴史が終わるのかな。VLBIで時計を結合するみたいなことは続くのかもしれないけど、それはあくまでも間接的に参照しているだけであって、絶対的な時刻を決定する基準にしているわけではない。X線パルサー航法みたいなのが実用化されればまた天文で時刻や位置を決める時代が再来するんだろうけど。



 ダイハツがアンモニア燃料の軽エンジンを開発、プラズマで水素を生成し燃焼促進:Japan Mobility Show Bizweek 2026 - MONOist

 燃焼ベースのゼロエミッション化。トヨタは水素を燃やしているけど、液体水素は極低温かつかなり高い圧力でハンドリングしている。アンモニアなら2MPa弱で常温で液化できる。このエンジンは燃焼をアシストするために水素を混ぜるが、アンモニアの分解で作れる。始動時は外部からのエネルギー供給で、エンジンが温まればその熱を触媒に与えて。

 小型車のゼロエミッション化だとコンパクトに作りやすいアンモニアは便利そう。もうちょっと小さくして、バイクくらいの小さいモビリティのゼロエミッション化でアンモニアを使うみたいなことってできないんだろうか? でもそれくらいの規模なら手で持てるくらいのバッテリーパックを交換すれば済むから、液体燃料を使う利点はあまりなさそうだな。

 逆に航空機向けとか? いくらLH2よりはハンドリングしやすいとはいえ、MPaオーダーの燃料タンクかぁ…… 航空機の電動化を批判する文脈では「燃料は燃やせば機体は軽くなるが、電池は消費してもデッドウエイトになるだけ」というのがあって、そういう意味ではアンモニアは便利そうではある(LH2は極端に軽いしタンクがめちゃくちゃ重たいから、本質的には電池と同じ)。



 South Pole Foucault Pendulum

 2001年に建設中のアムンゼン・スコット基地の階段室でフーコーの振り子の実験を行ったときの記録。

 振り子にエネルギーを与える機構がなかったから、数時間ごとに振り直す必要があって、回転速度の観測値は24時間±50分だそうだ。この記事では24時間というのが出てくるけど、実際には太陽日ではなく恒星日だからおよそ23時間56分のはず。


 フーコーの振り子で安定化した機械式時計って作れないんだろうか? 通常の振り子時計は振り子からシンプルなメカニカルリンクでガンギ車と接続しているから、1次元的な振り子(平面振り子)にしか対応できない。フーコーの振り子のように球面振り子で時を刻むためには何らかの工夫が必要になる。あと、振り子へのエネルギーの供給も問題になる。

 とはいえ、別にさほど苦労せず作れそうな気もする。例えば支点の真上に磁石を置いておいて、振り子の延長線上の磁石が接近して引っ張られるとガンギ車が回る、程度のものでいい。一定以上の力が加わって下に引っ張られるとそれに反応して磁石が引っ込むような形になっていれば、振り子が中心に向かって進むときには磁石が引き合って、一定以上の範囲に近づくと片方の磁石が離れるから、中心から離れる動きの場合は磁石による引力が少なくなる。球面振り子に対応したタイミングの測定とエネルギーの供給はこれでできるはず。磁石の引力みたいな微妙な力を検出しなきゃいけないのが面倒そうではあるけど。あとは、磁石を使うと渦電流でエネルギーが散るから効率が悪い(頻繁におもりを巻き直さなきゃいけない)とかは懸念される?

 フーコーの振り子に連動して文字盤が回転しても面白そうだけど、それは機構が面倒になるだろうし、1日より少し遅い周期で1周する文字盤は見づらそうだ。ビッグベンみたいに4面とかの文字盤を回転させて見やすくさせるとかも可能ではあるだろうけど。しかし振り子に影響を与えずに位相を調整するのはちょっと大変そう。下手にプローブを当てるとそれで振り子の垂直軸の角速度が影響を受ける。なんだか量子論じみた話になってくる。

 比較的小さいフーコーの振り子なら支点の上に時計をつけてもいいし、支点を見上げるのが大変なくらい巨大なら振り子の下に時計を置いてもいい。ただ、下に時計を置く場合は振り子自体を磁石に反応させるわけだけど、その場合は磁石の運動と地磁気が変な相互作用をする怖さはある。エネルギーを与えるためには少なくとも振り子は磁性体で作らなくてはいけないから、完全に影響を排除するのは難しい(磁石が上にある場合は支点との距離が短い分で移動距離(∝速度)が小さくなるから地磁気との相互作用は少なくなるはず)。

 フーコーの振り子は決まった速度で垂直軸周りに回転するから、それを時計の長周期成分として使うことは考えられる。とはいえ、回転速度はsin(lat)で決まるから、自由に使えるわけではない。1周回ったら12時間、みたいな綺麗な表示は難しい(緯度30度線上だとできる)。


 日本だと屋久島の南西にある口之島がちょうど北緯30度に土地がある。

 北緯30度線モニュメント – 十島村観光・定住情報サイト

 戦後、北緯30度以南が米統治下になり、口之島もアメリカが統治していたので、日本復帰後に30度線のモニュメントを置いたらしい。


 フーコーの振り子を極点に設置すると約23時間56分で1周するけど、時計として(短針代わりに)使おうとすると24時間で1周してほしい。これを緯度に換算すると85.7度くらいになる。このくらいの微妙な緯度にはちょうど良さそうな基地はなさそう。



 Beast of Reincarnationをプレイ中。


 こういうゲーム(銃メインじゃないやつ)は慣れていないので操作がちょっと違和感。まあ、慣れるしかない。

 慣れている人からすれば問題ないんだろうけど、こういうゲームに不慣れでいきなり触ると操作方法が全くわからなくて詰む。攻撃ボタンを押す回数には意味があるとか、防御ボタンを押すタイミングには意味があるとか、そういう基礎知識が皆無でいきなりフィールドに放り出されると、ボコられ続けるし、わからないままに敵の攻撃3連撃を受けて死に戻りする。

 難易度NORMALだと全く進めないけど、とはいえSTORYだと簡単すぎる。というか、STORYの場合はボタンをガチャガチャ押すだけで進めてしまうので、成長が得られない。STORYとNORMALの間にTRAININGみたいな難易度が欲しい。

 例えばスト6のトレモみたいな感じで、タイムラインが表示されて、回避やパリィのボタンを押していた期間と敵の攻撃判定のタイミングがわかる、みたいな機能があれば、超初心者が始めるのは便利な気がする。このゲームの世界観なら世界観に沿ってトレモを作ったり、あるいは、武器選択で刃引きした剣を持ったらクゥと模擬戦ができる(時系列のメーターが表示される)みたいな感じでトレモ的な機能がほしかった。

 プレイヤーの操作中、ずっと抜刀して歩いているのがあまり好みじゃない。あと、フィールドでもモフモフと触れ合えるようなギミックが欲しかったな。欲望を垂れ流すならどこかで20式を拾いたかった。


 作品としては、いろいろな作品のフレーバーが感じられる。でも極端に寄りすぎることもなく、元の作品の尖った部分は削ぎ落として、バランスはかなり良い。

 ゲームシステムに不満がないわけではないけど(主に細かい快適性の部分)、ゲームとしては良かった。



 ネタバレというような内容でも無いと思うので気にせずに書くけど、途中で太陽、月、地球がどの順番で生まれたか、というような謎解きがある。多分こうだろ、というような順番で適当に並べたらうまく行ったのでそれが正解だったんだろうけど、しかし恒星進化(含惑星)の順番としてそれは正しいんか?という疑問。そもそも天体がどの時点で「生まれた」とするかにもよるけど。

 物理的に質量がある程度集まった時点で考えるなら、中心に濃集した水素が太陽(の種)として生まれ、残りカスのディスクが濃集して惑星(の種)が生まれ、その後軌道が安定化する前に惑星衝突で衛星が生まれ、という順番なら、太陽→地球→月という順番になる。

 一方で、ディスクの残りカスが存在していた時点(惑星が形成された時点)ではディスク中心では恒星活動はいまだ始まっていないはず(強い放射が始まるとガスが吹き飛ばされるから惑星が作れない)。そう考えれば、地球→太陽→月という順番になる。

 ある程度安定した状態、つまり太陽であれば核融合反応による放射が表面から発生し、地球や月であれば重力エネルギーの発散が終わり、という段階を指すのであれば、ジャイアントインパクト後のドロドロした地球よりも先に月のほうが冷えるはずだから、太陽→月→地球という順番になる(ジャイアントインパクト以前の地球を現在の地球と別と区別した場合)。

 このあたり(恒星進化論)はだいぶ曖昧に覚えているから、あちこち間違ってそうな気もするけど。/* 宇宙論的な本は結構売ってるけど、恒星進化論みたいな本ってあんまり無い気がする */



 恒星進化論 / 杉恵ゆりか - YouTube



 3本のNVMeの健康状態、CrystalDiskInfoで48%、86%、92%。最初の2本はRAID1でCドライブに、3本目は単独で最近はゲームのインストールドライブに使用している。RAID1の片方がやたら削れてる。たぶんコイツは書き込みキャッシュを使わず高頻度で書き込んで、システムがクラッシュしたらこっちをプライマリにしてスキャン、みたいなことなんだと思う。

 過去のエントリを見ると、去年の6月時点で62%、一昨年10月時点で70%未満、だそう。16ヶ月で14%だから、当時の見立て1%/月相当で経過している。

 元々ページファイルがCドライブに入っていたが、今回これを単独のNVMeに移動した。ページファイルは本来の用途としてはある程度頻繁な書き込みが発生するから、RAIDに置くのは適切ではないはず。ということで、移動した次第。もっとも、このドライブが故障するとページファイルの置き場所が壊れるから、危険ではある。ブートドライブの寿命を削ってRAIDの再構成の危険との天秤(Windowsは起動時にページファイルを置いているドライブが見当たらない場合はCドライブにページファイルを作り直すらしいので、ページファイルを置いているドライブが壊れても、Cドライブ自体が壊れるほどの悪影響はないはず)。

 そもそも、このPCはRAMが比較的安い時代に組んだもので、動画編集とかをやらない個人が使うにしては結構大きめの容量を積んでいる。RAMの容量はあまり厳しくないので、たぶんページファイルはあまり使っていないはず。じゃあRAIDに置いていても良いんじゃないの?という気はするけど、とはいえただでさえ容量に余裕のないCドライブにほとんど使わない巨大なページファイルがあるのも邪魔なので、移動した次第。

 半年とか1年とか様子を見て、プライマリのストレージがどれくらい削れるか見てみよう。


 RAIDはMBのチップセットの機能だけど、AI曰くこのチップセットはRAIDの拡張に対応しているらしいから、OSの再インストールとかをせずとも拡張できるはず。とはいえ、2TBとしても2本買うと10万円だからなぁ。PCを組んだときに買ったやつは1TBで1.2万円だったのに、今では1TBも3万円弱まで高くなってる。ストレージの値上がりもすごいや。半導体がムーアの法則で安くなろうとしても、それ以上に需要が旺盛で札束を積む会社がいくつもあるとどんどん値上がりしていく。



 先日の緊急地震速報の際、ISDB-Tのサンプリング忘れてました。たぶんAC1で出てたと思うんだけど。そこまで手が回らなかったというか、頭が回らなかったというか。スマホの緊急地震速報が出なかったからそもそも緊急地震速報が出ていたことを知らなかった、という言い訳。



 GPSの測位演算、30秒くらいのデータを解析して、GGA/ZDAをGoogle Earthに突っ込むと、ほぼ正確な位置に平べったい回転楕円体が突き刺さる。15mくらい高めに出ているかな、という感じはあるけど、とはいえ回転楕円体の長軸が上下方向だし、誤差の範囲という気もする。ジオイドの符号を逆にすると完全に空中に浮くから、おそらくジオイドの補正は正しい。電離層・対流圏は未補正でサニャック効果だけ適用しているけど、アンテナを置いた建物にきれいに突き刺さるから、かなり高い確度で測位できている。ループフィルタが超広帯域だから、精度はさほど良くないけど。それでも短軸は端から端までで35m程度だが。

 累計のサンプル数をサンプリングレートで割った、受信機クロックベースの時刻と、測位演算で求めたGPS時刻から、1次を引いて、つまりクロックエーラ成分だけを取り出してグラフ化すると、3.1e-7くらいの傾斜になる。フリーランしているTCXOが0.3ppmというのは十分に妥当な気がする(Airspy R2のTCXOはある程度特性の良いものが乗っているはず)。

 対して、衛星のドプラからユーザの4次元速度を推定して、クロックの速度を見ると240m/s程度に見える。光速で割れば無次元になって、これが実際のクロックエラーに相当するはずだが、240/299e6でだいたい0.803e-6くらいになる。推定値が2倍以上ずれるのはちょっと腑に落ちない。

 ドプラは搬送波のズレを見るから、LOの誤差がそのまま乗る。時刻の微分なら純粋に受信機のクロックエラー(ADCのサンプリングレート誤差)だけが見えるはず。そもそもR820T2/R860のLOってどれくらいの確度なんだろう? 0.8-0.3=0.5ppm程度とすると、L1で750Hz程度、UHFなら250Hz程度になる。ちょっと大きい気もするけど、元々がワンセグ受信用(あるいはせいぜい地上波テレビ用)であることを考えると、その程度の誤差はしょうがない気もしないでもない。


 R820T2のレジスタマップを見てみると、PLLに関連しそうなレジスタは24bit分の割り当てがある。PLLの精度が24bitとすれば10進で7.2桁の精度しかないから、Lバンドでは100Hz程度の分解能しかない。先の推定に比べるとまだ7倍程度の差があるけど。

 SDR#でWAVに保存すると、指定した周波数から若干(L1の場合1582Hz)ずれるけど、これってR860のLOを加味した中心周波数を表示しているんだろうか? 1.6kHzは先の100Hzに比べて10倍以上大きいけど、これは24bitが綺麗に使われている前提だから、例えば20bitしか有効に使われていないなら、1575.42M/2^20=1502Hz程度で、実際のズレとはわりと近い値になる。

 Airspyt R2に適当な周波数を周波数を設定してairspy_r820t_readでレジスタを読んでみると、4箇所くらいが書き換わっているらしい。1個がPLLの整数分周、2個がPLLの分数分周、もう1個がミキサ前の分周らしい。全体として26,7bitくらいで設定できるっぽい。ただ、rtl-sdr blogが公開しているレジスタマップとは合わない箇所がある。librtlsdrのコードを追えば良いんだろうけど、さすがにそこまでは面倒で。。。

 もしもR860のPLL分解能が足りない場合、GPSのドプラやISDB-TのCPを見て受信機のクロックエラーを補正するというのは意味がない可能性が出てきた。それが目的で始めたんだけど…… GPSやISDB-Tとクロックを比較する場合、GPSならGPS時刻得て、ISDB-Tならフレーム等価でシンボル窓のオフセットを求めて、それを微分してクロックエラーを見るしか無いのかな? あるいは、R860のPLLのループが分かれば、そこで発生する差をオフセットして直接CPを見るということもできるかもしれないけど。

 もしSDR#が内部的にクロックを補正しているのであれば、SDR#でISDB-TのCPをCWで受信して、位置を調整するというのは、意味がある。線幅が数百Hz程度あるから1ppm程度までしか追い込めないけど。R2が1ppm未満の誤差なら、意味がないということになる。通常の(例えばR820T/RTL2832Uの)ドングルだと指定した周波数ジャストのWAVが出てくるから、多分内部クロックの補正はしていなくて、SDR#でスペクトルを調整するのもあまり意味は無いかもしれない。あるいは、R2はR860のクロックが10MHzでRTLは28.8MHzだから、これがPLL分解能に影響して、RTLベースでは綺麗なクロックが設定できるという可能性もあるけど、中途半端な周波数を設定しても1Hzの誤差もなく生成されるから、fc推定の処理を省いているだけだと思う。librtlsdrはR820TとE4000分岐しているから、SDR#もRTLの先に何がいるかはわかっているはずで、それならPLLの誤差を推定しても良さそうな気もするが。



 櫛形フィルタのFIR型とIIR型の比較。適当に乱数を突っ込んでフーリエ変換。



 FIR型の櫛形フィルタは馴染みのある形というか、そういう雰囲気。IIR型は対称的な形になる。

 FIRは安定なので係数は自由に設定できる。IIRは|k|<1じゃないと安定しない。

 CICフィルタはIIR型を積分器として、FIRを微分器として使って、係数は1あるいは-1で固定されている。なので、状況によってはIIRでも|k|に1を与えても安定な場合もある(CICは2進数の整数演算でごまかしてる感じもあるけど)。

 高周波成分をカットしたいならFIR型でHCF的に、低周波成分を通したいならIIR型でLPF的に、みたいな使い方になるのかな。


 ちなみに、FIR0.5+とIIR0.5をカスケードすると

 みたいな感じで、FIRとIIRの非線形特性が打ち消し合って、直線な特性になる(片対数グラフで直線とか議論してもアレだけど)。



 NCO(キャリア/コード)のフィードバックループにIIR Combフィルタ(k=1弱)を入れても、精度(雲の大きさ)にはあまり影響はなさそうな気がする。少なくとも、Google Earthでぱっと見てわかるような差は無い。それよりはフィードバックゲインを下げるほうが圧倒的に効く。ゲインが小さすぎると収束できず衛星をロストするけど。

 本格的にやるなら、キャリアやコードの位相をカルマンフィルタみたいなもので推定してやるのがいいんだろうけど。

 現状、観測量は50Hzで出しているから、10サンプルを平均して測位演算すれば、それだけでも雲はかなり小さくなる(たぶん10サンプル平均なら3倍くらいは改善するはず)。下手なループフィルタを入れるより、ほとんどフィルタを通さずノイズの多い観測値を高レートで吐き出して、後ろで(オープンループで)フィルタに通したほうが楽。クローズドループの中にフィルタが入らなければ安定性の面でも有利だし、どこでフィルタを通そうが結局違いは無いはず。実用的な受信機なら、軌道モデルに忠実なループフィルタを作ればスプーフィング耐性が上がる、とかはあるにしろ。



 GPSのリアルタイム測位を走らせていると、PCがかなりうるさくなる。普段UPSの負荷はディスプレイ等も含めて250W弱だけど、測位中は350Wくらいまで増えるから、GPSの受信だけで100Wくらい食ってることになる。実際には、チャンネルスキャンをとめどなく回しているから、それの負荷が大きいんだろうけど。



 思いつきで作った画像

 2500x2500なのでブログではリサイズされて本来の意図通りに表示されない可能性もあるけど。

 QRコードのドットの中に、さらにQRコードを埋め込んでいる形の画像。用途としては、画像認識(姿勢推定)みたいな場合に、引きで撮影すれば外側のQRコードが見えて、寄りで撮影すれば内側のQRコードが見えて、という感じで、マーカーへの距離に対するロバスト性を確保することを目的としている。

 通常のQRコードの場合、21x21pxだから、大きなコードと小さいコードの大きさの差がちょっと大きすぎる気もする。


 DataMatrixの場合、10x10pxから作れる(QRコードも小さいコードは仕様化されているけど、普及しているんだろうか?)。

 コードのフォーマットとして、外側はID単体、内側はID+座標、というフォーマットを考えて、外側が10x10にクワイエットゾーンを足して12x12pxとした場合、内側には座標として3桁の数字が必要になる。外側が10x10だと数字は6桁まで、内側が12x12だと数字は10桁まで含めることができるから、例えばIDを6桁、それに座標を足して9桁、というようなフォーマットは作れる。

 内側も10x10にすると、6桁の中でやりくりする必要があって、例えばIDを0から5000未満の範囲で、座標は5000倍して上位桁に挿入し、読み取った数字が5000未満なら大きい方のマーカー、5000以上なら内側のマーカーだから、5000で割ったあまりがドットの位置、というように読むこともできる。


 そういうフォーマットで作ると、こんな感じ

 ただ、10倍のダイナミックレンジはちょっとレンジが狭い気もする。16x16とかのほうが便利かも?

 こういうコードの場合、隙間を開けずに連続して大量に貼るような使い方をするだろうから、大量に生成できるもう少し大きいDataMatrixのほうが良いかも。


 元々は3段階くらいでスケールできるようにしたかったんだけど、コントラストを稼ごうとすると2段くらいが限界っぽい感じ。これでも結構厳しい。大きさ的なダイナミックレンジを広げても輝度方向のダイナミックレンジが狭くなって画像認識精度が悪くなれば意味ないし。


 しかしまあ、こういう画像認識用のコードって見かけない気がする。普通のコードでも、認識できる範囲で引いた状態であれば複数のコードが視野に入るから統計的に処理できる、少数のコードに寄った場合は高空間分解能で撮影できる、というような理由もありそう。そもそも論として、そこまで極端に距離の差が大きい環境で画像認識を使う需要もないだろうし。ローバー系の研究室なら床や天井にマーカーを貼ってマーカーとローバーの距離は一定で使うとか、ドローンみたいに極端に動き回るやつはそもそも画像解析が難しいから精度を求めるならIRマーカーを追尾するとか。


2026年10月14日水曜日

小ネタ





 世界初の「原子核時計」、ウィーンと北京の研究チームが開発 | ロイター

 それぞれ独立に。

 あと5年10年くらいはかかるのかなと思っていたら。どの程度の安定性が出ているのかわからないけど。


 Nuclear clocks tick for the first time

 オーストリアチームは時計を作りたくて作ったわけじゃなくて、暗黒物質の探索のために作ったらしい?



https://www.amazon.co.jp/dp/B0HJ4WMTT6



https://www.amazon.co.jp/dp/B09RWPCYZW

 解説本としては文章が荒削りな感が否めない気がする。測定の歴史とかで急に値が出てきて、現在からすればその値を使うのはわかるけど、その当時はまだその値は出てなくね?とか。

 第4部では定数の不変性とかの話が出てくるので、このあたりは読んでいても面白い。クエーサーとかオクロ炉の話も出てくる。ただ、それ以前の歴史の説明では日本人研究者の功績みたいなところもちょこまか書いてあるけど、オクロについては一切触れられていないのがアレ。アメリカの核研究者が否定した核分裂炉の自然発生を予言したのは日本人やぞ。



 前回のGPSの搬送波ドプラが飛ぶ挙動、多分SNRが悪くてキャリアを微分したときに時々大きなノイズが出る、みたいな感じだと思う。極端なLPFを入れていたから、大きなノイズが入るとステップ状の変動に見える。

 安物のSDR受信機を使っているからしょうがないとはいえ、SNRが低いのはどうしようもない。とはいえ、専用のGNSS受信機を使ったところで、信号強度が低い場所ではSNRは極端に悪化していても問題なく使用できるはずだから、多少SNRが悪くても搬送波を追尾することは可能なはず。企業努力でカリカリにチューニングしたフィルタとかを使ってるんだろうけど。

 とりあえずBPSKを復調して航法メッセージを取り出して、衛星位置を計算するところまでは動くようになった。受信機時空間座標の高精度な(100m程度の確度の)推定値を与えて空間と時間の距離をグラフにすれば、ほぼ正確に直線に乗る(含Δtsv)。

 ちょっと前までISDB-Tで遊んでたから、その感覚でGPSを触るとSNRが低すぎて大変。めちゃくちゃアナログ的。ISDB-Tは十分なアンテナで高SNRに受信すれば復調するだけならほとんどデジタル処理でいいから楽。


 測位演算の計算、IS-QZSS-L1Sの式から補正項と重みを除いて使おうかと思っていたんだけど、この計算って受信機クロックエラー項が無いんだな。通常は衛星と受信機の距離(Ri)にクロックエラーが追加されるはず。

 そもそもこの計算式、POSを直接求めているのが不思議なのよな。普通はPOS_jでj=0に適当な初期値を入れて、POS_j=POS_{j-1}+補正量でjを適当な回数(例えば5回程度)回して、補正量が収束すればそこでPOS_jを採用して終了、みたいな処理になるはずなんだけど。

 あと、サニャック効果の補正も入っていない。電離層はたぶんDGPSで消す想定なんだろうけど。

 あるいは、単独測位である程度の正しい位置を得たあとに、L1SのMT50他補正値を使うということなんだろうか? それにしたってサニャック効果の補正も必要だろうし、(G^T G)^-1 G^T dPRで取れる結果も補正量だからPOS=にはならないはずなのだが。


 とりあえず、単独測位ができそうな感覚は得られているのだが、今回の目的は受信機のクロックエラーの推定だから、できれば移動中に取得した(既知のドプラ成分を含む)サンプルが欲しい。どうやって取るか。歩くような速度でも見えるのかな?

 RTL2832Uはサンプルのドロップがあるからクロックエラー成分はドプラを見る必要があるけど、Airspy R2なら時間微分でもいいのかな? まずは単独測位でトラッキングできるようにして、時間微分して様子を見て、か。


2026年10月7日水曜日

小ネタ


 とっさに操縦桿を握った乗客、惨事を免れたのはテレビ番組のおかげ イスラエル行き旅客機 - CNN.co.jp

 そのうち映像化されるんだろうな。家で過去作を見ているシーンから始まって……

 古めのB級映画で、操縦できなくなったパイロットに変わってゲーマーが旅客機を着陸させて、日本語版では「神様プレステ様!!」と叫ぶシーンがあるけど、あながちフィクションと笑うこともできなくなった。



 ある地方のテレビ局がYouTubeに上げてるニュースの切り抜き、解像度が1920x1300で結構違和感があるけど、レターボックスの上に放送日、下に放送局名と放送地域が書いてあって、わかりやすくていいな。他の局だと1920x1080で画面上に放送日を表示したりするパターンがあるけど、上下に広げれば文字がゴチャついたりしない。

 スマホだと縦画面なら上下に広げたほうが見やすいけど、PCや横画面のスマホだと横のほうが余裕があるけど、とはいえ横に広げて文字を足すと見づらそうだしな。やはり上下に広げて追記してくれる方がありがたいか。



 最近ノギス使ってなさすぎて、毎回使うたびに電池を交換している気がする。モノタロウのヤツ、LR44だから電池は安いけど、こうも何度も交換するとな…… しかし、数カ月に1回位の頻度でしか使わないんだし、ミツトヨなど買えるはずもなく。

 電池交換を繰り返しているせいか、電池カバーを押すと瞬断するような挙動も出ている。サムホイールを避けてスライダを動かそうとするとちょうど指が電池カバーにかかるから、スライドさせようとすると電源が抜けて、原点が消えるとか。結構不便。こういうところが安物の安物たる所以なんだろうな。



 ISDB-Tの復調は、Releaseビルドで1/2倍速くらい。つまり実時間の2倍程度の処理時間がかかる。パイプラインの効率化でもうちょっと稼いで、残りはViterbi側で吸収しなきゃいけないのだが、ビタビ復号はもうあまり効率化できるような場所が残っていない。純粋に差や和を取って分岐する処理を繰り返すから、攻めどころが少ないのよな。頑張ってSIMDで書けばあるいは。

 今のところ、フルセグ放送は1フレーム231msの間に2600パケット弱流れているわけだから、少なくとも1ブロックで最大2600スレッド程度まで分割できるわけで、たぶんGPUで実装すればそれなりにスループットは出るんだろう。あるいは、拘束長7ならノードが64個あるから、小さな差和を64分割することもできるし。膨大な分岐処理をGPUで高速に流せるかどうかは別として。

 SIMDでビタビ復号を実装する場合、ノード毎のハミング距離の計算を並列化する場合と、複数のパケットを並列処理(例えばAVX2の256bit幅で32bit整数演算を8並列化)する、2つの方向性がある。

 というあたりまで考えて、放置中。……続きはそのうちやる。。。



 ちょっと方針転換して、Airspy R2でGPSを受信するヤツを試作中。そういえば、R2買ったはいいけどGPS受信してなくね?ということで。L1 C/AだからR2の帯域幅を活用しているとは言い難いけど。ドプラスキャンで綺麗な(多少はガタガタとしても)三角形が出ると、さすがサンプリングレート高いだけあるな、という感じ。

 とりあえず、GPSを基準にして受信機のクロックエラーが見えるところが目標。受信機のクロックの特性が把握できれば、それを基準にして地デジ側の割り当ても理解できるはずだし。


 一応、キャリア・コードにロックするところまでは実装。ただ、特定のPRNでキャリア位相が飛ぶ謎の挙動が出ている。別のPRNでは別の場所で飛んだり、あるいは問題なかったり。こういう挙動だと受信機(IQファイル以前)の問題ではなく、十中八九NCO周りのフィードバックが問題だと思うんだけど、とはいえ処理速度度返しのシンプルなコードだし、そんな変な挙動はしないはずなんだけど。フィードバックループを廃してキャリア・コード共に完全なフリーランで5秒くらい走らせても位相が飛ぶから、いよいよNCOが怪しいんだけど、しかしなぁ。

 というあたりが、今週の進捗。

 思いつきで別の遊びもちょっとやっていたんだけど、なんか思った感じにならなかったので、割愛。



 C#のreadonlyとDisposeの相性が悪いのどうにかならんかなー。あと、nullableも。Disposeの中ではreadonlyとnullableを無視してnullで上書きできる、みたいなオプションが欲しい。変数宣言で適当な修飾子を与えて、それがついた変数はvoid Dispose() or void Dispose(bool)の中に限ってreadonlyや非null型を無視する、みたいな(nullableは警告だから消せるけど)。

 ただ、readonlyや非nullableは変数の中身が存在することを保証するための構文だから、それを無視してもいいのかとなると、また別の話なんだろうな。かといって、readonlyを外してnullable型として宣言すると色々めんどいし。その「色々めんどい」に対応しないと、Dispose後に使おうとしたときに面倒になるんだろうけど。

 とはいえ、Dispose後に呼んだら適切にはObjectDisposedExceptionを投げる必要があるけど、nullを入れた変数にアクセスしたらNullReferenceExceptionが飛ぶだけだし、デバッグが若干面倒とはいえ、結果としては例外が出るから同じじゃねって思ってしまうのだが。そういう思考が保守性の悪いコードを生んでるんだろうけど。



 Math.NETのFourier、いくつかの型の固定長配列しか受け取れないのが結構不便。せめてMemory<Complex32>だけでも使えれば色々と楽になるだろうに。

 ArrayPool<T>.Sharedは現状では2^nで取れるけど、逆に言えば2^n以外のFFT点数が必要な場合はArrayPoolで確保できないとか、あるいは2^nのFFTを使う場合でも、2^nで渡されるのは仕様として固定されているわけではないからこれに依存するのはどうなんだとか。

 あとは、段階的に窓の大きさを変えてFFT処理したい場合(最初は荒く1024ptsで処理して、それで目的の信号が見えればその付近を8192ptsで処理するとか)、いちいち配列を作り直さなきゃいけない。Memory<T>に対応していれば適当に切り出して与えればいい。

 ついでに言えば、Memory<T>だけでなくSpan<T>にも対応してくれるとありがたいが。上のレイヤがマルチスレッドで走っているからFFTもシングルスレッドで走ってほしい、みたいな。

 そもそもMath.NETの更新頻度がかなり低いというのもあるし、だいぶトリッキーなコードを使っているらしく、互換性を確保するとコードが面倒になる、というような理由でMemory<Complex>とかの対応は先送りしているらしい。

 .NET11でComplex<T>が増えることを考えると、Memory<Complex<T>>やSpan<Complex<T>>に対応したそこそこ早い(&安心して使える/汚染されない)FFTライブラリがあると便利なんだけど。


 あと、System.Numerics.Vector3<T>とかも欲しいなーという感もありつつ。現状のVectorNはfloat固定だから精度が必要な計算に使い難い。Vector2,3,4が<T>に対応すれば色々楽になる。


2026年9月30日水曜日

小ネタ



「富良野・美瑛ノロッコ号」ラストラン 28年の歴史に幕 | NHKニュース | 北海道、鉄道、観光

 近所を報道のヘリが3機くらい飛んでて何事かと思ったら、これを撮りに来てたのか。

 この間の十勝岳みたいに報道ヘリが素通りしていくことはたまにあるけど、このあたりにある取材対象を報道ヘリが撮りに来る、なんて事態はほぼ記憶に無い。かなり珍しい。



 数百基の光通信衛星で大容量通信を実現へ、NECが整備計画…日本独自の衛星網で経済安保強化(読売新聞オンライン) - Yahoo!ニュース

「日本は光ファイバの人口カバー率が99%だが、山間部など4割は未整備で、災害時や有事に備えて衛星通信が重要」(要約)みたいな話、たぶんNECが言ってるわけじゃなくてメディアが考えたストーリなんだろうけど、こういう考え方で衛星コンステを構築するとろくな結果にならないと思う。日本の国土の4割なんて地球の表面積に比べれば0.03%でしかない。そんな針で突いたような面積のために(しかも有事の時だけに)数百機規模の衛星コンステを作ったって全く割に合わないわけで。もっと採算性の良い用途を探さないと。もちろんNECはそのあたりも考えて構想しているんだろうけど。

 しかし、自分でローンチビークルまで持ってるSpaceXに対抗できるサービスを作れるかは結構怪しい気がする。だったらグローバルな衛星通信でなく、リージョナルな衛星通信システム(例えば準天頂通信衛星)を作ったほうが良くね?という感があるが、それはそれで日本以外で稼ぐのが難しくなるからやっぱり難しいんだろうな。オーストラリア、インドネシア、パプアニューギニア、あたりはサービスエリアに入るとはいえ。あとは、LEOだとスマホと直接通信が見込めるけど、GEOだと大変だろうし。一応、GEOとモバイル端末の直接通信が通る見込みは20年くらい前に得たんだろうけど、あれももうロストテクノロジーだろうしなぁ。

 それに、災害時のバックアップとして、といったって、地震ならともかく、台風みたいな気象災害を想定すると、光通信って使い物にならないと思うのだが。そもそも光だと衛星1機に10個の開口をつけたって、500機で5000ユーザーしか収容できないし、全地球で同時に5000ユーザーでは使い物にならないだろうし。ユーザー側の回線は電波で、バックホールを光で、ということなのかもしれないけど。サービスリンクはどうやって下ろすのかという問題が残るし。衛星間だけ光で結んで、とかになるのかな。



 関東圏のメディアが「原発は大都市で消費する電力の生産を地方に押し付けている!けしからん!」みたいなことを言っているのを目にすると、なんだかなぁ、って感じ。原発に限らず、「持続的な電力」ってたいてい地方任せだろ。太陽光発電にしろ、風力発電にしろ。山を切り開いて太陽光発電パネルを敷き詰めて、それが地方の負担にならないとでも? メガソーラーだって色々事故起こしてるだろ。山間部なら光害問題もあるし。風力発電だって同様。ブレードの落下事故も起きてるし、騒音問題や景観問題、鳥類への被害も多発している。

 そもそも、電力に限らず、大都市と地方って大なり小なりそういう構造だろ。大都市が消費する大量の食料は、日本の食料自給率が低いことを加味しても、かなりの部分は地方からかき集めた食材が使われている。低賃金で食料を生産して、ろくな教育のない地方で一子相伝のように続けられている農業が、大都市からの押しつけでなくて一体何だと言うんだ? 大都市を形成するビル群はどうやって作っている? 地方からかき集めた材料を固めているだけだろう。

 原発に反対する理由が「地方への押し付け」なら、電力以外のものもすべて都市部で生産すべきと主張しなきゃおかしい。食料はどこで生産する? 人間の飲水や食料を生産するための水はどこで取水する? 川から取水するのは上流部の地方に依存していることに変わりはない。大都市に降った雨を貯水して使う? 水槽やビルを立てるためのコンクリートは? 地下を掘削して開発する? コンクリートの使用を減らして木造建築を増やす? その木はどこで育てる?

 そんなことは全く非現実的だろう。それなら現実と折り合いをつけて、大都市は地方が生産する資源に依存して、その代わりに大都市の活動で稼いだ莫大な収入のいくらかを、補助金なり助成金なり名前は何でもいいが、地方に還元するほうが建設的だろ。これは必ずしも税金を経由する必要はなくて、例えば第一次産業(および採掘のような第二次産業の一部)の価格を引き上げて、直接的な収入を増やすといったことでもできる。地方に住む人の収入が増えれば地方の税収が増えるから、地方自治体への補助金を減らすこともできる。でも結局は大都市で稼いだ金を地方に配分する、という形が変わるわけではない。

「地方では原発に反対していても声を上げられない。地域の分断を招いている」と言っている人たちが、大都市と地方を分断しようとしているように見える。大都市では大都市でしかできないことをやる、地方では地方でしかできないことをやる、そうやって持ちつ持たれつ発展していくのが、国としてのあるべき姿だろ。

 誰かがそれぞれの役割を果たすのが多様性のある社会であって、誰もが同じことをやるのは多様性とは言わない。大都市には大都市にしかできない仕事があるし、地方には地方にしかできない仕事がある。それに対して大都市が優遇されているとか地方差別だとかの声を上げて、無理に統一しようとするのは間違っていると思う。大都市と地方に格差(例えば賃金格差)があるなら、それの対策は「大都市の仕事を地方に移す」とかではなく、「地方が行っている仕事の給料を増やす」というような方向であるべき。

 例えば「クリエイティブな仕事」と一口に言っても、大人数が集まって侃侃諤諤のブレインストーミングを行わないとできない仕事だってあるだろうし、一人が自分の好きな環境で静かにする仕事だってある。前者を田舎でやろうとすれば移動時間や交通費だって馬鹿にならないし、後者を田舎でやりたいという人を大都市に閉じ込めたってろくな仕事にならない。


 まあ、なんだかんだ言っても、当ブログの読者なら御存知の通り、僕は田舎アンチの過激派なので、ね。都会モンが田舎を憐れんでるようなスタンスを見ると「はぁ!?」とか思うわけだ。別に当人は憐れんでるとかそんなこと思ってないんだろうけど。とはいえ、「地方の人は声を上げることもできない、我々が代弁しなくては」とかそういう感じの変な正義感はありそう。



 炭酸飲料に入れる氷、一旦水なりお湯なりにくぐらせて洗った氷を使うとnucleation siteが減って良いらしいという気づき。もうちょっと早くに知りたかった…… せめて夏の間に。

 ウイスキーとかに入れる丸い氷も、軽く洗って表面粗さを改善して使えば炭酸飲料に入れても良さそう。ウチは酒を飲む家じゃないので丸い氷を作る機材もないし、普通の角氷しか無いけど。氷の中に気泡が入っていると融解が進んだときに露出した気泡がnucleation siteになるから、透明な氷を洗って使うのが一番いいんだろうな。

/* 英語圏のYouTubeばっかり見てると語彙に日本語が無くて困る */


 ようこそ、氷マニアの世界へ。|シャープ公式 note



「テレビが映らないんだけど」案件。この間のとは別のやつ。見に行ったら確かに電源が入らないので、別のあまり使っていないところからスライドして突き出したやつと交換。テレビが映るようになったことを確認して、その現場は終了。

 回収したテレビをウキウキで動作確認したら、映るでやんの。なんでぇ。。。せっかくバラして良いテレビが手に入ったと思ったのに。とはいえ、この際なので、蓋を開けて中身を確認。ちゃんと「高電圧があるから分解するなよ」のラベルが貼ってあるので、良い子は真似しないよーに。2010年製のテレビで、まだアナログチューナーが乗っていた時代のやつ。

 電源用の基板(低コスト化のために片面、絶縁のためにスッカスカ)が1枚と、メインの基板の合わせて2枚が入っていた(小さいやつも含めるともう少しある)。小さいスピーカーもファストン端子で接続してあったりして、保守性は良さそう(保守というよりは組み立て性メインなのかもしれないけど)。

 左上の黒いヒートシンクが映像処理用のロジックで、その左上にある小さいコネクタがLCDの映像出力。パネルはFHDだと思うけど、配線がめっちゃ少ない。シリアル通信偉大なり。中央右寄りの黒いICはHDMIのスイッチだと思う。背面に1個と側面に1個の合わせて2個のHDMI入力がある。配線はまっすぐ引いてあって、等長配線みたいなウネウネが無い。HDMI程度のクロックならスキューなんか気にしなくてもよい、みたいないさぎのよさ。

 右下にある2つ(写真はシールドを外した状態)がRF/IF入力のダウンコンバータ。写真では分かりづらいけど1段上げた場所に基板があって、ダウンコンバータは金属シールドに入ったモジュールとしてポン付けされている。大きい方がVHF/UHFのRF入力、小さい方がBS/110CSのIF入力。なーんか、安い中国製のチューナーに入っていた古いダウンコンバータと全く同じような構成で拍子抜けだ。この頃はまだVHFからUHFまでの広い範囲(90-770MHz)をカバーしなきゃいけないからRF周りは大変そうだな(地デジ化で周波数が整理されたあとは470-710MHzの範囲)。

 ただ、以前開けたダウンコンバータはPLL ICが見えたけど、今回はそれらしいICは見当たらない。もしかしたら水晶の裏あたりに乗っているのかもしれないが。水晶の横のピンにはシルクでSCLやSDAと書いてあるから、I2Cで周波数を指定できるのも前に分解したやつと同様。

 BS/CSのIF入力は、周波数が高いからか、かなりコンパクト。コイルみたいないかにもアナログフィルタみたいな部品が一切無い。どっかにSAWフィルタ位は入ってるんだろうけど。


 このテレビはちゃんと蓋を閉めて、正常に動いていることを確認して、突き出しの起点に設置。一件落着。



 Airspy R2をDLL経由で叩いて、ISDB-Tを受信するソフトを試作中。とりあえずISDB-Tのフレームに同期して、等価してからコンスタレーションを表示するところまで動くようになった。


 物理18ch

 このアンテナで受信できるチャンネルだと、このチャンネルが一番コンスタレーションがまとまっているかな。QAM64のカドも隣とかなり綺麗に分離できているから、内符号だけでほぼエラーフリーまで行けそう。

 ゲインを1段上げて、わずかに飽和した状態

 左中段のヒストグラムの両端に小さなツノが出て、ここがAirspy R2のADCで見える端。かなり狭い。

 少しでも飽和すると、コンスタレーションが急激に広がる。低い方で同じくらい広げようとすると4段くらい落とす必要がある。利得が低い場合は(量子化ノイズが問題にならない範囲では)振幅が低いだけで信号は保存されるけど、サチった場合は細かい信号が消えるからOFDMとしてはマズイんだろう。あるいは、正弦波がクリッピングされて高調波が出るから、キャリア間の直交性が悪くなる(ICIが悪化する)と考えることもできる。


 物理48,49,50ch

 弱いけど、フレームにロックできる信号が入る。

 A-PABのマップによると、可視範囲にこの周波数で出している中継局があるっぽい。ただ、送受信ともにビームが少しズレているからだいぶ弱い。ワンセグくらいは受信できそうではあるが。

 この場所は3chが並んでいるので、スペクトルで見るとガードバンドを挟んで左右端にも上下のチャンネルが見えている。この状態ではOFDMのガードインターバルの自己相関は3個のピークが出る。上の図では見づらいけど、中央のメインのピークの右側に2つのピークがある。GI自己相関の時刻精度はあまり良くないけど、長期的に位置関係を比較すれば、複数のchのクロックのバイアスが見えるかも? 比較精度としては数us程度だから2時間で9桁とか。受信機のスカートも含めると意味のある観測ができるとは思えないな。



 C#のDictionary、ContainsKey(TKey)と同じようにContainsKeyHash(uint)が欲しい感が若干。Keyの生成コストは高いけどKeyのハッシュ値はO(1)で取れる、みたいな状況で。まあ、そういう事態なんてほとんど無いから用意されてないんだろうけど。


 非unsafeなC#でDLLからポインタ経由でバッファを受け取ろうとするとMarshal.Copyで引っ張ってくるけど、こいつは基本的な型の配列にしかコピーできないのが地味に不便。非unsafe環境でnintからSpan<T>やMemory<T>にコピーできる機能があればだいぶ便利だろうに。unsafe環境ならポインタからSpan<T>を作れるから、基本的にはそれでいいんだろうけど。

 しかし、Marshal.Copyならポインタ/データ長を直接指定して(バッファオーバーランのリスクを犯して)使えるのに、Spanではそれが許されないのが謎。昔は許していたけど最近は許さなくなった、でも昔のやつは互換性維持に消すに消せない、みたいなことなのかな。


2026年9月23日水曜日

小ネタ



 Ghostwire: Tokyoを賑やかにしてVALORANTっぽいルックにした感じ?



 新ブランド「CONTOURJET」で立体物への直接印刷ソリューションを強化(2026年9月16日) | ニュース | エプソン

 多関節ロボットもインクジェットも作っている面白い会社の、面白そうなソリューション。


 エプソンのロボットは元々は時計の量産用に作ったものだそうで、製品を作る機械すら作るという極端な垂直統合は、いかにも日本の古い会社(いい意味で)という感じの。シチズンだって自分で工作機械まで作って(売って)いるからな。

 しかし、エプソンが人工水晶を作って半導体デバイスまでやっているのはわからんでもないけど(例えばXilinxはファブレスとして最初期の企業だけど、当初はセイコーに生産を委託)、インクジェットってどこから出てきたんだろう? 企業情報によると1968年には最初のデジタルプリンタを販売していたらしい。少し遡るとストップウォッチの記録(印字)のための機械も作っているらしいから、その流れなんだろうか? それにしても、数字を何桁か印刷するところから発展しすぎだろ。

 インクジェットプリンタの話だと、1990年代前半までのプリンタはとても写真に耐えられるような画質ではなかったが、エプソンが1996年に発売したものはかなり品質が良くて、それ以降の画質の向上がデジタルカメラの需要を牽引した、ということらしい。撮影しても印刷する方法がなければここまでデジカメが普及することはなかっただろう、と。


 東京オリンピックから続く挑戦、「より速く、美しく」|大塚商会

 計算機の出力を印刷できるようになったのもこのあたりの時代かららしい。物理的な出力だともう少し早い時期からパンチカードや、印刷と同時期には磁気テープみたいな手法もあるし、一時的な出力でいいならダイヤルで表示するとかもできるけど、人間可読性の高いストレージ用だとプリンタがないと厳しそう。特殊な訓練を受けた人なら紙テープのビット列でも読めるんだろうけど、誰でも読めるという点では印刷はつよい。



 マウスコンピューター“異色の新ゲーミングPC”は初めての1台にちょうどいい。ノートPC向けCPUをあえて使ったデスクトップPC、性能と静音性両立の欲張り仕様 - AUTOMATON

 ゲーミングデスクトップを安くするというよりは、NUC PCを高性能化したようなコンセプトかな。せっかくモバイルCPUを使うならもうひと回りコンパクトな筐体にすればいいのに、と思わないでもないけど。あとは、うまいこと下駄履かせてデスクトップ用のファンを使えるようになっていれば面白そうだけどな。でもまあ、最初の1台向けなら拡張性とか考えてもな…… とすると筐体ももうちょっとコンパクトな方がよくねって気もするが。



 ちょっと前のWindowsって、一つのストレージでレイテンシが悪くなると別のストレージにも波及していたような気がするけど、いつの間にか改善している?

 うちのデスクトップPC、コールドデータを入れているのはRAID5のHDDで、書き込みは20MB/s程度しか出ず、数GBを超えてRAMでキャッシュできない量になるとHDDへのレイテンシが1秒くらいになる。その状態だとCドライブも引きずられて、PC全体のレスポンスも悪くなっていた。

 最近はHDDのレイテンシが1000msあたりでもCドライブ(NVMe RAID1)の平均応答は5ms前後で、PC操作の体感もかなり快適。あるいはチップセットの方でなにか更新が入ったのかもしれないけど、少なくとも自分はチップセット周りの更新は入れていない。でもチップセットが管理するストレージアクセスなんてWindowsでどうにかるものなのかなぁ……



 ビタビアルゴリズムってつまるところ巡回セールスマン問題的な最適化問題になるわけだけど(一筆書きで各都市を1回ずつ回るわけではなくて、一つの都市に何度も訪れたり、あるいは全く行かない都市もあって、n回の顧客訪問(nビットの探索)でいかに稼ぐか、みたいな最適化になるが)、最適化問題なら量子コンピュータで計算できんじゃね?と思ってググったところ、Quantum Viterbi Algorithm(QVA)というのが提案されているらしい。さもありなん。

 ただまあ、地デジ放送みたいな用途で使っている畳み込み符号は現行のCPUやASICで計算するのに苦労はないから、わざわざ量子計算する旨味はなさそうだけど。符号化率をめちゃくちゃ落として拘束長や出力を増やして誤り訂正能力を強めたような情報を復号したいならあるいは? でもそういう使い方って思いつかないな。劣悪な回線でも拘束長を増やすとかよりはビットレートを落としたり回線設計で頑張ってる気がする。あるいは最近の速度が必要な用途ならもっと効率の良い符号を使うとか。

 QVAは英語の論文がいくつかくらいで、概要もちゃんと読んでないけど、情報理論的な使い方ではなさそう。そもそもビタビアルゴリズムは「畳み込み符号の復調にも使える」というものであって、他にも色々な用途があるから、その方面を量子計算したいということなんだろう。



 フーリエ変換は、とりあえず10080pts固定で9x8x7x5x4に因数分解して処理するコードをベタ書き。かなり長くなったけど、とりあえず正しく動いているはず。

 Airspy R2でサンプリングした10MspsのISDB-T IQファイルを読み込んで、FFTで周波数スペクトルを取って、各種処理を行って、ビタビ復号からRS誤り訂正を経てTSファイルに保存して、ffplayに突っ込むと、とりあえずワンセグが見れる。以前NHKがスクランブルを解除して放送していたときに取ったIQファイルを突っ込むと、フルセグ相当の画質で再生できるから、ワンセグ/フルセグ含めて正しく復調できているはず。

 これで、IQファイルからTSファイルまで、フルスクラッチで書いたことになる(以前フルセグのデコードを行ったときはFFTとRS誤り訂正は外部ライブラリに依存していた)。


 ビタビ復号アルゴリズムは一旦実装してしまうとめちゃくちゃシンプルな感じ。ただし計算コストはめちゃくちゃ高い。リード・ソロモン符号は符号ベクトルにシンボル単位で行列演算を行うから、1バイトあたり計算何回、というオーダーだけど、ビタビ復号は1bitずつ何十個のパスを計算するから、少なくとも2-4桁は違うはず。



 いろいろ試していて気がついたことは、いくつかのシステムで、破損したTSパケットが含まれると全く動作しないものが多い、という点。デコーダの挙動としては、RS誤り訂正でエラーが残ったパケットに対してはヘッダの9bit目(同期直後)をセットしてエラーパケットであることを通知しているのだが、これが含まれると全く再生できなくなるシステムがある。

 書き出し時にエラーフラグがセットされたパケットは出さないような分岐を入れてやると、それまで再生できなかったアプリでも再生できるようになる。TSPの仕様でエラーフラグが明記されているんだから、TSPデコーダもこれをチェックすべきはずなのだが、実際にはフラグを見ず、壊れたパケットが入ると延々と伝播する(回復できない)ソフトが意外と多い。


 ffmpeg(ffplay)とVLCは204バイトパケットにも対応しているらしい。少なくとも、ffplayに204バイトTSPファイルを突っ込んでも、再生中にエラーログは出ない。ただ、あくまでも188バイトから余った部分を読み飛ばしているだけで、誤り訂正や誤り検出は行わないようだ。



 とりあえずフルセグが復調できたのは確認できたので、ワンセグに鞍替え。rtl_tcpでサクッとサンプリングして、1024ptsFFTで処理できるし、ビットレートも低いから、めちゃくちゃ楽にデコードできる(複雑な周波数インターリーブも無い)。

 ワンセグのデコードはCPU使用率5%程度なので、PC全体からすれば大したコストではないけど、12C20Tからすると結構ギリギリ。一番重いビタビ復号はマルチコアで分散しているので、おそらく問題はないはずだが。

 今回はTCPでIQ信号を受け取って、FFTからRSまで自前でコードを書いて、TSPをTCPでffplay等に渡すので、ISDB-Tデコーダはエンドツーエンドでフルスクラッチになっている。計算に使うバッファはあらかじめ確保したものを使うか、あるいはArrayPoolで使い回すから、動作中に大きなGCが走らない。メモリ使用量は70MB程度。ちょっと無駄に確保しているところがあるから、もう少し小さくなるはず。カリカリまで最適化すればもっと小さくなるんだろうけど。そもそもワンセグって20年前のガラケーで受信するための規格だから、かなり軽い。最適化していないデバッグビルドで余裕でデコードできる。

 頑張ればフルセグもソフトでリアルタイムにデコードできるはずなんだけど(確か前回ある程度は目処が得られるところまでやったような気がする)、フルセグはデコードしたところで意味がないから、あまり乗り気ではない。アマチュア無線用に? うーん。。。先にデコーダを書いて、それでデコードできる信号をfl2kで出せるようにエンコーダも書いて、みたいな遊びはできるか。



 ワンセグから復調したHE-AAC/H264の映像、ffplayで再生すれば問題なく再生できるのだが、VLCで再生すると映像は見える一方で音声が全く出てこない。

 ctrl-jのコーデック情報ではストリームがH264の1本しか表示されない。ffmpeg -i out.ts -c copy out2.tsみたいな感じで、コンテナの入れ替えすらせずffmpegを通してやると、正しく認識できる。ただ、-c copyを指定しても、パケット単位で中身を比較すると、同じ内容のパケットはかなり少ない。ペイロード(184バイト)が完全に(ビット単位で)一致するパケットは0.5%程度しかないし、それにしたってPIDは一致しない。-c copyで再エンコードさせずにコピーしても、例えばPIDを振り直したり、パケット区切り位置が移動したりはするらしい。

 VLCに関しては、たぶんVLCが解析するサイズが小さくてストリームを検出しきれず、かつ最初に検出したストリームを拾い続けるからあとからストリームが入ってきても検出できない、みたいな感じなんだと思う。最初の方にインターリーブの都合で破損したパケットが入るが、それでデコーダが破損してその後延々回復できない、みたいな問題も似たようなところだと思う。

 VLCで再生中にストリームの再検出を行う機能があればいいんだが、見当たらない。Google AI曰く「あるよ」とのことなんだけど、その項目が見当たらない。バージョンの問題なのか、ハルシネーションなのか。AIが提示したCLIオプションをググっても全くヒットしないから、後者だと思う。


 ffplayでtcpからストリームを受信すると、デフォルトでは再生が始まるまでものすごい時間がかかる。かなり巨大なバッファが埋まるのを待ってからフォーマットの解析を行っているんだと思う。probesizeで20k位を指定すると半々くらいの確率で音声だけの場合と、音声・映像の両方が出る場合がある。30kくらいだとまだ映像が出ないことがあって、40kだと100%正しくデコードできる。ワンセグは416kbpsだから、40kBだと0.77秒、30kBだと0.58秒、くらい。1Hzや2Hzでフォーマット情報を出しているわけではなさそう。

 ffplayで映像が検出されない場合、しばらく待っても検出されないから、リアルタイムでパケットを解析してストリームが追加されたらそれもデコードする、みたいな機能は入ってないっぽい。最初に認識したストリームだけをデコードするのはffplayもVLCも同じかな。

 ffplayは正しく検出できない場合、音声だけが出る。VLCは正しく検出できない場合、映像だけが出る。この違いは何なんだろう?


 ワンセグをデコードしてffplayで画面の片隅にNHKあたりを置いておくと、何か大きな出来事があったときにffplayをクリックしてmでミュートを解除するだけですぐ見れるから、報道で最新のニュースを知りたいみたいな場合は便利そう。IP経由でNHKを見ると50秒くらいの遅延があるけど、ワンセグならrtl_tcpからffplayまでエンドツーエンドでも2,3秒程度しかない。まあ、テレビ経由で情報を入手するのに3秒も1分も大差ないだろ、という気はするけど。

 どちらかといえば常時つけっぱなしにできる方が便利かな。この程度の機能ならPC用のチューナーをつけるとか、あるいはウチはDIGAが置いてあってDiXiMのライセンスも買ってあるから、フルセグをリアルタイムでPCで見るみたいなことは可能だけど、機能が豊富だと必ずしも使いやすいわけではないので、常時表示しておくなら単機能のワンセグだけという割り切りは意外と便利かも。



 気まぐれでGoogle PixelのLinuxターミナルをPixel 6aにインストール(開発者向けオプションのやつ)。apt searchでいくつか検索。build-essentialは12.12、python3は3.13.5-1、default-jdkは2:1.21-76、nodejsは20.19.2、あたり。AndroidにLinuxターミナルを追加したはいいけどその後保守されてない、って感じのバージョン感。開発環境として使おうとするとだいぶ厳しそうだな。FFmpegは7:7.1.5-0が入っていて、リリース日で言えば3ヶ月前だけど、とはいえ7.1のリリースは'24年9月だからなぁ(現在の最新は9.x.x系)。

 あと、gr-osmosdrが0.2.6-4で最新のリリース(2024年)とairspyが1.0.10でこれも最新版(2021年)が入ってるっぽい。rtl_tcpでUSBからTCPに変換して、ユーザーアプリからTCPで接続して、みたいなことができれば面白そうだが、とはいえ開発環境が実質的にC++しかないのはちょっと面倒。C#が走れば色々楽なんだけどなー。airspyに関しては、rtl_tcp的なツールがないから、ライブラリを自分で叩かないとだめなのかな。fl2kもあるけど、0.1.1で、8年前のリリース(最新は去年の0.2.1)。

 試しにrtl-sdr 2.0.2-2+b1を入れて、blog v3を接続してからrtl_testを叩いてみたけど、No supported devices found.でダメだった。最近のスマホはセキュリティが厳しいからUSBデバイスを使うのは大変そうだ。


 build-essentialを入れて、C++の適当なコードを/mnt/shared/Downloads/hoge/a.cppに書いて、同じ場所にa.outを作って実行すると、少なくともhello world程度は正しく動作する。ただ、Ubuntuで動くTCPクライアントを実装しても動作しない。printfは出るからバイナリは正しく動作しているはずなんだけど。ネットワークを超えようとすると厳しいかな? なにかパーミッションとか必要なのかもしれないけど。開発環境でTCPが使えてもなぁ……という感もあるので、当面放置。


 Google Pixel、6aと9aを並べていると、いくつかのアプリのプッシュ通知で、明らかに9aが遅い。6aはWiFi運用、9aはSIMカード入りで、9aは低消費電力化のためにスリープ時はWiFiではなくモバイル回線でプッシュ通知を受けている、みたいなことなんだろうか?



 Complex<T> 構造体 (System.Numerics) | Microsoft Learn

 .NET11(C#15)から使えるようになるらしい。現状のソースだとTにIFloatingPointIeee754<T>条件が指定されているし、shortとかintやInt128が使えるようになるわけではなさそう(SDRer的には閉じていなくてもいいから幅の狭い整数系の複素数が使えると自分で書かずに済んで楽ができるのだが)。今までのSystem.Numerics.Complexはdouble型(128bit幅複素数)固定だったものが、float, Half(fp16), BFloat16(bf16)にも対応するようになった、という感じなのかな。今まで64bit幅複素数(単精度)を使おうとするとNuGetでMathNet.Numericsを入れる必要があった。

 Halfって構造体で定義してあるし演算重そうと思って触ったことないけど、実はそんなことないんだろうか? それともComplex<Half>で特殊な対応が入ったりするんだろうか? あるいは、新しいCPUならハードウェアで計算できますよ、ということなんだろうか。少なくとも、Intel Core系ではfp16演算はサポートされていないはずなのだが。計算はXeonのAVX-512やあるいはNPUが必要。あるいは、fp16/fp32変換はサポートされているから、言語レベルでサポートを入れれば、fp16演算の前後で変換を行ってfp32で計算する、みたいなことはできる(fp16ネイティブ演算とfp32変換計算で同じ結果になるのかはわからんが)。


 fp16/bp16とか色々と特殊な型が増えてくると、CPUの中に小さいFPGAを入れて、ちょっとした特殊な演算はハードウェアでできれば便利じゃねって気がするんだけど、でもFPGAだと速度も電力も専用計算機には足りないし、使い所が無いんだろうな。変な型の演算をやりたくても、一旦普遍的な型に戻して通常のALUで計算させたりとかすれば大抵は事足りるわけだし。/* なんかこんな話ちょっと前にも組み込みマイコンで書いた気がする */



 モノブリスクターボファンエンジンの空想の続き

 ブリスクの断面のイメージ。左から右に向かって流れる。青がファン、緑がコンプレッサー、赤がタービン。ブリスクのFCTの並びで6種類、コンプレッサーのインテークで2種類、合わせて12種類のバリエーションが有る(増やそうと思えばもっと増やせるけど)。Aはファンの排気をコンプレッサーに入れる(2段圧縮)、Bはファンとコンプレッサーのインテークが独立(1段圧縮)。コンプレッサーに入る気流は180度曲げる必要があるから、ファンで軽く圧縮した気流を入れたほうが良さそうな気もする。

 軸受をどこに置くかで高温部の配置も変えたほうが良さそう。小径ベアリングでシャフトを支えるならタービンが外側(4,6番)のほうがいいし、大径ベアリングでブリスクを囲うならタービンが内側(1,3番)のほうがいい。中間に置けば(2,5番)中庸な特性になる(例えばシャフトと外周を両方ともインターフェースに使いたい場合)。

 気流が交差すれば当然ダクトも交差させなきゃいけないから、図中で交差せずに流せるほうが楽なはず。これを強い拘束条件に設定すれば、1A, 5B, 6Aが選択肢になる。高温部を好きに選べるから、材料の特性で選ぶこともできる(耐熱性はあまりないが熱伝導性がいいなら両側から冷却できる5B、とか)。

 上の図の場合、タービン排気は後ろに出すから、排気の残エネルギーを比較的効率よく推力に変換できる(前回空想時点では圧縮機/燃焼室が前後逆だったから、タービン排気をダクトで後ろに向ける配置だった)。あと、コンプレッサーの吸気が180度曲がるから、適当なスリットを入れておけば簡易的なパーティクルセパレータとしても使える。もっとも、最大でも30分程度しか回さない使い捨てのエンジンにそこまでの性能を求めるかはまた別の話(600km/h程度で飛ばしたとして30分も回せば300km先まで飛べる)。


 図は単純なターボファンエンジンだが、実用的に使う場合はスターターやジェネレータもあると良い。電動モーターで起動する場合は可逆に使えるからスターターとジェネレータを共有できる。特性の良い電池を併用するなら、巡航中に発電した電力を終盤にモーター経由で戻して、ブースタとして使うこともできる。圧縮に余裕が出るからより多くの燃料を燃やせる。ただ、バッテリ重量とのトレードオフになるから、必要最小限の電源だけ用意しておいて(起動は外部電源で行って)、ブースタとしては使わないほうがパフォーマンスは良さそう。とはいえ、可変ステータみたいな凝ったものを作れないから、電力の流入・流出で負荷特性を調整できるジェネレータ・ブースタはうまく動けば利点はありそう。

 シンプルに考えればモーターを別に用意してシャフトからカップリングすればいいが、場合によってはブリスクの外周に磁石を並べて、その外側にコイルを配置して、ブリスク自身をローターのフレームとして使うこともできる。

 ただ、できるだけシンプルに(低コストで)作ろうとした場合は、スターター・ジェネレータは搭載せず、起動は外部からの圧縮空気で、飛行中の電源はLIBで、みたいなことも考えられる。どのコンフィグが有利かは量産性や部品コスト等色々と複雑なので今回は気にしないことにする。そもそもモノブリスクターボファンエンジンという空想が実際に可能なのかどうかもわからないし。


2026年9月16日水曜日

小ネタ



 空戦ゲームで映像クオリティを追求してもなぁ、と思ってたけど、カットシーンはすごい綺麗になった気がするな。AC7をそこまで覚えているわけではないけど。

 しかし、アーセナルバードくらいならまだ受け入れられるけど、陸上戦艦はなぁ……




 キックステージを開発している会社。「これまで半年から1年かかっていたLEOからGEOまでの遷移を8時間で行う」だそう。いやぁ…… すげーや。10年前までの半世紀では当たり前だった運用が今では宇宙ベンチャーがアピールする内容になるんだもんな。


 全電化衛星にAKEを積むオプションがあれば、発注時点では半年かけてORを実施する予定だったけど、打上げ数ヶ月前にトラフィック需要が急増したから追加費用(AKE+ロケット打上げ能力)で打上げ数週間後からサービスイン、みたいな選択肢が出るかもな。あるいは、OR中に受けるヴァンアレン帯での被爆を減らしたり燃料消費を減らしたりで運用期間も伸ばせるわけだし。AKE用のインターフェースを用意しておけば、使わなくても後で使えるかもしれないし(AOCSが劣化ないし故障してもサービス衛星を結合するインターフェースに使えるとか)。まあ、そういう事を考えてある時代の衛星なら最初から考えてあるだろうけど。




 LOX冷却/IPA燃料の液体ロケットエンジン。燃焼室やスロートをオルソグリッドで補強してあるロケットってあんまり見かけない気がする。

 インジェクタは3Dプリントと切削のハイブリッドで、外注だそう。どういうプロセスで作ってるんだろうか? 内製するなら松浦のLUMEX(+EDM)なら一発で作れそうだけど、でも外注である程度のスループットのある工場なら積層+切削を分離したほうが作りやすかったりするのかな?

 別の動画でパリにある工場の動画では、DNのマシニングセンタとターニングセンタが1台ずつ置いてあるのかな? 金属積層は外注して、仕上げは内製で、って流れだろうか。


 チャンネルの説明を見る感じ、宇宙系ベンチャーとは全く違う業種で、航空宇宙や防衛関連の部品製造を受注したい感じらしい。で、そういう工場をたくさん作る(フランチャイズ化する)のが目標らしい。曰く昨今のサプライチェーンの混乱を踏まえて、レジリエンスのある部品供給網を作る、みたいな。仮に1箇所の工場が停止しても供給は途絶えない。

 フランチャイズした工場に発注するのは、サプライチェーン攻撃やソーシャルエンジニアリングの窓口が何倍・何十倍にも増えるわけで、航空宇宙や防衛みたいな重要な領域に対してはリスクな気もするが。それに耐えようとすれば各種認証を取るコストも馬鹿にならないだろうし。工場のアイソレーションがしっかりしていれば、どの部品をどこで作っているかわからなくなる、という点では有利なのかな?

 あとは、半ばコモディティ化した製品の量産みたいな面では使いやすそうではあるか。昨今のジェットエンジンを積んだ使い捨てのドローンを大量に製造したい、みたいな場面で、5軸のマシニングセンタやターニングセンタが欧州中に分散していたり、とかは。

 なんつーか、ピアピア工場っぽい感じがするな。



 日本物理学会2026年度公開講座PR動画「物理学者に“ひも”について語ってみてもらった」 - YouTube

 1次元(パスタ)の話をしているときに2次元(面)の話が出てくるとややこしいな。麺と面。日本語の難しさよ。両端がつながったパスタを作れば極一部の物理学者にはウケるかな? 生地の接続か…… 紐の端を接続するよりは、面の端を接続して円筒にしてから切ったほうが作りやすそうだ。穴が一つのマカロニを1次元で近似できる程度に短く切った形。乾麺で売るのはめちゃくちゃ大変そうだが。農業系の研究もやっている大学なら、試作品程度の製麺はできそうだな。6次産業と理論物理の研究室が一つの敷地にある大学か…… 東大とか、どこにでもありそうだ。


 短い紐を配っている人は昔のアメリカ海軍にもいたな。en.wikipedia曰く「1フィート弱 ー 11.8インチ(30cm)」だそう。11.8インチは29.972cmなので、29.9792458cmに対して0.024%の誤差(30cmだと0.069%の誤差)。まあ、インチ法で小数点表記はキモすぎだろ、という感もあるので、たぶん30cmなんだろうけど。そりゃ反時計回りに回る時計を使っているアメリカ人だからな。ヤード・ポンド法は嫌いだろうし。/* 光速の覚え方:憎くなく、西ゴーヤ(299792458)。「西にゴーヤ」だと2997924258になってしまうので注意 */



「4本のボルトだけで主翼を…」 ボーイング最新無人機の“異常な合理的設計”…なぜ可能なのか?(乗りものニュース) - Yahoo!ニュース

 ボーイングが開発するMQ-28「ゴーストバット」は、高性能だけでなく「速く、大量に作れること」まで重視した機体です。その構造を調べると、意外にも旅客機787で培われた製造技術が生かされていました。

 昔のアメリカの航空業界って軍用機と民間機を、ノウハウとかまで含めて徹底的に分離していた印象なんだけど。時代は変わるというか、なんというか。まあ、それで事故ったり色々しただろうしな。

 確かB737のラダーの不具合(低温のアクチュエータに高温の作動油が入ると指示と反対側に作動する)も、軍用機では熱衝撃試験が行われていたがそのノウハウは民間機にはなかった、みたいな背景があったはずだし。運用面でも軍と民間を区別していたことでF-4空中衝突事故みたいなことが起こったし。あとは、単にコスト的な問題もあるだろうし。やはり2000年代に入ると分離とか言ってられずむしろCOTS化をどんどん進めているんだろうし。


 主翼のボルトは左右で4本って事はないだろうし、片側4本ならF-16の16本に比べて4分の1ではあるけど、機体寸法の違い、ガンガン振り回す戦闘機と大人しめの無人機、安全率の違い、50年分の冶金の差、位で納得感はある。2本じゃ明らかに少ないし、3本じゃバランス悪いし、6本は必要無いし、くらいでちょうどいいのが4本だったんじゃないだろうか? あとは、少なくとも1本くらいは外れロットで破断したとしても定格の3本が残っていれば支えられるはず、位の設計はしているだろうし(故障許容設計ってどれくらいの想定をしているんだろうか。わざわざ4ロットを作って混ぜて使うなんてこともしないだろうけど)。



 米海軍が「改もがみ型」導入を検討――日本は“あて馬”か? チャンスはあるのか? 大混迷の次期フリゲート計画(乗りものニュース) - Yahoo!ニュース

 絶対にお断り! もがみ型護衛艦のアメリカ海軍による採用検討は「貧乏くじ」 | Motor Fan|自動車情報のモーターファン

 同じ乗り物系メディアでも、かたや「アメリカが採用を検討するだけで箔が付く」派と、「アメリカ海軍のゴタゴタに巻き込まれる」派があっておもしろいなって。


 新型FFMの場合、幸いにして日本には「オーストラリアモデル」があるから、「ウチのはアズイズでの提供です」で押しきれないものかな。韓国やトルコのような積極的な輸出に力を入れている国は顧客のカスタマイズをある程度受け入れているはずだけど、逆に日本はカスタマイズせずに凍結して提案することで、迅速な能力化を提供できる。客から注文を受けて作り始める料理と、解凍・加熱するだけで出せる冷凍食品、みたいな。そのアナロジーで行くと、大量に売るなら解凍する手間のないファストフードのほうが早く提供できる、ってことになるけど、当たらずとも遠からずか。

 オーストラリアモデルで日本が最初の数隻の建造を受注すると海自向けの建造がさらに先送りになるけど、幸いにして相手はアメリカだから、海自向けが遅れる間はアーレイ・バークを1,2隻追加で派遣してくれないかな、とか。



 北海道 十勝岳 噴火警戒レベル3に引き上げ 入山規制 | NHKニュース | 火山・噴火、北海道

 なんかヘリ飛んでったなーと思ったらこれか。


 スマホがいきなり大音量で鳴り始めて、緊急速報メール。文面のタイムスタンプと受信時刻で6時間近くラグがあるけど。NHKの避難指示の速報もその後に届いたから、役場でミスって全部止まってたのかな? 一度やらかせば当面は即応できるようになるでしょう。その経験が役に立たないことを願うばかりだが。


 ↓JA65NH、NHK、FL41。

 飛行高度が低いからか、ガソリンエンジンみたいな乾いた音がした。

 ↓JA6912、HBC、FL46?

 ↓たぶんJA001H、HTB、FL45?

 ↓たぶんJA03HP、道警、FL30?

 他にも飛んでいたはず(飽きちゃった)。

 上の4機の内、JA65NH、JA6912、JA03HPはMode-Sを出していて、JA001HはA/Cのみ。


 NHKの機体はちょっと低めだった印象だけど、それでもHBC/HTBと比べて400ft(120m)程度しか変わらないんだな。撮影場所からの高低差は1200mくらいだから、距離で1割変わればだいぶ音も変わるだろうけど。



 NHK(の外注先)なり、テレビみたいな映像メディアでRQ-1クラスのドローンを買おうみたいな動きってないんだろうか? 巡航速度がヘリの半分なのは即応性の点では厳しいけど、滞空時間の長さで十分補えるはずだが。NHKが使っているヘリに比べれば価格も低いし。即応が必要な事態になったらまずは有人ヘリで素早く動いて、災害時みたいに長時間の撮影が必要な場合は大型の固定翼ドローンも出して、みたいな使い分けはできそうだけどな。足が長い空撮カメラがあればいろいろ便利だろうし、高高度固定翼型のRPAなら報道ヘリの騒音問題も避けられるし。そんな機体をどこから買ってくるんだ、という問題はあるにしろ。

 報道で使える程度の大型ドローンは、飛ぶだけの機体を作ろうと思えば作れるだろうけど、人口密集地の上空ばかり飛ばすから、それに耐えられる安全性を確保するのが大変そうだ。じゃあ最初から有人の耐空証明を取っている有人機を使ったほうが楽じゃね、ってことになるのか。



 不意の停電。漏電ブレーカーがトリップ。心当たりがあるので、それを分離して復帰。屋外の水回りで使っていた機械(いちおう、僕が設置したものではない、ということだけは)。

 デスクトップPCがぶら下がっているUPSは停電開始時点で残り25分の表示。ちょっと減ってきたような気が……? メーカーのランタイムのスペックと比べると半分くらいしか無い。2021年に買ったUPSだから電池はそろそろ寿命が近そうではある。

 交換用の電池、Amazonには在庫は無くて、MonotaROは欠品中だが3.9万円の表示。3.5万円で買ったUPSの交換部品が3.9万円? 新品買ったほうが安いやんけ、と思って本体を調べたら7.8万円で販売中。うわーぉ、2倍以上値上がりしてるのか。あらゆるものが値上がりしてるなぁ。ASKULによると電池はメーカー都合で販売停止中だそう。いくつかのショップを見ても在庫無し。どうしたものか。

 このメーカー、同じ製品でも国によって型番が違うので分かりづらいけど、おそらく米国向けの同等品の交換用電池(少なくとも電圧・容量・寸法は同じ)は、米amazonからは日本への出荷不可だが200ドル程度で販売中、日amazonのマケプレ並行輸入経由で買うと6.6万円、くらい。並行輸入の仲介業者、なかなかすごい商売をしておる。

 ちなみにこの電池、相対性理論が活躍する鉛蓄電池である(一般相対論的効果で停電を遅らせているわけではない)。相対論の応用でGPSはありふれた説明だけど、最近は鉛蓄電池ってあんまり身近じゃないからなぁ。統計的には車は1家1台の割合だから、それを使うためには鉛蓄電池もまだまだ現役のはずなんだけどね。リチウムイオン電池を満載した電気自動車だって補助電源に鉛蓄電池を使っているものもあるわけだし。



 Linus Tech Tips、以前は社内インフラ(ネットワークやストレージサーバー)を自分たちで構築していたり、あるいは普通は見られないエンタープライズ向けの機械を紹介したり、工場見学に行っていたりしていて面白かったけど、ちょっと前からはコンシュマー向け機器のベンチマークを取るばかりになって、最近は欠点ばかりを取り上げるカスのレビューばっかりで見てて面白くない。まだガジェット系YouTuberのレビューのほうが有益。その点でLTTはもうテック系YouTuberどころかガジェット系YouTuberですらない印象。あえて分類するなら金遣いの荒いYouTuber。

 YouTuber全体的に、自分が扱っているものを丁寧に扱わなくなったら終わりだよねー、って感じがある。説明書を投げ捨てるところから始まって、物自体を雑に扱ったりすると、終わりに向かっている雰囲気。少なくとも、僕はそういうYouTuberは嫌い。



 Fire HD 10タブレット、以前は付属のACアダプタ以外で充電すると電源容量不足で低速充電しかできなかったけど(付属のACアダプタの定格電圧は5.2V)、いつの間にか普通のACアダプタで通常の速度で充電ができるようになった? 当然そうあるべきだし、邪推すればEUあたりからクレームが付いたんだろう。で、ソフトウェアアップデートで制限が解除された、とか。ソフトウェア定義万歳!!


 Pixel 9aの標準カメラ、音量(シャッター設定)長押しで動画を撮影できるけど、動画撮影中に録画アイコンをスワイプすると音量ボタンを離しても録画を継続する機能がいつの間にか使えなくなっている(アイコンは出るがスワイプ操作を受け付けない)。1月に投稿したエントリで、録画ボタンをスワイプすると録画しっぱなしにできる、と書いているから、その後で仕様変更された? 常用する機能じゃないけど、あれば便利なのに、なんで使えなくなったんだろう。

 そういえば、当時はPixel 6aを使っていた頃か? 試しにPixel 6a(16、260405)を起動してみると、こちらはスワイプで撮影継続ができる。Pixel 9a(17、260805)では使えない。ソフトウェアバージョンの問題か、あるいは何らかの機能でインターロックされているのか。最近のソフトウェアは変更やバグが多くて使いづらい。。。/* 久しぶりに6aを起動すると指紋センサの認識が遅すぎてびっくりする。全然ロック解除できねぇんだけど!? */


 Pixel 9aの標準カメラ、外付けのGoProとUVCに対応したと明記してあるけど、少なくともUVCは接続しても標準カメラからは認識されない。ただし動画モードに切り替えるとUVC内蔵マイクを外付けマイクとして認識しているから、USBデバイスとしては使えているはず。試しにYouTubeアプリでカメラを開いたら、UVCカメラに切り替えることができた。ただ、カメラ切り替え機能は明らかにOS側の実装だから、カメラアプリ側はあまり手を入れなくても対応できる気がする。標準カメラも対応してくれ。

 CVBS→HDMIアダプタとHDMI→UVCアダプタをPixel 9aにぶら下げてみたら、YouTubeアプリで真っ青な画面が表示されたから、たぶん外部からCVBSを突っ込んだらそのままYouTubeの撮影や配信に使えるはず。さすがにプレビュー画面を見てスーファミとかを遊ぶのは厳しそうな気がするけど、できなくはないかも。もう少し実用的なところだと、UVCで映像を出せるデジイチとか、あるいはHDMI出しカメラ+UVC変換アダプタを接続すれば、高画質なカメラで撮影してそのまま配信とかに使えて便利そうではある。最近のスマホカメラは進化が著しいから、わざわざ外付けカメラを使うほどかというと怪しいけど。そういう用途を求める人はできるだけコンパクトにしたいだろうから、デジイチとかも持ち歩きたくないだろうしな。その点で言えば、GoPro ILSをWiFi経由?でPixelの外付けカメラとして使える機能は結構便利そうか?

 別のPixel端末のカメラを使用して撮影することもできるらしいけど、aシリーズは非対応とのこと。あと多分同じGoogleアカウントに紐づいた端末が必要だから、何人かの出演者が集まってそれぞれのスマホをカメラ代わりにスイッチングして、みたいな使い方は難しいはず。撮影側で複数台の端末を用意してそれぞれに同じアカウントでログインして、みたいなことをやれば可能かもしれないけど、そこまでして複数のスマホカメラを切り替えて使うような状況はあまり想像できないな。誰かは使うんだろうけど。


 AndroidがOSレベルでUVCソースデバイスとUVCシンクホストに対応しているなら、ますますUVCシンクデバイスにも対応して欲しくなるな。PCとPixelをUSBケーブルで接続して、UVCシンクデバイスを選択して、PCからはUSBモニタとして認識されて、Androidの標準カメラアプリでスクリーンキャプチャを行ったり、PC画面をそのままYouTubeに配信したり、いろいろできそう。



 特に大型のガントリー型マシニングセンタで自動ヘッド交換が可能な機械、下手するとラムの先に超小型のマシニングセンタをつけれそうなやつ、実際にそういう機械って無いんだろうか? 例えば100x100x100mmくらいのワーク領域で、3万RPMとかでブン回せるようなステージをぶら下げて、大きな金型を精密に削る、みたいな。巨大なガントリー全体を細かく動かす必要がないから省エネで細かく削れる。

 巨大な多関節ロボットの先端に小さい多関節ロボットを乗せて細かく制御する、みたいな使い方は見たことあるような気がするけど、マシニングセンタをスタックするような使い方は見たことない。スケールがそこまで大きくないとか、精度を求めようとすると大きい方を無理やり動かしたほうが誤差を少なくできるとか、そういう違いなんだろうか。ロボットの場合は先端のロボットでフィードバックできるけど、マシニングセンタのフィードバックループはそこまで小さくできない、というのもあるだろうし。



 ドローン用のTDIイメージセンサって無いんかな? ドローンで地表を本質的に高解像度で撮影するためには低い高度で撮影を行う必要があるが、移動速度が高いとブレが大きくなる(高高度・長焦点距離でもブレは同様)。一々移動・停止を繰り返して撮影すると時間的なロスやエネルギー消費が大きくなる。固定翼ドローンにTDIイメージセンサを乗せて高速飛行させれば、高解像度でブレのない写真を大量に取得できる。あるいは、TDIラインスキャンカメラで連続撮影してもいいが。道路・河川・送電線のような1次元的な巨大構造物の管理にはかなり役に立ちそうな気がする。

 マルチコプターはただ飛ばすだけでも風切り音がうるさいし、加速時はより大きな音が発生する。固定翼ドローンなら複数のプロペラが干渉して大きな音が出るような問題はあまり無い。ドローンで使えるTDIカメラがあれば便利そうだが。

 適切に撮影するには機体の運動量とか色々な情報が必要になるけど、GPS/IMUで機体の速度や加速度を取得して、撮影したデータにもそれらの情報を付与して精密に位置を記録したり、ドローンの背中にスペクトルセンサを追加して撮影画像の色補正を行ったり、センサシステムとしてパッケージングすれば色々な応用ができそう。

 浜ホトとか三菱電機あたりでマルチスペクトルTDIラインスキャンセンサとかは作れそうだけど、こういう規模の大きい企業が手を出すには固定ドローン用のサーベイセンサは需要は少なそうだなぁ。



 攻撃用/迎撃用みたいな徹底的な量産性と低コスト化が求められる用途でのジェットエンジンって、どこまで最適化できるんだろうか?

 強烈な熱エネルギーが結構大変そうなのよなー。ファンやコンプレッサーは連続繊維強化樹脂とかで射出成形(金型に繊維を入れてから閉じて射出)すれば相当なものが作れるだろうし、ドライカーボンとかで作るよりは圧倒的に低コスト・高スループットで作れるだろうけど、直火で炙られるタービンはどうしようもない。さすがにダイカストでとかは厳しいと思うのだが。

 樹脂の射出成形で型を作って、それを砂に埋め込んでロストワックスとかが落としどころか? 切削でやるなら、ターニングセンタみたいな汎用機じゃなくて、エンドミルが何十本も生えた空洞に丸棒を何往復かさせて2.5次元的なブリスクを量産する、とかはできるか。あとは鉄金属みたいに耐熱性のある材料を押出加工してから輪切りにしてブリスクに、あるいはターニングセンタでもうちょっと整えてから輪切りに、とかはできるか。

 ターボジェットエンジンを作るのであれば、昨今のエネルギーハンドリングを考えると、LiPo+EDFでコンプレッサーを作って燃焼室で燃やしたものをそのまま吐き出す、みたいなことはできそう。ターボジェットエンジンというか、むしろアフターバーナー付き電動ダクテッドファンという感じ。高温ガスに触れる部分が少ないから量産性は良さそう。コンプレッサーはアルミの表面仕上とかで入熱を減らしたうえで強制空冷で頑張るとか。LiPoの重さも含めると燃費はだいぶ悪くなりそうだけど。結局燃料を燃やして熱エネルギーを作るなら熱サイクルを完成させないと弱いのよなー。ただ、ターボジェットエンジンは噴流が高速だから燃費は悪い一方で最高速度は高そう。迎撃ドローンみたいに高速性が求められる用途なら意外と使えるかも?


 ジェットエンジン1個にアクチュエータ1個で、Rolling Airframe Missileみたいなものを作ったら、だいぶ安くジェットエンジン型迎撃ドローンを作れないかな。弾頭に固定したラインスキャンセンサで純追尾的に追いかけて、近づいたら燃料タンクに埋めた爆薬で起爆して燃やす。起爆モードによっては燃料気化爆弾的に使えるから、構造の弱いドローンなら真上や真下あたりで起爆すれば直撃しなくても破壊できる。位相を選んで燃料を放出できるなら多少横にズレていても真上や真下にガスを撒けるから、より効率的に圧力を与えられる。


 そもそもターボジェットエンジンってなんで同軸上に2つのディスク(コンプレッサーとタービン)が必要なんだろう? 1枚のディスクを径方向に3分割して、一番外側をファン、中間をコンプレッサー、中心側をタービンに使って、前から入ってきた空気を燃焼室に入る前に180度曲げて、燃やした空気を前に送りながらタービンにエネルギーを吸わせて、それを適当なダクトから吐き出す、みたいなことをやっても良さそうな気がするが。あるいは、タービンが外側、ファンが内側で、タービンを回し終わったガスをエンジンの全周から吐き出すとかでもいいけど。

 もちろん色々な欠点があるんだろうけど、多少の燃焼効率の悪化とかを許容して徹底的に低コスト化するなら、ディスク1枚で回るターボファンエンジンは便利そうだけどな。まあ、耐熱性が不要なファンやコンプレッサーまでタービンと同じ材質で作らなきゃいけないから、加工の手間とかも含めると結構高く付きそうだけど。



 今週は少し趣向を変えて、フーリエ変換周り、特に混合基数FFTっぽい部分を触っている。相変わらず苦戦中。欲しい機能にはもう少しで手が届きそうな感じなんだけど、そのもう少しが遠い。混合基数FFTは大量のループをネストしたりカスケードしたりするからどこが間違っているのかわからん。



 表現から革命へ:FFTの歴史とコンピューティングの未来を祝う | IBM

 その結果、離散フーリエ変換の計算量がO(N2)からO(N log N)に削減されました。これは大幅な改善です。

 N>100で計算量増えますが。。。DFTの計算量はO(N^2)ね。


 How IBM Research first demonstrated the Cooley-Tukey FFT - IBM Research

 (現在の)FFTの起源の話とか。

 地震の表面波・P波・S波はそれぞれ伝搬速度が違うからフーリエ変換すれば分離できる、みたいな原理らしい。そんなに明確に速度差が出るんだろうか? サンプリング時間が長いからそりゃ周波数分解能も高いか。



 物の本で、ちょうど非ユークリッド幾何学に関するガウスへの献本の話題のあたりを読んでいるんだけど、曰く「30年くらい前に研究したけど出版する予定はなかった。自分で出版する必要がなくなってラッキー」みたいなことを返信していたらしくて、そういうとこやぞ、って感じが。テメーがそういう姿勢だから我々は核兵器の脅威に怯えて過ごさにゃならんのだぞ。

 研究者の皆様はくれぐれも研究成果はちゃんと記録に残してメジャーな誌で発表するようにしてくださいね。それが100年後の人類を救うかもしれないんだから。


2026年9月9日水曜日

小ネタ






 カフェオレ!? ラーメン!?

 USSサンタフェ、見覚えのある名前だ。

 全体としては数エピソードにわたって特集したSmarterEveryDayのほうが圧倒的に詳しいけど、とはいえそちらでは見れなかった部分(セキュリティ上削除された部分)も見えたりして、米海軍もいろいろアクセス制限を変えてるんだろうな。あとは氷海域で使うようなシステムも追加されていたりとか。




 マスドライバーみたいな用途のやつ。

 大量の薬室を精密に点火しなきゃいけないってのが剣呑よな。


 今後10年20年のスパンで宇宙利用が発展したとすれば、その時代には地上から完成した衛星を打上げるなんて非効率なことをやる必要は無くなる可能性もあって、そうなれば耐衝撃性で大きなアドバンテージのある生の素材(ソリッドな金属やタンクに入れた液体材料)を地上から上げるだけで良くなるし、そうなればこういうマスドライバー的な投射方法に利点が出てくる。わざわざ液体ロケットみたいなものを使って丁寧に運ぶ必要がない。

 極論すれば月面で入手性が悪い元素だけ適当に梱包して月面に撃ち込んで、向こうでレゴリスからそれを掘り起こして工場に運ぶ、とかでもいいわけだし。38万km離れた100kmくらいの目標地点に打ち込むのは結構大変だから何らかの誘導は必要としても、その程度ならちょっとした電子機器+固体スラスタアレイでいいし。

 あるいは、そこまでいかなくても、爆装した戦闘機みたいに燃料タンクはほとんどカラで軽い衛星を安いロケットで打上げて、燃料はマスドライバー(+AKM)で軌道上に運んで、上で燃料を補給するみたいなことだって考えられるし。「乗り心地は良いが非効率(高価)なロケット」と「安価だが高衝撃なマスドライバー」の二者択一ではなく、それらの組み合わせという未来は十分現実的なはず。

 それに上で燃料を補給できるようになれば、今では考えられないような衛星も作れるようになるかも。特に惑星間や恒星系へ出ていくような探査機とか。精密な探査機は地上で作ってロケットで打上げて、莫大な燃料はマスドライバーで安価に打上げ。大量の化学燃料を消費して気軽に木星や土星の探査に。あるいは、化学エネルギーでも足りないなら、原子炉+核燃料はロケットで打上げて、反作用を得るために捨てる物質(水とか)はマスドライバーで、みたいなことも。一旦小惑星帯に寄って燃料(核物質や水)を補給する、そのための工場も打上げる、みたいなことをしなくても済む。



 米海軍フリゲート候補に日本の新型FFM 最大2隻を米国外で建造する案も #エキスパートトピ(高橋浩祐) - エキスパート - Yahoo!ニュース

 新型FFMを買えば太平洋地域で運用する場合に大規模な投資をせずに豪州で整備・補給できますよ~ってあたりはアピールポイントになり得るのかな? 対中国を考えたときに、韓国や日本に拠点があるよりは、ちょっと遠いけど豪州で本格的な整備ができれば、アメリカまで持ち帰るよりは便利そう。そもそも正面戦闘でフリゲートを前線に持ってくるのかはともかくとして。ESSMを満載して機動性が高い船を船団防空用に何隻か自由に動かせれば便利そうではあるが。ガチの対艦ミサイルはイージス艦1隻で対処して、対応が簡単なドローン類を相手にする防空艦をフリゲートで、みたいな。なんだかイージスでBMDをやってその間の防空はあきづき型で、みたいな時代に戻りそうな感が。

 米軍が「うちのミサイルを載せれるようにしろ!」とか言って、日本が「しょうがないなぁ」みたいなスタンスで対応して、いつの間にか新型FFMに積めるミサイルの種類が増えて汎用性が向上する、みたいなシナリオが書けるといいのだが。オーストラリアも弾薬の購入の幅が広がって便利だし(少なくとも日本製の弾薬を有無を言わせず買わせる見たいな絵面にはならないし)、そういう道筋が作れれば他の国(ニュージーランドとか?)にも売り込みやすくなるかもしれないし。逆に、最近のアメリカに対して信頼が難しくなっている状況では「アメリカ以外からも日本製の弾も買えますよ」というアピールポイントもあるし。



 日立が25年ぶりの宇宙事業再参入へ、「構造化電波」で衛星地球観測を革新:宇宙開発(1/2 ページ) - MONOist

 日立、宇宙からインフラ・災害を3次元監視する『構造化電波技術』の衛星搭載に向けた原理検証に成功:日立

 日立、宇宙からの災害監視・インフラ管理の精度を高める「構造化電波」技術の原理検証に成功 - 研究開発:日立


「構造化電波」、ググってもほとんど情報が出てこない。関係者っぽい名前で探すと衛星とか電波だけでなく、医療用のプロービングみたいな研究も出てくる。手広いのか手当たり次第なのかいまいち判断しかねるな。


 全方位からの電波を観測し宇宙状況把握を高度化。 都市インフラの監視や環境モニタリングへの適用をもめざす。 - 研究開発:日立

 音の研究がしたくて日立に入って、建機や自動車・鉄道車両の低騒音化とか、環境とか、宇宙とか。まあ、波で一括りにできる話なんだろうけど、手広いことよ。


 Structured Radio Waves for Radar Imaging | AIAA SciTech Forum

 概要だけ


https://www.jstage.jst.go.jp/article/jesa/4/0/4_273/_pdf/-char/ja

 英語論文。結構色々書いてある。

 日立のページにある平面(凸形状)や螺旋形状の図についての説明も書いてある。平面の波も円偏波の図らしい。

 衛星の文脈で軌道角運動量と言われると衛星の運動量を使った方式(SARとか)っぽい雰囲気だけど、でもスピン角運動量(SAM)と軌道角運動量(OAM)が並ぶと量子論アナロジーっぽいな。無理やり宇宙機で考えるならSAMが衛星自身が持つ角運動量、OAMが軌道運動由来の運動量、みたいな感じかもしれないけど。そう考えると、SAMが偏波面の回転とすると、OAMはそのフレーム自体を回している感じになるのか。とすると、GIFのアニメーションも、なんとなくイメージできるか??? いやぁ…… どうだろ。


 Twisted light transmission over 143 km | PNAS

 光のOAMを使った実験。現在の光ファイバはOAMを保存できないから自由空間で飛ばす必要があるが、OAMは散乱の影響を強く受けるから光の波長で飛ばすのは大変、ラ・パルマ島で143kmを実証。みたいな話らしい。そりゃまあ、あれだけ望遠鏡を置いてある場所ならシーイングも良好だろうよ。


 テラビット級無線伝送をめざす大容量OAM多重伝送技術 | NTT技術ジャーナル

 高効率・大容量無線伝送を実現するOAMモード多重伝送方式: Vol.75 No.1: オープンネットワーク技術特集 ~オープンかつグリーンな社会を支えるネットワーク技術と先進ソリューション~ | NEC

 OAMは直交しているから多重化に使える。情報通信に使えば帯域幅や変調方式を変えずに伝送情報量を増やせる。OAMレーダはその多重化した電波毎に異なる散乱が発生することを利用して対象物を見る、みたいな感じかな。多重化するとビームが広がる(メインローブの中心の穴が広がる)。日立はリフレクタ(オフセットパラボラ)で絞るけど、NTTはアンテナアレイで絞る(MIMO技術を流用できる)。

「OAM多重伝送は理論的には無限に多重化できる」そう。いや、そんなこと言ったらQAMだって無限に多重化できるでしょうよ…… と思ったけど、QAMは結局振幅変調だからプランク定数とかで限界になるのかな(もちろん実環境ではノイズで制限されるけど)。アンテナを円周上に並べるとアンテナ数とモード数が一致するらしいから、無限のモードを表現するには無限のアンテナ素子が必要になるはず。「理論上は無限」なぁ……

 電波のOAM多重化はいろいろな組織が研究・発表しているから、そっちから攻めると理解しやすそう。情報通信は未知の情報を相手に伝えるのが目的だけど、レーダは既知の情報を送って未知の変化量を推定するので、考え方としてはそう変わるものではないはずだし。


 日立のレーダは、28年にエアボーンレーダーで実証、30年に同レーダで商用サービス、33年に衛星レーダで実験、35年に衛星レーダで商用サービス、というようなタイムラインを想定。ミッション機器の実証用の打上げが7年後だとさすがに日立で衛星を内製は難しいかな? どこかに発注するんだろうか。しかし、QPSだとセンターフィードだし、膨大なデータをハンドリングするのは難しそう。ASNAROにオフセットパラボラを積んで計算能力の高いコンピュータも乗せる、あるいは三菱電機に衛星を発注する、もしくはQPSやアクセルスペースと共同開発、みたいな方向性とかかな。

「日立が衛星に(再)参入」というのが目的で7年後に打上げというスケジュール感なら自社開発もあり得そうだけど、目的が自社開発のレーダーの実用化という点だと、どこまで衛星(バスシステム)に力を入れるかどうか。三菱電機が衛星バスシステム製造(+ミッション機器インテグレーション)をやっているみたいに、日立も衛星製造に参入する、みたいな話ではなさそうな気がする。



 Sailor error led to failed US Navy ballistic missile intercept test

 2017年の記事。SM-3IIAの迎撃テストの失敗の原因について。ターゲットの弾道ミサイルを誤って友軍指定したので、それに向けて撃ち込んだSM-3が途中で自爆した、とのこと。まあ、ありそうな事態よな。普段は味方を誤射することがないように徹底的に訓練しているだろうし、明らかに味方の基地から撃ち出されたミサイルをレーダーで見て、高ストレス環境下で普段の訓練通りに作業すれば、そりゃ味方指定してもおかしくはない。

 しかし、イージス艦の射撃管制システムだって撃つ前に味方指定されていればインターロックがかかりそうなものだが。IIAってことはかなり射程が長いだろうし、Launch on Remoteみたいな感じでまずは適切に敵認定されたミサイルに対して射撃して、発射後にイージス艦のレーダーに入ってきたターゲットを味方指定して、それがデータリンクで送られて、SM-3が慌てて自爆した、みたいなことなんだろうか?



 最近のamazon、無料提供の商品でレビューを書くとラベルが表示されるようになったけど、しかし無料提供でレビューしてる人の多いことよ。10件近いレビューがあって全部無料レビューとか。



 そういえば、古めのISAS系のロケットの電装系で、読み間違いでなければ、外部から高頻度(数十Hz)にリセットを掛けて、つまりメインループでプログラムを処理するのではなく、1tick毎にプログラムのロードやら各種初期設定から結果の出力までをやるようなシステムを積んでいたやつがあった気がする。マイコンの中身(RAMやペリフェラル)のビット反転等に対してかなりロバストな設計。少なくとも3tickで多数決を取ればほぼ確実にエラーを捨てることができる。過渡的な要因で無限ループに入ったりしても、すぐにリセットされる。あくまでもリセットピンなりWDTなりでリセットしているだけのはずだから、ラッチアップとかを解消できるわけではないけど。

 トレンドを見たりコマンドを受信するには一工夫必要になるから上位で使うのは難しい気もするけど、末端からデータを送り出すだけだったり、あるいはtick分解能よりも高い周期でコマンドを出したりできるのであれば、ロバスト性は高そう。あるいは、高信頼なメモリ(根本的に信頼性が高いメモリ、あるいは適切なECCロジックの併用)を使用すればトレンドについても見ることができる。ECCロジックを内蔵RAMにも適用すればRAMのビット反転はマイコンのリセットを行わずに対処できるけど、ペリフェラル周りはどうしようもないから、本質的に放射線耐性が高いマイコンができる前の一つのステップとしては良さそう。



 以前のテレビの話の続き。急遽「使うかはわからないけど使えるようにしておいたほうがいいよね」事態が発生したので、その対応。

 屋根の上の作業も大きな怪我無く無事終了。小さいところだと、屋内作業を終えて靴を履こうとしたら手が滑って爪が剥がれかけた、とか。成端中に芯線や網線を指に刺すくらいは想定しうる怪我だけど、靴を履いて爪を割るって。。。思わぬところでの怪我にはくれぐれも注意しましょう(自戒)。

 クラックが入って若干血っぽい色が見えるけど、綺麗に割れたのか痛みはほぼ無し。とはいえほっとくのもあれだし、絆創膏も邪魔なので、UVレジンを薄く塗って硬化。10年前に買った小ボトルのレジンだけど、まだ使える。こういうときはUVライト付きのEDCライトを持ってるとすぐ固められて便利。UVを当てたらめっちゃ発熱して爪が割れたとき以上に痛かったけど。UVのエネルギーというよりは硬化の発熱反応だろう。UVだけでも直近で肌に数秒当ててると結構熱いけど。

 レジンを出すパレット代わりにマステを使って、残ったやつは上からマステを貼って後処理終了。ベタベタのレジンがゴミ袋とかで広がらなくて楽。幅の広いマステはほんと何にでも使えて便利。試しにマステの上からUVを当てたら硬化したので、3Mの黄色いマステ1枚ならUVは貫通するっぽい。もののついでに茶色のカプトンテープ経由でUVを当ててみたところ、硬化しなかった。茶色のカプトンテープは紫外線をある程度切れるらしい。

 試しに割れたところだけじゃなくて爪全体に薄く塗って硬化させて見たらデコボコの爪がツルツルになって、なるほどなぁ、って感じ。/* 爪ってOFDMスペクトルみがある。マルチパスフェージングとかインパルスノイズとかみたいな特性 */


 テレビの方は、とりあえず1週間くらい使えればいいという方針の元、アンテナ直下のV/U混合ブースタボックスの中で配線を雑に繋ぎ変えて、テレビに行くケーブルとUHFアンテナを直結。アンテナ直下のブースタが無くなったけど、田舎故に送受信間はフレネルゾーンに障害物は無しという理想条件で、かつ素子数の多いアンテナなので、テレビのアンテナレベルでかなり高い数値を維持。中継所も出力はスカイツリーより2桁低いとはいえ、距離はかなり近いしな。

 かなり手抜き作業なのですぐ接触不良になりそうな気もする。とはいえ、DCは通す必要はなくてUHFを通せればいいから、容量結合さえしてくれていれば…… 同軸線の延長アダプタ(2本の同軸線の接続)、両F端メスしかなくて、切りっぱなしの同軸線を延長しようとするとまず両側を成端しなきゃいけないのが結構面倒な気がする。あまり数が出ない専用部品を1個作るより、大量に売れる汎用部品3個を組み合わせたほうが安い、みたいなことなんだろうけど。網線部は適当なスリーブを圧入すればいいけど、芯線の接続が面倒そう。だったらまず成端して、ということになるのか。

 もし接触不良になった場合はハンダゴテを持っていってはんだ付けが一番楽なはず。中継コネクタは組むのが面倒なので最後の手段。戦略的問題の先送り大作戦。場当たり的とも言う。



 C#のhoge=[];で初期化できる型、[]は定数として扱って欲しい感がある。func(Dictionary<int,int>dict=[])みたいに、必要ない場合は適当な初期値(空の配列)を入れておきたいが、nullableにしたくもないし、みたいな場合に。クラスならnullableでもペナルティはないのかもしれないけど。

 あと、C#のディクショナリの初期化でいちいちnew(){{123,"hoge"}};みたいに書かなきゃいけないのも不便。早く初期化式を実装してくれ。実際のところ[123:"hoge",234:"fuga"]みたいな構文が追加されたとしても書く手間は大して減るわけじゃないし、だからこそ優先度も低いんだろうけど。



 リード・ソロモン符号は一段落ついたかな、といったあたり。色々面白い使い方も体験できたし。実用化されてないってことは実用性は無い使い方なんだろうけど。

 この際だしビタビ復号とかも復習したい感はありつつ。