2025年11月26日水曜日

小ネタ


 白っぽいルナのデザインいいなー。色合いが変わったせいかだいぶ雰囲気が変わった気がする。

 はたから見てると運営型ゲームは一人のキャラクターでもいろいろなデザインが出てくるから面白いな。自分で遊んで課金して入手しようとすると大変だろうけど。


 ルナって公式プロフィールだとハッカーと紹介されてるけど、あんまりイメージがないな。クローやギズモは明らかにハッカーだろうという見た目だけど。コンパウンドボウを普段使いしていたり、アウトドア寄りなイメージ。薄暗い部屋でパソコンをカタカタしてるようなステレオタイプなハッカーの雰囲気ではない。




「ロケットの打上げに成功しても、ペイロードの分離に失敗したら、それはロケットを軌道投入しただけ」

 いい表現だな。



 A Complete Guide to Customising Your HX50 - YouTube

 底面には3x3=9箇所のマウントがあって、色々吊れるんだそうだ。カーゴフックをつけたり、緊急用のフロートをつけたり、もちろんカメラやLiDAR、スプレー(農薬散布とか?)みたいな普通の外付けペイロードも可能。カーゴフックを追加するとモニタリング用のカメラも追加されて、メインモニタに表示できるようになるそうだ。

 あと、ローターの折りたたみ機構もあるらしい。ブレード1枚が固定、2枚がフォールディング可能、という構成かな? パイロットが自身で5-10分程度で動かせるとのこと(整備士に頼まなくていい)。

 Hx50って単なる移動手段を作ってるんだと思ってたんだけど、色々使えるように作ってるんだな。

 撮影用のジンバルやらカメラを吊った状態で140ktで飛べるとも思えないけど、とはいえ普通のモータースポーツならそれより十分に遅い速度がほとんどだろうし、空撮みたいな業務でも普及するのかもな。あるいは機体が普及すれば、通常のヘリよりは早いけど固定翼機ほどのパワーは無い、こういう機体用に空力を考えたポッドが開発されるのか。マウンティングポイントが複数箇所あるなら、一番前にカメラを付けて、後ろの方にダウンリンク用のジンバルをつけて、みたいなことも容易だろうし。スプレーをつけれるならある程度横に張り出してもいいだろうから、衛星リンクとかも伸ばせるだろうし。外付けが増えればその分速力は下がるけども。あんまり高さに余裕がないから大きなジンバルを吊るすとカメラを地面に叩きつける怖さがあるけど、かといって横に伸ばすと撮影の自由度が下がるしなぁ。

 現代に新設計したヘリとして色々通信機能も乗ってるんだろうけど、さすがにStarlinkとかは乗っていないはず…… どうだろ、載せようと思えば載せれそうだな。キャビンやテールブームも全部炭素繊維だろうし、スキンも構造として使っているだろうし、ユーザーが改造しようとすると結構面倒かも。それこそローター折りたたみ用のサポートが入っている蓋を改造するとかすればいけるかもしれないけど。安全に使いたいならメーカーオプションに期待かな。

 Starlink側としては、現在のところヘリコプター向けの純正オプション(書類仕事の簡略化とか?)は用意していないけど、「載せたいならMiniが便利だと思うよ」とのこと。Cirrusの中でStarlink Miniを使っている動画はあったけど、R44とかに載せている動画は見当たらなかった。外皮はアルミだろうし、機内に乗せるのは難しそうだ。かといってダウンウォッシュをもろに浴びる場所に平面アンテナを乗せるのも大変だろうしな。



 石神、「ゲームが下手です」とか自己紹介してるくせに、最近のダッコフ見てるとどんどん上手くなってきてるな。見下ろし型PvEだから精神的に余裕があるとかもあるのかもしれないけど。バイオで終盤を再走したときも上手かったし、初見じゃなければ上手い。

 たぶんPvPでもちゃんと勉強したうえで慣れて余裕が出てくれば強いんだろうけど、APEXのときみたいにフィーリングで上手い人と組むとちょっと難しそうな気もする。タルコフとかやってるの見たいけど、でもタルコフって他のゲームと比較にならないくらい覚えることが多そうだからなー。



 フライトシム専用コントローラー「Echo Aviation Controller」発表。ゲームパッドにギュッと凝縮、スロットルもペダルも“全部載せ” - AUTOMATON

 デザインはセスナスカイホークを意識したような感じかな。

 左上のハットスイッチ(メキシコのソンブレロと呼ばれる帽子に形が似ていることから「ハットスイッチ」と呼ばれる)は、個人的にはトリムスイッチに使いたい感じがするけど、視点移動用のアナログスイッチらしい。エレベータートリムは右側にホイールがついてる。普通のジョイスティック(机において使うようなやつ)は視点操作用のアナログ入力が無いことがほとんどだから、それ用のアナログスティックがあるのは便利そうだ。操縦と視点が競合しているのが操作しづらそうではあるけど、DCSとかで使うのでなく、MSFSで遊覧飛行するくらいなら問題ないのかな。


 ラジコン飛行機とかドローンの欧米の操作系が右スティックでピッチ・ロールを制御する原則に従えば、この手のコントローラーも右側にピッチ・ロールがあって、左側にその他の制御や視点操作があっても良さそうだけどな。と思ったけど、スカイホークとかで片側に操縦桿があるコンフィグって、パイロットは左席で、左手で操縦桿、右手でその他の操作、なのか。大型の航空機でも機長は左側。

 右手で操縦桿を持って左手でスロットルを操作する、って、ヘリコプターとか、戦闘機とか、意外と少ないのかもな。

 とすると、モード2は実機に合わせた操作系だ、という説明は、ヘリコプター(含ドローン)に対してはある程度正しいけど、航空機全般でいえば、あまり正しくないのか。2人で操作できる航空機の場合は右側に座れば右手で操縦桿を握ることになるとはいえ。あるいは、もう一回り小型の機体、例えばパイパーカブみたいな前後配置だと右手で操縦桿、左手でスロットル、みたいな感じになるか。


 パイパーカブって1947年に生産終了してるんだな。もっと最近まで作ってたものだと思ってた。10年間で2万機も作ったのかよ。



 Ubisoftが生成AI実験プロジェクト「Teammates」を発表。AIチームメイトと“四人五脚”でともに戦うFPS、音声コミュニケーションにも対応 - AUTOMATON

 シナリオ・ソロプレイのFPS/TPSが好きな僕としては期待したい技術ではある。とはいえ、声で指示ってのは結構難しい気がする。一人で遊ぶのが好きな人が遊ぶゲームじゃなくて、普段からボイチャを繋いでマルチプレイを遊んでいる人をソロプレイ側に引き込むゲームのような感じ。でも結局AIに指示するより友達とボイチャつなげて遊んだほうがマシ、PvEをやるよりPvP(or PvPvE)のほうが楽しい、みたいな感じになって廃れそうな気がする。



 Loose Wire on Containership Dali Leads to Blackouts and Contact with Baltimore’s Francis Scott Key Bridge

 昨年3月のボルチモアでのコンテナ船が橋に衝突した事故の報告。電線へのマークチューブの挿入が不適切で、それが原因で端子台へ適切に挿入されず、経年劣化で抜けたことにより推進と操舵の制御が失われた、という感じ。

 巨大なコンテナ船からすればマークチューブ一つなんてほとんど存在感のないようなものだけど、そんなものでも一つ間違えたら大惨事になるという実例。



 Amazon.co.jp: ペリー提督日本遠征記 上 (角川ソフィア文庫) eBook : M・C・ペリー, F・L・ホークス, 宮崎 壽子: Kindleストア

 Amazon.co.jp: ペリー提督日本遠征記 下 (角川ソフィア文庫) eBook : M・C・ペリー, F・L・ホークス, 宮崎 壽子: Kindleストア

 キリスト教国が捕鯨船の拠点となる植民地を欲して、現地法を大砲で破壊して回った記録なので、読んでてあまり気持ちの良いものでもないけど。まあ、帝国主義なんてそんなものよな。

 最後の解説で、当時は戦争で土地を得るか植民地化して支配下に置くのが常識だから、直接的に武力を使用せずに条約を交渉した日本は珍しい、みたいなことは書いてあるけど。

 文章量はかなり多いし、たまにセールでも売ってるので、内容を気にせず読むものが欲しいという場合はコスパはめちゃくちゃいい。文章量が多すぎて読み直す気にならないから、2周目以降も楽しみたいって場合はコスパは悪いかもしれんが。まあ、つまらない内容の1周しか読まないやつに比べればコスパは良い。


 下巻ではKindle PWのバグ?で挿絵が全部ブランクページになっていたのを気が付かず、やけにブランクページが多い本だなー、とか思いながら読んでた。解説とかも全部読み終わってから試しにシークしてみたら画像が表示されるようになった。


 交渉周りの話はともかく、冒険譚みたいなところは『宇宙のランデヴー』っぽい感じがある。軍隊が組織としてゴリゴリ進んでいく感じが似ているのかな。





 Python風のコードを書いてドローンを制御して農作業を自動化する感じのゲーム。

 基本的には放置ゲー。


 迷路を解いて遊んだりとか

 といっても、とりあえず左手法をガリガリ書いただけなので、処理効率はかなり悪いけど。

 リファレンスを見た感じ、配列やスタック等ある程度の機能はあるっぽいから、マッピングしたりして効率的に迷路を解くようなコードも書けそう。とはいえエディタの使いづらさがネック。


 コードは %userprofile%\AppData\LocalLow\TheFarmerWasReplaced\TheFarmerWasReplaced\Saves\Save0 に.pyで保存されているから、それを見ればゲーム内で書いたコードを見れる。外部のエディタで書き換えたい場合は、ゲームのオプションからファイルウォッチャーを有効にすれば、わずかなタイムラグでゲーム内に反映される。ただしオートセーブが無効になるのと、外部で書き換えても結局実行はゲーム内で指示する必要がある。

 どういう原理かわからないけど、VS Codeで開くとゲーム内の定義も補完できるようになるし、ドキュメントもオーバーレイされる(英語だけど)。謎い。ゲーム内だとまとめてインデントを変えるのができないけど、VS Codeならそういう作業は問題なく可能だから、ループのネストを変えたいときとかに便利。ゲーム内インタプリタは複数行コメント(三連引用符とか)を認識してくれないけど、VS Codeとかなら複数行にまとめて#を突っ込んだりもできるし。quick_printに辞書を入れたらちゃんと出力してくれるし、JavaScript的な雰囲気(外部のエディタで書いてブラウザを再読込してデバッグ表示を読んで、みたいな感じ)だと考えればわりと開発しやすい気もする。操作性はあまり良くないけど、ブレークポイントで止めて変数の値を見たりとか、デバッグ用の機能も最低限あるし。

 ある程度ツリーを解放していくと複数のドローンを使えるようになるけど、インスタンス化する際に関数ポインタを渡す必要があるから、そのドローンに引数を渡すような操作はできない。引数のバリエーションが少ないならラッパーを被せるとかでもいいのかもしれないけど。せめてプロセス間通信が欲しいなーという感じがある。並列処理が結構難しい。


 このゲーム、結構ナメてたけど、スキルツリーをある程度解放しようとするとちゃんと効率的なアルゴリズムを考えたり書いたりする必要があって、だいぶ教育的。ただ、僕はC#で多少なりともプログラミングの経験があるからそれなりに最低限動く程度のコードは書けるけど、全くプログラミングに触れたことがない人がこのゲームを初めて自分でアルゴリズムを考えたり、あるいはプログラミングが上達するかというと、微妙な気もする。かといってこのゲームを題材にしたプログラミング入門の本を書いたとしても、写経するだけになるだろうしなぁ。


 そういえば、DJI Telloって昨年末に再販してたような気がするんだけど、今見たら日本からは買えないっぽい? その時期を指定してググっても全く記事が出てこないのだが、そもそも再販してない?



 海外で売ってるストゼロ、アメリカでも-196°Cって書いてあるのはなにかブランド戦略があるんだろうか? -320℉のほうがキリが良いんじゃねって気がするけど。セルシウス度のほうが海外から入ってきたモノってわかりやすいからみたいな理由があるんだろうか。



 数十年前くらいの庶民の間では手書き文字が基本だった時代は、漢字を好き勝手に改変したり作ったりが容易だっただろうけど、オリジナル漢字を作っていた人ってどれくらいいたんだろう? 最近はUTF-8に含まれている漢字しか使えないみたいな場合が多いし、UTF-8に含まれていてもフォントに含まれているかどうかという問題もあるし、気軽な創作漢字は難しそうだ。一応Unicodeもいくつかの文字を組み合わせたりとかはできるけど、任意の場所に配置したりはできないからな。

 むしろUnicode(UTF-8)で自由に文字を組み合わせられる命令系統が作られると面白そうな気もする。特定の文字のXY座標とXYスケール、あとは回転もあると便利か。特定の文字コードで組み合わせる文字数を指定して、それに続くコードでXYUVRと文字コードを指定して、それを組み立てて1文字として表示する、みたいな機能。

 創作漢字以外にも、1文字だけそれに入れて上付き文字や下付き文字を作るとか、あるいは㌖みたいな文字を好きに作れるし、わりと便利な気もする。キロメートルだと6文字に対してXYUVRが追加されるからデータ容量はかなり増えるけど、とはいえ今どきバイト数で数えて切り詰めなきゃいけないなんて状況もほとんどないだろうし。


 試しに適当なアプリを試作

 とりあえず、感嘆符で囲った範囲を組み文字用のスクリプトとして認識して、5文字で座標・回転・スケールを指定する感じにしてみた。調整の必要あり。今のところすべて手打ちする必要があるので面倒くさいけど、わりと楽しい。大きさの指定は1/Nなのでかなり自由度が低い。あとは、文字の太さが自動調整されるから字面がちょっと。

 ただ、あくまでも既存の文字を組み合わせるだけだから、その枠に収まらない漢字を創作しようとすると機能が足りない。

 今回は固定長命令セット(部品1文字を6文字で表現)で組んだけど、それにこだわらないなら、例えば5次元を実数で指定すればもっと自由に設定できる。

 適当なスマホ向けアプリでピンチ操作とかで好きな場所に文字を配置できるようなアプリとかがあると面白そうだ。あとは指で書いた形に近い文字を探す機能とか。そういうアプリは探せばありそうだ。



 Glyphica Typing Survival、DPS系以外の実績は全解除。3言語は結構解除率低いかと思ったら、それでも0.4%なんだな。ヨーロッパあたりだと解除しやすいとかあるのかな(自分は日本語+英語+英語(UK)で解除)。解除した中で率0.1%の実績は2つともプレイ時間で解除できるタイプのもの(例えば総計5万単語の入力)だから、難易度はあまり関係ない。それらを除くと、3言語が一番率が低いのかな? 各武器のDPS達成もたぶん達成率低いと思う。どうやったらDPSを稼げるのか全く想像がつかない。セントリーは要求500に対して現状452.3だから1割ちょっと増やせれば達成できるけど、それが難しい。低難易度で長時間やって途中で拾えるアップグレードを稼ぐか、高難易度で最初のアップグレードを入れてDPSを稼ぐか。



 あんまり大きな声で言うと部外者がガタガタ言ってんじゃねーぞと怒られるのでぼかして言うけど、某ロボコンの地方大会、最高得点を出したチームは300点台を出して、それ以外のチームは最低限の移動ができれば得られる10点とかで決勝進出をかけてるの、はたから見たら面白くねーなー、って。やってる人たち(学生)からすれば参加に向けてチームで頑張ることに意味があって結果は重要ではないのだ、ということなのかもしれないけど、だったらちゃんと動くものを作るほうがチームワークを育むうえで重要なんじゃない?って気もするし。

 今大会のルールでは最初に得られる15点の次が200点とか300点で、線形性が悪すぎる(そもそもルールが悪い)って部分も大きそうだけど。移動したら何点、物を掴んだら何点、物を置いたら何点、ミッションを達成したら何点、みたいに細かく点数が刻んであったほうが見てて面白そうな気がする。それを数える審判や実況する方は大変だろうけど。運営がルールを作って審判を集めて自分たちで実況するから、得点計算や実況が楽なルールを作るインセンティブはありそうだな。

/* NHKの某改造番組も、出場者の「外から見てるだけのやつがガタガタ言ってんじゃねーぞ」を聞いてから見なくなっちゃったなー。まあ、最初からMC陣が騒いでいるのが好きじゃなかったというのもあるけど */



 NTSCクロック系のオーディオシステムって無いんか?と思ってぐぐってみたら、44.1kHzってアナログテレビ放送(モノクロ)に由来してるんだな。

 白黒映像の水平同期周波数(fH)15.75kHzに対して、15.75*14/5=44.1の関係。ただしこの映像信号をカラー化したNTSCではfHが約15.7343kHzと0.1%低く変更されたから、それに合わせて約44.056kHz系もあったらしい。もっとも、後には44.1kHzに統一されたようだが。

 44.056kHzの音声信号を例えば14.318182MHz(4fsc)にするには単純に325倍すればいい。これが1fscとか2fscだともうちょっと複雑なことになる。44.1kHzをこれに入れると再生速度が0.1%低くなる。



http://www.nahitech.com/nahitafu/mame/mame6/voltage.html

 ビデオ信号の伝送路、ビデオアンプから75Ωで出力して、0.1uFでAC結合して同軸ケーブルを経由し、また0.1uFでAC結合して75Ωで終端。同軸ケーブルの中が電気的に浮いているけど、この部分の帯電とかって問題にならないんだろうか?

 そういうのが問題になるような用途なら1MΩとか10MΩで引いておくし、そういうのが問題にならない用途なら浮かせたままだし、みたいなことなのかな。


 Ethernetのパルストランスも、中間点を引っ張ってはいるけど、4ペアをそれぞれ75Ωでまとめているだけで、GNDに対しては1nFでAC結合しているから、Ethernetケーブルも通常は浮いているはず。Ethernetの場合は機器間でGNDをループさせないように意図的に浮かせているんだろうけど。

 それで言うとPHY側も中点をGNDにAC結合だから、チップ側も浮いているはず。もっとも、PHY側は差動をGND付近(特に負電圧)で受け取らないように適当なインピーダンスで中間電圧に釣ってあるはずだが。

 MIL-STD-1553のコントローラーだと3.3V単電源でトランスの中点をGNDに固定していたりするから、チップ側でうまいこと工夫すれば単電源でも負電圧は問題ないのかもしれないけど。あるいは、飛行機用の半導体じゃないと許容できないくらい高コストな可能性もあるけど。



https://www.jstage.jst.go.jp/article/itej1978/34/4/34_4_269/_pdf

 FMラジオとテレビ放送の、それぞれのステレオ放送の規格の説明とか。


 アナログテレビ放送の音声信号って普通のFM放送と近しいものだと思ってたけど、結構違うらしい。基本的に各国のテレビ放送で互換性はなくて、それぞれに独自の方式を開発。ただしアメリカはFMステレオ放送と同じような方式を採用しているらしいが。

 日本のアナログテレビ放送(映像信号)がアメリカのそれとほぼ互換なのはアメリカが決めた仕様を容易に日本で再使用するために設定されたわけだけど、カラー放送はともかくとして、その後になるとだんだん日本の独自技術を使うようになってきたらしい。そもそも音声多重化(ステレオ多重or副音声多重)は世界に数年先駆けて日本が早期に実用化したものだそうで。

 元々の音声多重化放送は、様々な言語が話されている欧州で生まれたものらしい。日本では東京オリンピックの時に、選手村で使いたいということだったようだ。おそらく日本語と英語とかを多重化したかったのだろう。ただ、東京五輪には間に合わず、デモンストレーションというか実験的に運用したのみ。その後、大阪万博で使いたいということで実験等を行っていたようだ(当然だが、ここで言う東京五輪とか大阪万博はここ数年のものではなく、数十年前のやつ)。


 日本のFM-FM方式の場合、ステレオ多重の場合はL+RとL-Rを、副音声多重の場合は主音声と副音声を放送していたようだ。音声多重化に非対応の受像機で受信した場合(もしくは普通のFMラジオで受信した場合)、ステレオ多重時はL+R信号が聞こえ、副音声多重時は主音声のみが聞こえる。識別する回路が必要だし、2種類の多重化方式に対応した受信回路が必要だけど、とはいえ受信側の利便性を考えるとそうせざるを得ないんだろうな。

 副搬送波は2fH、制御チャンネルは3.5fHで多重化して、制御チャンネルに特定の周波数の正弦波が入ると、ステレオ多重または副音声多重を識別できる(それぞれ別の周波数)。制御信号を検出できない場合はモノラルとして復調する。



https://www.jstage.jst.go.jp/article/bplus/2009/11/2009_11_11_60/_pdf/-char/ja

 '64年の東京五輪で使ったテレビ衛星中継設備の話。

 日本から米西海岸へ衛星経由で中継し、カナダやヨーロッパへはアメリカから空輸。競技から遅くとも1日で世界中で放送できるようになった。

 映像信号は同期信号が負極性だが、これを2MHzの正極性に変えてダイナミックレンジを広くしたんだそう(1.4倍改善する)。副搬送波に2MHzを使うので、カラー映像は送れない。その他の工夫も合わせて画質を改善。

 当時用意したアンテナは建設期間短縮のために油圧or電動のAz/El駆動機器が無くて、手動で操作する必要があった(天頂から水平まで1時間かかる)。機器の排熱の中で上半身裸で作業したそうだ。で、いつの間にか「奴隷船」と呼ばれるようになっていたらしい。キャプスタンをぐるぐる回すイメージってこの時代からあったんだな。

 送信用の10mアンテナ、カセグレンだけど、副鏡が左右非対称の3本足だ。この種の配置、某SF作品のネトフリ版で巨大なやつが出てきてたけど、実際に使われてるのって初めて見た気がする。



 古い資料を読んでいると時々遭遇する独特の誤字、たぶん手書きを文字起こししたときに起きるんだろうけど、いまいち自信のないヤツもある。例えば文脈的にRだと思うけどSと書いてある、みたいなのとか。RとSは似てないこともないような気がしないでもないけど、ペンの動き方は結構違う気がするから、崩して書いても結構違う気がする。

 手書きからの文字起こしでよく起きる誤字のデータセット、みたいなものってないんだろうか。OCRの分野とかだとわりと重宝されそうだけどな。とはいえ、読んだ文字を機械で勝手に"修正"していいのかって話もあるだろうし、プリントされた文書をOCRするならそのまま読むべきな気もするし。


***


 ある日の1090MHz

 1200で飛んでいる機体、Mode-S系は無し、Fr24に機影無し。

 M-3/Aで1200やM-CでFL28-33くらいの高度が出ているが、同時にブラケット応答も出ている。


***


 試しに1030MHzを2Mspsで受信して振幅復調、キャリアスケルチで有意信号のみ取り出し。縦軸は任意の単位(今回はADC直読み)、横軸はマイクロ秒。



 2Mspsなのであまり綺麗には受信できない。IFF MK Xの質問パルス幅は0.8usだから、少なくとも4Msps程度は無いとパルスの高さを正しく認識できない。

 このときはFr24には民間機(A320)1機しか表示されていない。結構いろいろなパターンが有る。

 5050付近はモードSインテロゲーションかな。M-S質問は4Mbaud BPSKなので2Mspsでは正しく読むことはできない。/* ダウンリンクは2Mbaud BPPMだから本来は2Mspsで読むこともできないはずなんだけど、ADS-Bデコーダは黒魔術で復調してる */

 5250付近にはパルスが3個出ている。1つ目と2つ目は21us間隔、2つ目と3つ目は2us間隔。モードCとモードSのトランスポンダの両方から応答を得られるインターモードという質問信号らしい。

 5450付近には単発のパルスしか出ていないのが謎い。


 一応、1030MHzを見ていれば、M-CやM-Sのインテロゲーションが出ているのはわかるから、ACAS搭載義務クラスの航空機が飛んでいれば、少なくともそれが存在していることは把握できる。ただ、ACAS質問には自身の情報は含まれていないから、コードや高度を知るには1090MHzの受信が必要。

 1030MHzを2Mspsで受信した場合、インテロゲーションはインパルス信号に見えるから、わざわざ復調せず、単に振幅復調して閾値を超えたらそれを表示する、みたいなシンプルなロジックで処理できるのは利点。雷みたいな自然現象も通知してしまうけど。ACASは1Hz程度で送信を行っているから、例えば10秒間で5個以上のインテロゲーションを受信したら通知する(50マイクロ秒以内のパルスペアは1個としてカウント)、みたいなロジックは作れる。

 ただ、そのためにドングルを1本占有させるのもなぁ……という気もする。


 ACASの動作には、最低限片側がACASに対応していれば、もう一方はM-C応答を返せるトランスポンダを載せているだけでいいので、田舎の空港を拠点にしている小型機(例えば個人所有の機体)はインテロゲーションを出していない可能性が高い。ということで、1030のモニタリングはあまり使えないような気がする。


***


 試しにfl2kでNTSC信号を出力。

 fl2k→ショートスタブでオシロに接続→NTSC2HDMIアダプタ→HDMIキャプチャアダプタという感じにいろいろカスケードで接続されている。


 fl2kからは4fscで出力。


 上がNTSCをキャプチャした映像、下が元の画像。外側のオレンジの部分がブランキング領域(水平方向は1usずれてる)。色はあんまり綺麗に出せてないけど、とりあえず色相は正しい。4fsc8bitで173IREを出しているから飽和度の分解能も低い感じがする。

 上が結構切れてる。このキャプチャアダプタは垂直ブランキングがかなり広そう(下は正しそう)。

 FL2000はVGA用の0.7Vppだけど、NTSCは1.24Vpp程度が必要になる。だいぶレベルが低いけど、今回の場合は黒も白も綺麗に出ている(ちょっと白が飛んでる感じはある)。マトモなNTSCレシーバーなら6dB程度の差であればいい感じに増幅・減衰させてくれるはず。


 今回は試しにYUVのクランプ範囲を1フレーム分テーブル化してみた。それに突っ込む画像はブランキング領域を含むもので、例えば同期パルスはYが-40、UVが0に固定されたり、バーストサイクルではYVが0、Uが-20に固定されたりする。通常の映像領域ではYが0-100、UVが-33 - +33に制限される。こうしておくと、ブランキング領域を分岐で処理したりする必要がなくて、1フィールド分を一重のループで処理できる。

 ただし1重ループでfloatで持っておくと24byte/point、トータルで11MiBくらいの大きさになるので、ジャグ配列を使って同じリミットの場所は配列を再利用している。二重ループが必要になるけど、ブランキングや同期を細かく作り込む必要がない。スルーレートもあらかじめリミットに傾斜を与えておけばいいから、ループの内側で細かい計算をやる必要もない。

 今回の場合、水平走査線は9種類に分けてあるから、192KiB程度と、約60分の1まで削減できる。


 SMPTE75%カラーバー

 ↑元画像

 75%の7本と100%の白だけ。RGBで画像を作ってから渡しているので、I, Q, PLUGEは無し。今回のアルゴリズムでテスト信号を作りたい場合は何か方法を考えなきゃいけない。RGBで受ける以外にYIQやYUVで受けるモードを作ればいいんだろうけども。


 ↑NTSCをキャプチャした画像
 色の並びは正しいけど、やはりくすんでいる。

 ↑NTSCの波形

 あきらかにおかしい。


 RGBを行列演算でYIQに変換して、IQを33度傾けてUVに変換しているけど、このあたりはちゃんと真面目に資料を探したほうが良さそう。とはいえ、半世紀前とか、下手すると'50年代の資料を探さなきゃいけないのでなぁ。。。


2025年11月19日水曜日

小ネタ







 東京住みの人は地元で科学技術系のイベントが多くて羨ましい。




 カンガルーのロゴ入りの模型(一番目立つところにロゴを配置するとYouTubeの埋め込みでは再生ボタンで見えないというよくあるやつ)。

 そのうちキーウィロゴの模型とかも作るんかな? /* NZ空軍はキーウィのロゴを使っているし、海軍が使用するヘリ(空軍が整備を担当)にもキーウィが書いてあるけど、海軍はキーウィのロゴは大々的には使っていないっぽいな */

 日本の動物(特に固有種)でシルエットだけで用意に判別できる動物ってあんまり思いつかない。




 OlightってLED自体も自社で製造してるんか…… LEDはわりあい作りやすいチップではあるのかな? 極端な微細化も不要だし、配線を何層も重ねる必要もないし。中国ならパワエレ用のSiC製造ラインを中古で買ってLEDに振り分けてとかすれば安く一通り揃えられそうだし。一旦半導体に手を出せば、そのうち制御用のロジックチップとかDCDC用のパワエレも自社内で作れそうだし、コンスタントに売れるなら原料だけ買って製品を出荷するみたいな感じで利益率は改善できそう。

 従来のArkfeldはホワイトでダブルクリックするとストロボ、トリプルクリックするとターボだけど、ArkProではダブルクリックでターボ、トリプルクリックでストロボ、らしくて、いかにも互換性に興味のないOlightっぽいなぁ。トリプルクリックでターボは不便だけど、かといってストロボが必要なシチュエーションでトリプルクリックもやばいだろうに。Olight製品は某チャンネルで酷評されていたりするのを見ると、実際のシチュエーションでの使いやすさとかは一切興味がなくて、ただ所有欲を満たすだけの製品を量産している印象。まあ、タクティカルな使い方をしたいユーザーなんて無視できる程度の人数しかいないだろうしなぁ。



【#毎日早瀬とサシ飲み】13日目 早瀬走×栞葉るり part.41 - YouTube

 栞葉、なんでそんなに極限環境に行きたいんだよ? JCG案件はやってたし、JAMSTECからも案件来ないかな。

 10年以上前にしんかい6500と母船を光ファイバーで接続して水深5000mから中継をやってたし、やろうと思えば深海から生配信もできるんだけど、でも1回だけしかやらなかったってことは相当金or手間がかかるんだろうな。

 最近は水中ドローン用の光通信(自由空間? 海中無線)の研究も行われているけど、とはいえ映像を送れるような上り速度(&コメントを表示できる程度の下り速度)を出せるようなものとなると、かなり高頻度に中継しないと厳しそう。数十台のROVで中継するくらいなら有線のほうがまだやすそう。

 ROVだと光ファイバー接続は当たり前だろうし、有人型でも光ファイバーの取り回しはそこまで面倒ではないという可能性はないかな? むしろ10年前では生配信に使えるアップリンクを特に洋上で確保するのが面倒だった、とか。最近だとStarlinkを使えば洋上でも高速通信が可能だし、あとはROVと同じようにファイバーを引き回せば、深海からの配信とかもそれほど大変ではなさそうな気がするが。

 しかし、調査の様子を生配信となると、そこで発見した事の優先権が得られない問題がある(ネット経由で見ていた人が先に論文を書いてしまう可能性が排除できない)のがネックではありそう。純粋な調査というより、広報に振った活動になるから、運用コストを誰が支払うんだ、少ない広報予算を圧迫するほどのものなのか、みたいな。

 しんかい6500のWebサイトで25周年特集みたいなページがあったから覗いてみたら2015年だって。6Kの活動レポートも2019年夏までは頻繁に報告されているけど、それ以降は1件もない。6Kってここ5年は一切活動していない…??



 防衛省 自衛隊独自の階級名変更を検討へ | NHKニュース | 安全保障、防衛省・自衛隊

 階級名の変更について、自衛隊の幹部の1人は「(前略)そもそも今の階級名を英訳するとアメリカなどと同じなので対外的に困ることはない。(後略)」と話しました。

 別の幹部は「(前略)議論するならば階級名より退官後の処遇などを優先してほしい」と話しました。

 そらそう。

 呼び方を変えて本人たちの士気を高めるぞーっつって処遇から目をそらすならそれは単にやりがい搾取でしかない。やりがいのない仕事に給料だけで人を呼び込んでもろくなことにならないので、そのあたりは上手くバランスを取る必要はあるにしても。

 言い方は悪いけど、自衛隊って税金を突っ込むうえで無駄が少ない組織だと思うんだよな。他の組織と違って個人の行動がかなり規制されていて、遠出(外泊等)やまして海外旅行に気軽に行ける職種じゃないから、給料を上げればある程度は地元の飲食店に還元される。多くの自衛隊を抱えるのは地方だから、税収の地方への分散になる(少なくとも国民平均割で使って人口密集地に集まることは避けられる)。他の省庁と違って特定の分野(企業、例えば土木関係)に予算が集中するわけでもない(装備品なら重工系や電機系、大規模設備なら土木関係、細々した外部委託なら周辺の中小企業等、ある程度広い業種に分散できる)。

 職員(隊員)の給与に振り分けても、民間人ほど「海外旅行で贅沢する」みたいな用途で使われる率が高くないことを期待できるから、給与の大部分は国内で消費される(隊員によっては個人で海外のトレーニングに大金を突っ込むみたいな人はいるにしても)。あるいは、自衛隊が保有する装備にしても、「防衛装備品ですので」の一言を添えれば国産品を買うハードルが下がる(純粋な価格競争で海外製品が流入することを一定程度抑止できる)。高額な装備を国産化すれば国内産業に還元できる(あるいは逆にE-767みたいな使い方もできる)。ただ、日本が武器を作るなんてけしからん、みたいなことを言い始めると、海外から言い値で装備を買って多額の外貨が流出することなるから、自衛隊へ金を突っ込むなら国内で消費する産業構造(飲食業から重工業まで)を整えなきゃいけない。それらをうまく回すことができれば、国内に数兆円の市場規模が用意できる。金の使い方を国が自由に決められるトヨタ3個分の組織はでかいぜぇ。


 あとは全然関係ないけど、自衛隊は便利屋じゃないみたいな話。それはそうなんだけど、とはいえ、早ければ呼集をかけて1日で数千人とか、ゆっくり準備して1週間で数百人とかをあまり無理せずに集められる組織ってそうそうないはずなんだよな。昨今の熊対策にしても、じゃあ警察とか消防とかで大規模に人や装備を急に集められるかというと、おそらく無理だろうし、民間に委託するのも、おそらく無理だろう。災害時なんかは特に顕著で、怪我の応急処置もできるし、土を掘り返すこともできるし、建物を立てることもできるし、食事も提供できるし、それらに必要な輸送能力も持ってるし、というような組織は、他には類を見ない特徴がある。せっかく高い金を払って維持してるんだから、必要かつ使えるときには使わなきゃもったいない。

 防災は防災専門の組織を作るべきだ、といっても、彼ら自身で人材から作業能力から全部独自に揃えたとして、武器は持たないにしても、結局は自衛隊とほとんど同じ能力を持つことになるし、似たような能力を持った組織を2つ並行して維持するためには莫大なコストがかかる。それなら自衛隊側で待遇改善とかで人を集めたほうが低コストで目的を達成できるはず。例えば災害時のための航空輸送や海上輸送のために輸送機や揚陸艦を買おう、とか言い始めたら、一つで数百億円とか数千億円のアセットを数十から数百、それに付随する人員や固定資産も用意しなきゃいけなくなる。最小限の組織で運用して、いざというときは自衛隊に委託する、みたいな運用であれば、じゃあ自衛隊でいいじゃん、という話になる。

 自衛隊は災害派遣等は最低限にして国防に専念すべきだ、というのは、何十年前の時代に戻りそうな感じがする。国民から見えない場所で武器を使う訓練だけだと、何十万人の武器を持ったよくわからない集団、になる気がする。いろいろな災害派遣等を通して、他にも色々と人前に出るような仕事を割り当てられるようになって、ようやく最近になって国民に広く受け入れられる存在になってきたのに、上がってきた評価をまた下げてもいいんか?って。右側の人は便利使いするなと言うし、左側の人は自衛隊を人前に出すなと言うし、双方の言い分をまとめると同じ方向を向いているのはあまり良い状況とは言えない気がする。ポジティブフィードバックを放置しておくとろくなことにならない。



https://www.jstage.jst.go.jp/article/jrsj/43/3/43_43_330/_pdf/-char/ja

 2023年。「衛星通信と可視光通信を複合した水中ロボットの長距離遠隔制御の実現」ファーストオーサーはソフトバンク所属らしい。

 仰々しいタイトルの割に内容はうーんって感じ。30baudのOOKをWebカメラで受信して実環境で2m程度の実績。

 画素(エリアセンサ)で受信すれば送受信のアライメント要求が低い、送信源が複数あっても空間的に離れていれば分離できる、みたいな利点が書いてある。とはいえ、30baudOOKじゃなぁ…… ソフトバンクみたいに金が有り余ってる会社ならもう少しマトモなコンフィグで実験すればいいじゃん、という気がする。倉庫に放置されてる機材を探すだけでももう少し良い機材があるだろうよ。イベントベースドカメラならSNRも応答速度も高いよね、とか。

 そもそも、水中ロボットの遠隔制御みたいにロバスト性が重要なら、音響通信で頑張ったほうがいい気がするな。浅海域や氷海域ではマルチパス特性が悪いと言ったって、じゃあOFDMとか、方向は色々ありそう。少なくともコマンドは極端に高い伝送レートは要求されないだろうから、音響で良さそうな気がする。一つの空間に複数機を同時に動かしたいとかだと困りそうではあるけど。光通信は高速化が期待できるよね、という方向を考えているのかもしれないけど、それにしたってビークル側から映像を送らせるとかを想定するのであればWebカメラベースでは基礎実験とも言えない全く別のシステムを考えなきゃいけないだろうし。



https://www.jstage.jst.go.jp/article/jinnavi/170/0/170_KJ00005654549/_pdf

 2009年。円偏波SARTとAIS-SART。

 従来のSARTは水平偏波のみが認められていたが、日本からの提案で円偏波SARTを含めるように改正した。距離で1.4倍の改善効果が得られる。

 別のグループが提案したAIS-SARTも同時に採択された。提案から日が浅く拙速な印象。従来SARTはトランスポンダだがAIS-SARTはトランスミッタ。日本の沿岸で考えればAIS搭載船よりレーダ搭載船のほうが多いのは明らかであって、従来SARTとAIS-SARTを併用するならいいが、コスト的には片方しか積まないはずであり、AIS-SARTを搭載しても発見される確率は下がるのではないか。


 AIS-SARTの提案グループが提案時点(2005年)で考えていたかはともかくとして、最近だとAISを衛星で受信するシステムもあるし、そうなると遠洋でも衛星で受信できるAIS-SARTのほうが、付近にレーダが無いと検出できない従来型SARTより優秀という可能性もある。他の同様のシステム、例えばE-PIRBとどう棲み分けをするんだという問題はあるにしても。

 元々はE-PIRBで救難信号を受信して大雑把な位置を決定したうえで、現場に向かった船舶やヘリコプターのレーダーでSARTを見つけて迅速に救助する、という運用だったはずだから、AIS-SARTならGPSでピンポイントに位置を速報できるからE-PIRBと従来SARTの2つをAIS-SARTで置き換えできますよ、ということなのかもしれないけど。その後E-PIRBにもGPSが乗ったから、結局はE-PRIB+SARTをAIS-SARTに置き換えるのではなく、新型E-PIRBに発展した感じだけど。現在使われているE-PIRBにはAISも乗っているらしいから、そういう意味ではAIS-SARTがE-PIRBに乗ったとも考えられるか。



 YouTubeで再生が終わったあとに表示される動画のパネル、昔は結構大量に表示された中から適当に1個選んでたけど、最近は3個しか表示されないし、オススメの精度が悪いから、再生終了後に次の動画を気軽に探すのが難しくなった。Googleは時々頭の悪いことをやる。



 わりと大手のネットメディアの記事で専門家っぽい人が書いた記事が、転載したグラフ(図)一つに感想を少し書いた記事だったりすると、なんだかなぁ、って感じがする。専門家ならせめてもう少し深い分析や解説を書いてほしいし、素人ならXあたりでやっていてほしいし。

 試しに著者プロフィールを見てみたらかなり大手のインテリジェンス系の研究機関に所属しているらしくて、そういう人がこういう薄っぺらい記事を書いてるのかぁ。。。「弊社のレポートを買えばもっと細かい分析が読めるよ」ということなのかもしれないけど、記事の書き方的にはそういうわけでもなさそう。



 バイクの動画で、薄曇りの日入りを背負うような状況で、ヘッドランプがユーディの光みたいな効果を発揮して完全に背景に溶け込んでいて、すげー視認性が悪い状況があった。薄曇り日入りを背負うような状況って実世界でもそれなりに多そうだけど、事故原因になったりしないんだろうか? 事故るような距離まで接近すれば路面が背景になるから問題ないとか? 背の低いスポーツカーとかから見るとちょっと厳しそうだが。あるいはカメラのダイナミックレンジの問題で見えないだけで、肉眼で見ればちゃんと見えるのかもしれないけど。


 対艦ミサイルでユーディの光みたいなものってあるんだろうか? 航空機に比べれば小型な弾体をステルス化して低高度からシークラッタにまぎれて突っ込んでいく対艦ミサイルは、相対的にレーダ監視よりも目視での監視で見つかる可能性が高くなるから、弾頭の先端部にLEDなり適当な光源をつけておけばだいぶ視認性が悪くなりそう。あるいは、エアフレームの左右にもLEDを並べて、横から見たときに(艦隊の僚艦から)発見されづらくするみたいなこともできそう。

 かつての対潜哨戒機と同じように、現在の対潜哨戒機でもユーディの光は便利そうな気もしないでもない。ペリスコープとかで見た程度では容易に発見されづらいように。最近は光源も小さくなってるし、適当なビームサイズに絞った光源を複数の方向に向けて設置しておいて、背景光と同じ明るさに見えるように制御する、くらいは簡単にできそうだが。



 先日結構まとまった雪が降って、屋根の上に5cmくらい積もったかな。屋根の上に乗せているGPSアンテナも同じくらい雪に埋まっているはずだけど、相関強度を見る限り信号の減衰はほとんど無い。測位精度(分散)も図でみた感じは以前とほぼ違いがない。単独測位程度ならアンテナの上に多少雪が積もった程度は全く問題ないようだ。これで真冬の積雪が50cmとかまで来るとどうなるかわからないけど、とはいえその前に回収しなきゃいけないので、その状態でのデータは取れない。

 車の上にGPSアンテナを乗せるなら適宜雪を落とすなり、走ればたいていは落ちるだろうし、ポール等で立てて固定点で取るにしてもそこまで雪が積もることもないだろうし、日本海側とかの極端に積雪が多くて何mも埋まるとか、あるいは過冷却で樹氷みたいに凍りつくような場所を除けば、安価なGPSアンテナ(=単周波・単独測位用)は積雪の影響は無いのかも。それに積雪や樹氷が問題になるような場所なら多少の熱源で解決できるような問題じゃないだろうし。だからヒーター内蔵GPSアンテナってのは探しても見当たらないんだろうな。

 ただ、翌日になって気温が上がってくると、明らかに相関強度や捕捉衛星数が下がった。やはり水分を含むとだめっぽい。もしヒーターで溶かすにしても、水分が長期間残留しないようにかなり強烈に熱を加えないとダメそうな気がする。どうせRF系のバイアスでどうにかなるようなエネルギーじゃないから、別で電源を通してヒーターをつけるくらいなら、各自勝手にやればいいだろ、ということなのかな。



 Glyphica Typing Survival、どうせ20分くらいでゲームオーバーになるやろ、と思いつつ難易度を下げて始めたら、60分を過ぎたあたりで負ける気配がなくなって、さすがに100分超えて飽きてきたので終了。最高難易度だと毎回20分あたりで敵が増えるところで終わるけど、難易度を下げると終りが見えない。



 たまに使いたくなるデータ単位のキビバイト、略称KiBの気持ち悪さと言ったらクロード・リットルなみ。なんでおまえ大文字なんだよ…… 試しにCopilotにKiBの由来になった架空の人物の設定を考えさせたらスラスラ出力してきた。こういう作業は得意なんだな。



 LEO適合型イベントベースドカメラと言う空想。

 低軌道衛星に搭載したエリアイメージセンサを使用して地上を撮影し、画素内でアロングトラック方向に輝度情報を受け渡ししながら、輝度変化の情報を抽出する。TDI-CCD的なイメージ。

 あんまり使い道が思いつかないのよな。分解能50mとして1000pxで50kmくらい、軌道速度8km/sとして6秒程度しか撮影できないから、その中で十分なイベントレートのある事象しか検出できない。さすがに厳しそう。

 もう1桁、30秒とか60秒とかの窓が得られれば、例えば懐中電灯のSOSモードを軌道上から検知して、山中や海上での遭難者を宇宙から光学で探す、みたいなことも考えられるんだけど、数秒オーダーだと厳しい。それに、それ以外の用途があまり思いつかないので、衛星を打ち上げるコストを正当化できない。航空機の衝突防止灯を検出するにしても、衝突防止灯を点灯している友好的な航空機であればADS-Bも出してるだろうし、トランスポンダを適切に運用していない非友好的な航空機は衝突防止灯も適切に運用していない可能性があるし。


***


 先日受信した1090MHz

 Fr24でそれらしい機体は24bitアドレスが出ていて、ぐぐってみるとF-15とのこと。Frで表示されているのは1機だけだが、ガーブルの感じからして少なくとも2機はいそうな気がする。

 うちで受信した中にMode-Sっぽい応答が見当たらないのが不思議。Fr24でアドレスが見えるってことは出しているはずなんだけど。

 不思議な応答が出てる。かなり強いし、低spsだと綺麗な無変調信号(ガウス関数)に見える。タイムドメインで中央に変なピークが出ているけど。


*


 トランスポンダに関連する資料を読んでいたら、艦載のモード1,2,3/A,C,4トランスポンダというものがあるらしい。ぐぐってみると周辺機器(コントロールパネル)の修理に関する公募が海自から出ていたので、米軍艦だけでなく海自艦にもそれに類する装置(ATCトランスポンダ)は搭載されているっぽい。艦載のトランスポンダはモードCではブラケット応答(コード0000)を返すんだそうだ。しかし、民間でのトランスポンダの使い方を考えると、結構面倒な気もするな。

 民間ではトランスポンダは空港のレーダや空中衝突防止のために使われているから、船舶から応答が帰ると、航空機か船舶かを識別する必要が出てくる。船舶からはブラケットCが帰るといっても、例えばうちの周り(北海道の内陸部、海は可視範囲外)でもブラケットCらしい応答を受信できることがあるから(可能性としてはコード00または0000のモード1,2,3/Aである可能性も除外はできないが)、通常の航空機が何らかのエラー(トランスポンダや気圧計の不具合等)でモードCを返すこともあり得るはず。あるいは、気圧高度計が初期化中の場合もブラケットが出るはず。

 ブラケットCを除外した場合、故障した応答を返す航空機はATCレーダ等に表示されなくなる。対地速度で区別しようにも、例えば気球に搭載されたトランスポンダみたいに対地速度が遅い空中物体も存在するから、これも難しい気がする。船舶からはモードCでGillham codeとしてあり得ないビット列を返すように規定しておけば、海上目標か航空目標かで区別するのは容易だったのにな。航空機トランスポンダは結構場当たり的に実装されている。

 TCASから見ると、船舶搭載トランスポンダは高度不明の目標だから、それらは同高度に存在するとして対応する必要がある。TCASの仕様としてブラケットC(高度情報のないモードC応答)はRAは出さないけど、それでもTAは出るはずだから、艦艇搭載トランスポンダの近くを飛ぶと民間航空機にTAが出そうな気がする。


 この資料にはトランスポンダのいくつかの種類についての説明も書いてあった。

 IFF Mark Xが現在のトランスポンダのベースになったもので、モード1とモード3では単一パルスの応答を、モード2では2つのパルスを返すだけの機能。ただしIDENTとEmergencyも返せる。IDENTは現在のSPIとして、Emergencyはどうやって返してたんだろう? というかそもそも単一パルスを返すってことは現在のモード1,3とは全く互換性のないものなのかな?

 IFF Mark X (SIF)ではコードを返す機能を追加した。これは元々のMark Xではセキュリティが低いため(容易に偽装できる)。モード1は32個の、モード2は4096個の、モード3は64個のコードを返せる(モード1は1桁目が0-7の範囲を、2桁目は0-3の範囲を設定できる)。IFF Mark X (A)ではモード3のコードが4096個に増加し、モードCが追加された。

 IFF Mark XIIはMark X(SIFおよびA)と互換性があり、モード4が追加された。


 Xパルスに関する説明も書いてあった。曰く「X-pulse replies are transmitted only from pilotless aircraft and are not present for mode C.」だそうで、無人航空機のモード3/AでのみXパルスが送信される、とのこと。「CにはXパルスは無い」と書いてあるだけだから、モードBやDで送信される可能性もあるけど、まあ、無いだろう。

 ただしレーダースクリーンでXパルスを表示するためには、制御パネルでXパルスを表示するためのスイッチをONにしたうえで、さらに制御パネルに対象の3/Aコードを設定しなければいけないらしい。つまり特定の3/AコードにXパルスが含まれているかどうかを確認する、というような感じ。ちょっと手間を増やしてある。


 7600や7700の説明によると、モード3/A専用であって、モード1や2で76や77を受信しても影響は無いらしい(そもそもモード1では76や77は出せないわけだが)。7600は軍民両用の無線故障、7700は民間用の緊急事態、みたいな説明。軍用機の場合は「7700と4Xを組み合わせて使用する」みたいなことが書かれているけど、4Xの説明は一切書かれていない。モード4のXパルス、みたいなことなんだろうか? M3/AのXパルスは緊急事態を報告するためのものではないから、M4のXは目的を変えて使われているのか、根本的に違うものなのか(そもそもM3とM4ではフレーム構造自体が違うわけだが)。

 76や77を受信した際に、近距離(5マイル以内)の場合は除外するスイッチもあるらしい。プリフライトチェックで出したものを一々通知しないように、とのこと。手動で76や77を出す場合はトランスポンダが正常に動作していればそれ以上の確認は不要だろうから、それ以上のロジックがあって、それを飛行前にチェックする手順があるのかな。例えば戦闘機だと射出座席を使用した際に自動的に77が出るみたいな機能があるはずだけど、実際に射出しなくても、テスト用にトリガすることもできるんだろうか? しかし、プリフライトチェックで77を出す手順が存在していた場合、陸地に近い場所で空母を運用していた場合や、あるいは陸上の航空基地で77を出した場合は近くの空港からそれを検出してしまうから、そういうチェックはできなさそうな気がする。あくまでも遠洋に出ていて、LOS内に他のインテロゲータが存在していない場合だけ試す、みたいな感じなんだろうか?


 モード4については、具体的な話はほとんどないけど、軽く説明されている。曰く、インテロゲータは4つのパルスとSLSパルス、それに続く最大32個のパルスで質問を行い、トランスポンダは3つのパルスを返す、とのこと。Mark XIIは従来のトランスポンダに質問し応答をデコードできるけど、モード4は従来のM1,2,3/A,Cとは全く互換性がなさそう。

 古い資料なのでモード5の説明は一切無し。


 モード4チャレンジに成功した目標は以降友好的として使われて、モード4チャレンジは行われなくなるらしい("no need"とだけ書かれている)。一方で、モード4で友好的と判断できない目標に対しては、兵器発射前にモード4チャレンジを行う必要があるらしい。この場合、FCSで自動的に判断して再チャレンジや、モード4友好的な目標に対する射撃インヒビットを追加するのか、あるいはレーダー担当官等がマニュアルで操作するのかは不明。/* このドキュメントが作成されたのが2000年頃なので、その当時の話 */


 モード4の質問には一連のコードが含まれていて、トランスポンダはそのコードが正しいことを確認して応答するかどうかを判断する。コードには有効な期間(開始と終了)があるから、古いコードで質問しても応答は得られない。インテロゲータには現在のコードと次のコードを設定して、手動で次のコードを使用することもできるが、期間前に次のコードで質問することは明確に禁止されている。もし次のコードを使用した場合、適切に報告を行う必要があって、NSAまで報告が上がるらしい。敵が再利用するのを防ぐために短期間で更新してるんだから、近い将来に使うコードが流出した場合はそりゃNSAがどうにかするだろうさ。

 モード4のコードは「正式な名前は無く、単に"code of the day"と呼ばれることもある」みたいに書いてあるから、1日毎に更新されるのかな。あるいは単に1ヶ月とかに比較して短いからdayと言っているだけなのか。

 もし1日毎に更新されるのであれば、例えば23時台に離陸する航空機は翌日の23時台までの最大24時間程度しか有効な応答を返せないことになる。たとえ居住性の高い航空機を空中給油で長時間滞空させることができたとしても、モード4トランスポンダで作戦時間が制限される可能性がある。例えばRQ-4の場合、36時間の飛行が可能だそうだから、コード更新が24時間毎の場合、12時以降に離陸すると途中でコードの有効期限が切れることになる(ここで使う時刻はコード更新時刻を基準にしたものだから、例えば米東海岸とかグリニッジとか適当な地点で設定されるので、機体の離陸や運用地域のタイムゾーンとは無関係)。E-4は最大で72時間程度飛べるらしいから、モード4の有効期限を過ぎる可能性もあるけど、まあ、E-4クラスの機材なら空中でモード4のコードを受け取るくらいはできるだろうし……



 で、モード4は3つのパルスを返すということだから、上の画像みたいな波形はモード4とは違いそうな気もする。とはいえ、このログは狭い時間ウインドウでしか記録していないから、パルス間隔が長い場合は正しく記録できない。

 そもそもこんなに長いパルスを使うかな?という疑問もある。逆に、ジャミング等が行われている環境で使うことを想定すると、ある程度強い(相関性の高い)電波を使っている可能性もありそうだけど。


 モード5ってモードSとADS-Bの暗号化バージョンとのことで、ADS-Bベースなら質問いらないんか?と思ってぐぐってみたら、あんまり情報出てこないけど、テスト用の機器でモード5の質問周期が明記してあるから、少なくとも質問に対してリプライを返す機能はあるっぽいな。

 質問レートとしてモード5レベル1の225Hzとモード5レベル2の4Hzの2つが書いてある。225HzはモードS的なモードで、4HzはADS-B的なモードかな? ADS-Bの場合インテロゲーションは不要だけど、ADS-B In的な機材をテストするための信号かな?


*


 試しに、航空機の適当な高度・速度を仮定して、固定目標に対するTCAS TAが出る確率を計算してみた(計算が正しいかどうかはわからん)

 いい感じのグラフ化の方法が思いつかなかったので、とりあえずTAが発生した数を比率で表してみた。縦軸が確率、水平面はキロメートル単位であることに注意。TAの発生は確率ではなく純粋に条件分岐だが、便宜上確率として処理している。/* 速度や高度毎にTAが発生する輪郭線を書けば2次元で表現できるだろうけど、輪郭線を作る方法が思いつかなかった */

 原点(左寄り奥)に航空機が存在し、右側に向かって進んでいる状態。速度は150ktから650ktの範囲を、高度は500ftから3万ftまでを計算している。500ft以下の場合はTAが発生しないので、計算には含めていない。保護領域は高度でリミットしていない(艦載トランスポンダから帰るのはブラケットCなので)。速度は日本からジェット気流に乗って東向きに飛ぶ場合を考慮して650ktまで計算している。

 見づらいが、高度が低い場合は地上目標とのスラントレンジが保護領域内に入るので、地上固定目標が後方(500m程度まで)に存在する場合でもTAが発生する。高度が上がると地上目標が保護領域内に入ることは無いから、自身より後方の物体からTAが発生することはない。

 前方や側方は速度によって大きく異なるが、650ktの場合、前方は最大15km(8nm)先まで、側方は最大7km(4nm)程度までTAが発生する可能性がある。


 着陸進入のような状況を考えると、例えば4000-5000ft、200-300ktくらいに設定すると、側方は3km程度までTAが発生する。つまり滑走路の延長線の左右3kmの範囲にMCトランスポンダが有効な艦艇が存在していた場合、航空機上でTAが発生する可能性がありそう。


***


 FM変調のやつ、71.25Mspsを0.1秒/ブロックくらいで処理していて、32bitや64bitの複素信号を扱うので、データ量が多い。ということで、メモリがボトルネックになっているのでは、という仮説のもと、処理ブロックをものすごく小さくしてみた。これでReleaseビルドで測ってみると、1倍速前後位の速度。大容量のバッファを確保した場合、2倍速程度が出るから、かなり遅くなった(一部パラメータを変えているので同条件の比較ではない)。大きなブロックで処理する場合、大容量のバッファを確保するとはいえ、ほとんどの部分はシーケンシャルアクセスだから、あまりメモリは問題ないのかも。

 このPCはDDR4 3200MT/s デュアルチャンネルだから、51.2GB/sくらい流せる。1倍速なら1秒で0.5GB程度のデータ量だから、メモリ速度はあまり問題なさそう。

 CPUの使用率とかストレージのバス利用率はタスクマネージャーに出るのに、RAMのバス利用率を簡単に確認できないの、ちょっと不便だよなー。普通は必要ないんだろうけど。

 結論として、CPUの計算速度がボトルネックらしい。とはいえ、最終段でのメモリの読み書きを減らすと明らかに早くなるので、全く無関係というわけではないんだろうけども。あとは、ブロックサイズを適切に小さくするのも、やはり効果があるらしい。

 ブロックサイズを1桁ずつ切り替えて、入力サンプル数48よりは480、4800よりは480のほうが処理が早い。480サンプルは10msecに相当するので、出力サンプル数は0.7215Mpts、32bit複素数なので6MB弱、最終LOも同数なので12MB、CPUのL2にはギリ、L3にはおそらく十分に入る、くらいの大きさ。やはりCPUの外に押し出されると遅くて、極端に小さいとオーバーヘッドが大きい、というような感じになるんだろうか。

 そもそも、Intelの最近のやつだと、L1とL2はコア単位、L3は全コア共有、表示される容量はL1/L2共に全コアの合計、のはずだから、例えばL2が12MBで物理コアが12個の場合、1MB/コアだから、キャッシュ内に収めようとするとその程度(かつ他の処理で食われる分)に収める必要があるから、結構小さい処理単位じゃないと厳しそう。


*


 CICは微分器や積分器があって演算結果を戻すような構造になっているから、無限インパルス応答だと思ってたんだけど、実際には有限インパルス応答と考えていいらしい。

 CICインターポレーションに適当なステップ応答を突っ込んでみると、出力側から見て(N-1)(R-1)サンプルで静定する(0オリジンで(N-1)(R-1)番にR^(N-1)が出てくる)から、入力側から見ればN-1ポイントを入れてやれば良いようだ。N≧Rの場合はN-1ポイントを突っ込むと1ポイント分余計に計算してしまうけど、ブロックサイズが十分に大きければ無視できるし、そもそもほとんどの場合CICはN<Rで使うだろうから、問題ないはず。今回の場合も、N=5, R=125みたいな条件。

 CICデシメーションの場合は入力側から見てN*(R-1)ポイントで静定するので、ブロックごとに分割して(CICをリセットして)処理する場合は先に前のブロックの最後のN*(R-1)ポイントを突っ込んでおけばいい。



 CICをブロックごとにリセットして、リセットしただけの場合と、前のブロックのラストNポイントを読ませた場合で比較

 N=5, R=20のCICインターポレーションを使用。入力の青と、出力の橙(リセットだけ)、緑(リセット後にNポイントを入れて静定)。緑はちゃんと連続しているように見える。


 そんな感じで、最終段のCICと複素積をマルチスレッド化すると、デバッグリリースだと12スレッドで1.25倍速、リリースビルドだと5スレッドで3.22倍速、くらい。シングルスレッドだと2倍速くらいだから劇的に高速化というわけではないけど、少しは早くなる。

 タスクマネージャーで見るとストレージへの書き込みが800MB/s程度で安定してほぼ100%に張り付いているから、もしかしたらストレージがボトルネックになっている可能性もある。

 試しに出力フォーマットを2xF32から2xU8に変えて帯域幅を4分の1にしたら、リリースビルドで9スレッド7.91倍速くらいまで出た。ストレージもだいぶ余裕がある。さすがにそろそろCPUがネックかなと思いつつ、タスクマネージャーで見る限りはCPUもまだまだ余裕がある。並列化しているのは最後のCICと複素積だけだから、その前がネックなのかも。


 ただ、全体的にマルチスレッド化(周波数変調部はシングルスレッド処理)しても、大して早くならない。SSDへの書き込み速度がネックになっている感じ。試しにファイルへの書き出しをコメントアウトしてみると、11倍速くらいまで出る。その場合、CPU使用率は90%あたりで安定するから、マルチスレッド化はある程度効いてる。


 各処理の同時に走っている数

 FIRがBPF、CIC補償とプリエンファシス、CIC1で48ksps→570kspsへレート変換、freqModで周波数変調、CIC2で71.25Mspsへレート変換(含複素積)、という感じ。

 最終段のCICが14スレッドくらい並列で走っている。FIRと初段CICも最大で3,4スレッド出ているから、一応並列処理が効いている。

 周波数変調は前のブロックと位相連続性が必要だから、並列処理はできない。

 ブロックサイズは10msに設定しているけど、100msに変えると12倍速くらい出るから、若干なりとも早くなる。シングルスレッドでの処理とマルチスレッドでの処理では最適なブロックサイズは異なるらしい。

 スレッドのハンドリングはもう少し効率化できるだろうけど、全体的なパフォーマンスとしてはこのあたりで頭打ちかな。CICを最適化するとか、あるいはNを減らすとかすれば多少は早くなるだろうけど。


 CPUをほぼ100%使って10倍速程度ということは、実速度(例えばWAVをリアルタイムにFMステレオ変調してfl2kへ吐く)の場合ならCPU使用率は10%程度で済む。シングルスレッドで走らせるには厳しいけど、最終段CICだけマルチスレッド化する程度でも十分に処理できそう。シングルスレッドでも運が良ければ1-2倍速は出るけど、あまり余裕がないので、CICのマルチスレッド化は効果がありそうな気がする。



 大量のデータを適当にスロットリングしつつパイプライン処理して、各ステージはシングルスレッド専用もあれば複数スレッド同時処理できるものもあって、結果は順番通りに吐き出して、みたいな処理、C#だとRxでやればいいじゃん、みたいな話なんだろうけど、とはいえRxってイマイチ概要が見えてこないんだよなー。

 今回は最終段CICだけマルチスレッド化する予定だったので、適当なクラスを作って、allocで取った領域に書き込んで投げてしばらく待ったら結果が出てきて、その領域は読んだあとにfreeで捨てて、みたいな感じで、あらかじめ確保したメモリを使うように処理していた。これをパイプライン処理全体に使おうとすると、大量のメモリコピーが発生する。でも結局Observerパターンを実装してもそのあたりは自前で書かなきゃいけないんだよな。データ処理はデータ処理に専念して、作業領域の管理は呼び出し側で頑張るほうが楽そう。


2025年11月12日水曜日

小ネタ



 米軍のミサイル防衛とかの、特に地上ドメインの話。

 巨大なレドームの中身、1970年代にフォードが建設した巨大なパラボラアンテナ(より正確にはカセグレンアンテナ)。毎日2回の定期メンテナンスはかなり悲惨な気がするけど、まあ、半世紀も前の機械ならな。。。

 '70年代のテクノロジーでこの大きさって、どれくらいの帯域を考えてたんだろうか。かろうじてXバンドに届くかどうか、くらい? フィードホーンは中央に四角錐形が1本と、その周囲に円錐形が8本。8本は中心からかなり距離があるから指向性はだいぶ悪そうだが。

 カセグレンアンテナは1960年に論文が出て、三菱電機が数年後に設置したものが最初期の実用例のはず。そこから10年で米空軍に使われているってことは、結構早く実用化・普及したのかな。

 それにしても、西側諸国が大なり小なり依存するミサイル防衛システムの機材が50年落ちか…… この施設だって他にも設備はあるし、別の施設もあるだろうから、半世紀前のシステムがSPOFになっているわけではないとはいえ。



 なぜ『Ghost of Yōtei』のアクションに飽きるのかといえば、それは本作が「映画的に素晴らしいゲーム」だからではないか IGN.jp

前作『Ghost of Tsushima』はプレイヤーがいかに武士の誉れを守っていたとしても、毒殺・暗殺でもなんでもするロクデナシのように扱われていた。結局のところ、リニアなストーリーにおいてプレイヤーに選択の余地はないのである。

『Ghost of Yōtei』はアクションゲームの部分も映画的である。本作は二刀や槍などの武器がいろいろとあるのだが、どれを使うか選べるのではなく、敵に応じて相性のいいものを選ぶといったものになる。選択肢があるのではなく、選ばされるのだ。

 デスストとかもな。どちらもソニーの独占タイトルだけど、なにか関係あるんだろうか。グループ内にソニー・ピクチャーズがあるから映画的なゲームが喜ばれるとか、本体性能的に綺麗な絵や特徴的なゲームシステムを作りやすくて、その方向に縛られるとか。

 Xboxでも売ろうとするとPCでも売りたいよねみたいな話になるだろうし、最初からマルチプラットフォームで売るならマシンスペックの最小構成はある程度引き下げざるを得ないし、そうすると綺麗な絵とか高性能なハードウェア(NVMe前提とか)に依存しないゲームシステムとかが必要になって、プレステ専用ゲームとは違った方向性になる、というのは有り得そうではある。

 まあ、ハードにかかわらずクソゲーなり、クソゲーのなりそこねなり、不満点のあるゲームなんてのは掃いて捨てるほどあるからな。その中から適当に2個選んで共通点を探すってのは簡単な事だ。



 Glyphica Typing Survivalのビーム、うまく成長させて最終面に入ると全自動で迎撃されるから一切入力しなくていい。他のモードでもタレットをうまく成長させればかなりヌルゲーになる。ゲームとしてはちょっとつまらん。

 各メイン武器で最高難易度まで全部クリアしたけど、特に実績解除はないんだな。未実装のモードが1個あるからかな? 普段あんまりテキストを入力しないというのもあるけど、普段は肩が凝ったりとか全然無いのに、このゲームをやるとかなり肩が凝る。


 久しぶりに寿司打をやったら60位台まで行けた。その次は300位台だったのでまぐれ当たりっぽいけど。寿司打は文字列を認識するのに時間がかかるからそこがボトルネックになるんだよな。あとは単純に誤字が多いというのもあるし。



 先日ちょっと長めの停電があって、UPSの稼働時間が15分を切ったのでPC周り全体をシャットダウン。その後しばらくして復旧したので、PCを起動。1時間程度停電していたかな。最近は瞬断はまれにあったけど、数分を超えるような停電はかなり久しぶりな気がする。

/* このブログも長く続けていて居住地とかももう隠してもしょうがないけど、停電情報って電力会社によっては番地単位でアーカイブ・公開されるので、不用意にSNS等で書くと(特に発生時刻)、局所的な停電だった場合は1発でもかなり狭い範囲に特定できてしまうのよな。事前の推定値(都道府県単位)がある場合は特に容易に探せる可能性がある */


***


 RDS(Radio Data System)を含むFMステレオっぽいIQファイルを作ってSDR#に突っ込む遊び。

 RFスペクトルの左上付近に色々と表示される。

 (((と)))の記号はステレオであることを示す(例えばRadioパネルのStereoチェックを外してモノラルとしてデコードすればこの記号は消える)。

 ステレオの中に入っている"ABC123  "のはProgramme service nameと呼ばれるもので、これは放送局の名前やコールサインを表示することを目的としている。8文字を表示可能。動的な変更は想定しておらず、基本的には固定の文字列を表示するのが目的。

 その右側の1234(16進)はProgramme Identification codeというもので、放送局を識別するために使用される。国コードや国内で一意な放送局コードが含まれ、自動再選局を行う際に使用する(国コードは一意ではなく、放送範囲が重ならない範囲で再使用される)。一部の放送局では地域ごとに違うCM等を放送する際に、一部のビットを変更して、異なる放送を行っている放送局・中継所に再選局しないようにしている。

 一番右側の文字列(小文字のa-z)はRadioTexitで、最大64文字または32文字を表示できる。本来は大文字を含む一部の文字セットだけを使用できるが、SDR#ではASCIIの印字可能文字の大半を使用できる。任意のテキストを表示することができるが、運転中に注視すると危険なのでカーラジオでは表示しない場合も多いらしい。そのせいでProgramme service nameを動的に書き換えるような放送局が出てくるらしい。



 RDSの変調は結構面倒くさい。副搬送波周波数は57kHz(3xパイロット)、シンボルレートは2.375ksyps(副搬送波周波数/24)、ボーレートは1.1875kBd(シンボルレート/2)、フレーム構造は1ブロックがデータ16bit+CRC10bitで、ビットレートは約731bps、ブロックレートは約45.7blocks/sec、1フレームは4ブロックでフレームレートは約11.4frames/sec、となる。情報の最小単位は1フレームで、局番号1ブロック、ヘッダ1ブロック、データ2ブロックなので、1フレームあたり2ブロック(32bit)のデータを送れるから、1フレームあたり4文字、1秒あたり45.7文字程度の情報を伝送できる。

 誤り訂正はCRCで行い、1ブロック(16bit)単位で処理する。CRCにはブロック番号を識別するためのビット列がビット加算される。仕様上は最大5bitまでのバースト誤りを訂正できる。

 ビット列のエンコードは、CRCを付加したビット列を、NRZI符号化し、さらにそれをマンチェスタ符号化するという手順を踏んでいる。これは受信した信号から比較的容易にクロックリカバリを行ったり、ビット反転対策を簡略化するためのエンコード方式だと思う(今回は変調しか行っていないので、復調が容易かどうかは未確認)。


 日本でデータ放送のFEC周りをやっていた人が、RDSは転送レート低いし誤り率も高いから使い物にならん、みたいなことを言っていたけど、まあ、わからんでもない気がする。

 そもそもRDSは元々はページャ用として1970年代中頃にフランスで開発されたシステムを流用したものだから、その当時の超小型受信機で復調できる程度にシンプルである必要があって、非常に長いインターリービングとかは不可能だったわけだから、しょうがないといえばしょうがない部分もあるんだろうけど。/* DARCは1990年代中頃に開発 */

 あとは、3xパイロットの場所は別の用途(独ARI)で使っていたから、スペクトル的に分離したいということでマンチェスタ符号を使ってずらしていたのかもしれない。ARIとRDSは直交変調してはあるけど、当時の技術水準で直交復調できるかどうかは怪しいし、スペクトル的にも分離してそうな気がする。


 RDSで文字データを転送する場合、1フレームで2バイトもしくは4バイトを転送できる。一応、近代的な仕様ではUTF-8を使うことになっているはずだが、少なくともSDR#ではASCII文字範囲しか使えない。古い仕様ではASCII文字範囲の一部のキャラクターしか使うことができないが、SDR#ではその範囲外の文字も使用できる。

 SDR#でRadio Text(RT)を受信した場合、文字列は順不同でいいので、任意の表示位置の文字列を送ることができる。例えば歌詞や字幕を放送する場合、2つ後ろのブロックに空白(4x 20h)を送っておけば、古い文字と新しい文字の間に空白があるので読みやすくなるが、もちろん転送レートは半分に低下する。



 周波数変調せずに保存した場合

 L+RはDSB-SCで復調すればそれなりに聞こえる。エンファシスが効いているのでキンキンした音になる気がするけど。±19kHzにパイロット信号、±38kHzにL-R、±57kHzにRDSがある。RDSのサイドローブがかなり高いのでL-Rにも結構入りそう。

 285kspsだからRDSの副搬送波は5サンプル/サイクルで、時間分解能が悪い。それで繰り返しスペクトルが強く出ているんだと思う。サンプリングレートを上げれば改善するはずだけど、計算コストの問題が出てくる。



 fl2k_file.exeはバイナリファイルから8bit1chのデータ列として読み出してFL2000に出力するけど、int8_tとして扱っている。一方で、WAVファイルは8bitの場合uint8_tとして扱わなければならないので、fl2k_fileは1ch8bitのWAVを読ませることができない。せめて符号のフラグをコマンドラインオプションで指定できればよかったんだけど。



https://www.denso-ten.com/jp/technicalreview/jp_pdf/17/17-1J.pdf

 あとで見つけた資料。ちゃんとNZRIとかBPSKとか色々書いてあった。。。

 欧州の状況。ドイツではアウトバーンが整備されていて、短時間で受信状況が大きく変化する。スイスは山間を縫う道路によって受信状況が変わる。ノルウェーではフィヨルド地形のために受信状況が変わる。周波数の自動変更が重要になる。

 この当時のデンソーの受信機では誤り訂正は使っていないとのこと。5bitまでのバーストエラーしか処理できないから、実環境で発生するエラーには対応できないし、無理に誤りを訂正しようとするとよけい間違った情報を得る場合がある。クラシックを聞きたいドライバーにロックを聞かせたりすると危険だから、誤ったデータは捨てたほうがマシ、みたいなことらしい。



 試しにJ-Stageでポケベルを探してみたら、いわゆる文系的な論文がほとんどでちょっと驚く。それ自体をハード的に研究・改良する話は全く押し流されて、すでに過去の物として研究の対象になっているんだな。あとは医療とか緊急対応みたいな分野の例とか。

 そもそもポケベルは携帯電話よりも前のデバイスだから、j-stageに残るほど最近の話ではないということなのかもしれないけど。


https://www.jstage.jst.go.jp/article/nihonkindaibungaku/107/0/107_109/_pdf/-char/ja

「電話と文学」という本の書評。文学作品の中で電話機がどのような状況を表現しているのか、みたいな話。

 この書評の最後に著者が少し書いている、ケータイ小説の話が面白い。1行が短くて改行の多いケータイ小説は携帯電話のディスプレイに由来するものだろうが、会話口調を主体としているのは携帯電話の電話機という機能の名残ではないか、という指摘。


***


 試しにΠ型アッテネータ&整合器について調べてみた。

 減衰量が十分に大きい場合、R1=ZS、R3=ZLとして、R2を適当な値に選べば、インピーダンス変換を行いつつ数十dBの減衰量を持つアッテネータとしても使える。E12系で75Ωと50Ωを変換する場合、75Ωと51Ωでそれぞれを終端してやって、その間をR2=10kΩ程度で弱く結合してやれば、双方から見れば適切に終端されて反射が起こらないし、R2を経由して弱い信号が通過するから、アッテネータとしても作用する。R2が小さい場合は合成抵抗の成分として無視できなくなるので、終端抵抗を大きめに設定してインピーダンスを合わせる必要がある。


 R1=ZS, R3=ZLの状態でR2を変えた場合の、双方から見たインピーダンスと減衰比

 基本的には合成抵抗の計算を行えば済むんだけど、並列に組まれた抵抗が多いので逆数だらけになる。Excelとか関数電卓で計算するのは、不可能ではないにしても、とても面倒(このグラフも正しいのかは怪しい)。

 75Ω側はR2=10kΩを超えたあたりで、50Ω側はR2=2kΩを超えたあたりで収束する。それより低い抵抗値だとインピーダンスが下がる。

 減衰比は双方向で対称ではなく、75Ω信号源/50Ω負荷の場合と、50Ω信号源/75Ω負荷の場合では減衰比が異なる。普通はインピーダンスの違うシステムを双方向で信号を出して使うことはないだろうから、問題ないはず。双方向で使う場合でも、減衰比40dBに対して差が3.5dB程度だから、大きな問題にはならないはず。

 R2=2.4kΩで75Ω信号源50Ω負荷に39.8dBあたりがちょうど良さそうかな。あとは8.2kΩで50.3dB、24kΩで59.6dB、68kΩで68.6dB、とか。750Ωで30.2dBはインピーダンス(特に75Ω側)が若干ずれる。75Ωと50Ωを直結するよりはマシ、程度ではあるけど。


 R1, R3を適当に調整した場合(上の図と軸の取り方が違う点に注意)

 E12(というか秋月で売ってる全部入りのラインナップ)だと調整の選択肢がほとんど無い。


 ちなみに、R1, R3には合成抵抗(2本直列or並列)も含めて、全種類の抵抗からグラフにすると、こんな感じ

 R2は合成抵抗にはしていないが、単に横方向の間隔が狭くなるだけなので、グラフとしては大して違いはない。

 下のグラフにはR1, R3も表示している。R2が100Ω未満の場合はR3が発散するので省略している。



 L型アッテネータ&整合器の場合、全部入りを単体で使う場合はRa=47ΩとRb=75ΩでZ1=77.0ΩとZ2=46.5Ωを作って8.1dBと4.6dBを得るような組み合わせしかない(Zを多少広めに設定するともう少しある)。

 RaとRbに合成抵抗を使えば自由度は増えるけど、とはいえL型の場合は2個の抵抗で2箇所のインピーダンスを制御するから、減衰比の自由度が無い。減衰比を自由に設定したいなら抵抗を3個使って変数を増やすしかない。



 Π型整合器/ATTを試作

 SMAコネクタに、51Ω、75Ω、2x1.2kΩの合わせて炭素皮膜抵抗4本と、0.1uFのセラコンで、整合とATT、DCブロック。ちょっとかさばる。

 Z=Rだから入力の大部分を1本の抵抗で消費するので、今回使った1/4Wの抵抗の場合、ディレーティングを考えると100mW程度が耐入力ということになる。正弦波なら2.2V RMS、矩形波なら2.2Vppあたりが上限。


 fl2k(50Msps)で1-15MHzの正弦波をスイープしてFFTのMax-Holdで測定

 ↑75Ω終端で直結

 ↑Π型で整合/-40dBと50Ω終端

 ↑75Ω直結とΠの差。設計通り-40dBの差がある。

 インピーダンスが正しく変換できているかはわからないけど、まあ、多分大丈夫だろう。とりあえず、見える範囲では振幅が暴れることもないし、変な共振もないはず。元々はアッテネータが欲しかっただけなので、インピーダンスマッチングは二の次というか、おまけみたいなところもあるし。


 そもそもR820Tの耐入力って+10dBmまでだから、VGA(Video Graphics Array)信号ならギリ直接突っ込めるんじゃね?という気がしないでもない。あまりにも余裕がないから念の為にATTを通しておきたい、というのはあるけど。それにしても-40dBは減衰させすぎな気もする。弱い信号をVGA(Variable Gain Amplifier)で頑張って利得を稼ぐ感じか。

 R820TのVGAは50dBくらいまで稼げるから、もし40dBのATTを通してVGAを40dBにしてサチらなければ、VGA信号を(AC結合程度で)直結できることになる。あるいは、L型でインピーダンスを合わせて数dB落とすとかも考えられるし。そのあたりは実際に試してみないとわからないな。


 だいぶ寒くなってきて、もうしばらくしたら積雪が始まるはずなので、それまでに外に出していたアンテナを1本回収しなければ。そうすればrtl-sdr blog v3ドングルが1本フリーになるので、fl2kと接続して遊んだりできる。

 SDRドングルに余裕がないので、R820T系受信機もう1個くらい買っておきたいんだけどなー。v4を買うか、R2を買うか、miniを買うか、といったところが悩みどころ。待ってたらそのうちAirspy系の新製品が出てR2やminiが値下がりしないかな、みたいな願望を抱きつつ。



 抵抗器の誤差の分布ってどういう形になっているんだろうか、という疑問。普通に考えると正規分布だけど、抵抗器の誤差の積極的な使用(ラインナップにない値を誤差の範囲から拾ってくる)を考えると、一様分布でもいいはず。しかし、ググってもいまいちよくわからない。


 ズバリという記事ではないけど、面白い話

 誤差5%の抵抗の作り方:Signal Integrity - EDN Japan

 1980年代頃の話。±10%の抵抗から±1%の個体を探そうとしたら、1個も見つからなかった、という内容。推測だが、比較的山裾の広い抵抗器を作って(というか当時の製造技術ではその範囲の誤差しか作れず)、実測で±5%に入るものは5%品として売り、±5%を超えて±10%に入るものは10%品として売っているのではないか、と。この話が本当なら、例えば±5%品の中には±1%の個体は入ってなくて、±1%品の中には±0.5%の個体は入っていなくて、みたいなこともあるんだろうか(精度が高いやつは炭素皮膜でなく金属皮膜だろうとかの話は置いておいて)。

 そうやってラインナップを作る場合、E12系列や24系列、96系列の違いは何なんだろう? 例えばE96の51.1Ω±0.5%はE12の正規分布の個体から選ぶことはできないわけだし、前述のような使い方を想定するならなおさら正規分布は困りそうな気がする。


 工学部の学生です。レポートの課題で、抵抗の誤差を示すカラーコードがたとえば±5... - Yahoo!知恵袋

 ここの回答でも似たような話が書いてある。昔は製造品質が良くなかった(分布が広かった)から中央を抜き出して高精度品として売っていたが、最近は品質が安定してきたから、グレードに合わせて製造する(中抜しない)し、そもそも5%品でも実測2%程度に収まる、という話。


 とりあえず抵抗器の誤差は正規分布に収まると考えていいのかな。で、最近は誤差が狭くなっている、と。

 じゃあ中途半端な抵抗器が必要な場合、5%品から探そうとしても、最近のラインナップだと中間の値が得られないみたいなこともあるんだろうか。とはいえ、昔の抵抗器だって中抜されているんだから、5%品から1%品を探すみたいなことはできないわけだが。ということは何かね、E系列が中途半端に並んでいるのは、誤差の範囲から必要な(系列のラインナップにない)数値の抵抗器を選べるように、というよくある説明自体が今も昔も誤りということかね?

 あるいは、±5%の正規分布の抵抗器は、±5%ギリギリの個体はかなり少ないことを期待しているけど、昔の中抜品の場合、±5%ギリギリの個体はかなり多かったんだろうか?

 結局、5%の抵抗器を想定するならしっかり5%品で動作する設計を行え、精度が求められるなら1%や0.5%の製品を指定しろ、という話に落ち着くのか。



 Excelの散布図の近似曲線って、完全に水平な線を書くと非表示になるんだな。何だこの制限。。。内部の計算が発散してるとかなんだろうけど、基準値を書きたいときとかに水平の近似曲線って便利な気がするんだけどなぁ。近似曲線の元になった列の線を細くして点線にするみたいな感じでもいいけど、色々調整するところが増えると忘れる可能性が増えるので、近似曲線のほうが使いやすい。のだが。。。

 近似曲線を書くときに微妙な傾斜を与えておけば表示されるけど、水平に近づけていくと先端から描画が消えていく。一部だけ消えるということは、フィッティングが発散しているのとはまた別の現象なのかな?


2025年11月5日水曜日

小ネタ





 Pocket Mill|小スペース用CNCミル|垂直ミル‐Haas CNC機械

 40テーパー、単相電源で使用できて、ベースモデルは25kUSDから、必要に応じてオプションでATCや5軸も対応。

 ベースモデルでSYIL X5と比べれば確かにPocket Millのほうが安いけど、とはいえ向こうはATC標準搭載だからなぁ。色々オプションを積むと40-50kUSDくらいは行きそうだし。とはいえ、ベースモデルを25kUSDで買ってガレージに置いて、物足りなくなったら後からオプションを追加して、それでも足りないなら、Pocket Millを中古で売って大型の機械(VFとか)に買い替えた場合でも、ツールホルダを含めた工具や操作感が共有できるのは、小さいショップから始めて拡張していけるという点では面白そうではある。Haasの小型な機械は30テーパー(CompactMillは20テーパー)の製品もあるから、低価格化をアピールするなら30テーパーとかで作ってもいいはずなのに、そうしなかったということは大型機への移行も考えてそうだな。

 DesktopMillが10kUSDだからPocketMillと性能差の割に値段差がほとんどないけど、DesktopMillの方は教育機関みたいなところでいくつも並べるような使い方を想定しているだろうしな。




 猫背のエンジニア。

 蜘蛛型のロボットを投げて、敵を発見したらネットランチャーで拘束する、ってのは面白いけど、しかしなぜ6本足なのだ…… 蜘蛛というからには8本足でないと。構造が複雑になれば故障率も上がるけど、とはいえ6本足→8本足なら冗長系が増える分で利益が大きそうだが。消費電力とかコストはともかくとして。

 エンジニアだし正面から撃ち合ったら打たれ弱い感じかな。そのわりにサポートとしても中途半端な気がする。あまりガジェットを有能にすると偵察と競合するんだろうけど。『ナショナル・トレジャー』のハッカーみたいな雰囲気だけど、彼ほど有能でもなさそうな感じ。DFの世界観じゃハッキングして使えるアセットもあんまりなさそうだしなぁ。偵察衛星とかSAMとか色々ありそうだけど、ゲームバランス的にねぇ。



 大口径光学アンテナ合成開口実証(OSCAR-J)プロジェクト|JAXA|研究開発部門

 JAXA、MELCO、NAOJで分担して、副鏡および主鏡2枚(全6枚中)の1/1スケールを作成し、検証。

 これ、合成開口かぁ? 強いて言えば開口合成、一般的には普通の分割鏡望遠鏡では?

 これから高性能かつ大規模な地球観測(Opt/SAR)コンステレーションが構築されるであろうことを考えると、この手の観測衛星の必要性は提案当時から比べるとかなり小さくなっているけど、とはいえ他の目的に転用できるのが強みよなぁ。外に向ければ大口径の天体観測衛星として使えるし、地球以外の惑星(コンステが構築されていない場所)で使うことも考えられるし。とはいえ天体観測衛星で使うのはともかくとして、地球以外の惑星で何に使うんだよ、という話ではあるけど。

 姿勢の自由度を増やしておいて、例によって2,3機を日本付近の静止軌道に入れておいて、平時は最低1機を地上観測用に、予備機は外に向けて天文観測に使って、地上で大きなイベントがあれば全部地上に振り向けて、宇宙で大きなイベントがあれば可能な限りそちらに振り向けて、みたいな運用をやっても面白そうよな。回線設計をうまくやれば、常時高速通信で接続して、地上の状況だけでなく、天文現象もリアルタイムの動画を降ろして、珍しい天文現象が起きたらYouTubeで配信したりも考えられる。重力波望遠鏡で見つけた超新星爆発の映像をリアルタイムにYouTubeで配信する、とか。あくまでも地球観測衛星がベースだから精密な天体観測に使えるものではないだろうけど、とはいえひまわりで金星の気象を長期的に把握したりとかもしてるしな。十分に低コスト&気軽に使える光学系が宇宙にあれば天文屋も使うだろうし。NAOJが噛んでるのも、共有するにしろ新造するにしろ、宇宙用の分割鏡望遠鏡が作れるか検討したいってことだろうし。

 作るならDS2000ベースだろうけど、DS2000って外宇宙を見れるほど振り回せるんだろうか。QZSでヨーイングはやってるけど、それにしたって地心指向であることに違いはないし、地心以外に向ける運用はDS2000ではやってなさそう。気象衛星だと放熱面の太陽角の問題とかもあるだろうけど、静止光学衛星の場合は分解能を稼ぐために短めの波長を使うはずだから、冷却はさほど問題ではなさそうな気もする。鏡の精度が得られなくて結局長めの波長になる可能性もあるけど、いちおうJWSTで使っている長波長側ではなく世界初となる可視光を目指しているわけだし。問題があるとすれば通信周りだろうけど、緊急用のテレコマはオムニだろうし、ある程度のボディポインティングは前提だし、通常はミッション用の超広帯域回線を使う前提なら、最初から外側を向けるように設計しておけば問題はなさそうな気もするな。イラストだと大型のパラボラアンテナを積んでるけど、これだとボディポインティングも難しそう。できればオーストラリアとかの晴天率の高い場所に光地上局を置いてもらって光で直結できれば嬉しい。光開口ならあまりかさばらないから地球側と反地球面に置いて内側も外側も向けるようにとか、あるいはうまくやればジンバリングで1個の開口でも成立するだろうし。



 新作TPS『ARC Raiders』は、“『Escape from Tarkov』が難しい”と感じるプレイヤーも遊べる脱出シューターだった。ヒリつきは残して課題を解決 - AUTOMATON

 個人装備はソ連みがあるな。

 ゲームシステムは面白そうだけど、西側の現代的な装備が好きなので、世紀末っぽかったり未来っぽかったりファンタジーっぽかったりソ連っぽかったりするゲームはあまり触手が伸びないな。


 数日毎に1回30分くらい遊んで楽しいゲーム(FPS/TPS)ってないものかなー。対人ゲーで最初にガッツリ自習しないと始めることすらできないみたいなゲームは気軽に遊べないし、プレイスキルが重要なゲームは週1くらいで軽く遊ぶことはできないし。

 対人ゲーでプレイヤースキルがあまり重視されないのって、大量のプレイヤー数でマッチングを頑張るくらいしか対応できない気がする。プレイヤー数が十分にいれば、少なくともゲーム始めたての初心者とランクをカンストした最上位層を同じマッチに入れてリスキルされ続ける、みたいなことは避けられるはず。

 とすると、初心者はプレイヤー数が多いゲーム、つまり発売直後のメジャータイトルを買うのが一番楽しそうな気もする。ローンチ直後ならプレイヤー数が多いことを期待できるし、それらのプレイヤーがある程度フラットな状態を期待できるし、必要であればSNSで情報も集めやすいし。結局リアルマネーでPay to Winってことになりそう。懸念点があるとすると、大抵はフルプライスのゲームを定価で買わなきゃいけないという点だけど、そこはもうPay to Winとして諦めるしかないかな。




 バトロワPvPでステルス特化って珍しい気がするな。

 面白そうだけど、従前の理由で……




 タイピングゲーム。短い単語が周囲から押し寄せてくるので、片っ端から入力して撃破していく感じの。寿司打と違ってランダムリード速度のオーバーヘッドがないから、常にキーボードを叩いている状態にできて、結構楽しい。

 雑魚敵は短い単語だからそれほど大変ではないけど、ちょっと違和感がある単語がちらほら。それと、ボス敵は著作権切れの古い文章を使っているやつがいるので、現代文の入力にしか慣れていないと大変。

 変な入力を強要されるのはバグっぽい気もするな。ローカライズの人が大量の単語のデータセットを作るときにちょっとミスった、みたいな。バグった方に慣れると後でバグフィックスされたときに大変そうだけど、とはいえ、違和感の少ない状態に直してほしさが強い。

 あとは、ゲームシステム(自機の種類やアップグレード)が分かりづらいかな、という感じ。



 Appleの商品ページ、Windows(非慣性スクロール環境)から見るとスクロールがガッタガタでめちゃくちゃダサいWebサイトなのが残念な気がする。「ウチの製品で見ればヌルヌル綺麗に表示できるよ!」とアピールしたところで、御社の製品を購入済みのユーザーにそれをアピールしても顧客の獲得にはあまりつながらないのでは? むしろ御社の製品を使っていないWindowsユーザーに対して強くアピールできるWebサイトを作るべきなのでは? WindowsからAppleのWebサイトを見ると「Appleってこんなダサいデザインしかできない会社なんだ」的に見える気がする。


***


 ある日の1090ログ

 航空大の機体。Mode-3/A,C,Sが出ている。旭川空港で1200でタッチアンドゴーを行って、帰るときにスコークを変更。かなり強い信号を受信している。単に距離が近いからという理由だろうけど。

 パルスはコヒーレントだけど、傾斜が変。

 Mode-Sの応答。ログの都合上短く分割されているけど。灰色のドットが位相。

 最初は上昇傾向、すぐに下降傾向に移って、最後はほぼ水平。謎い。PAの昇温でXtalの温度特性が見えている、という感じでもない。電源周りの特性とか?


***


 fl2kからGPS L1, L2, L5を出したときの配置の例。L1, L2, L5の振幅の差があまり大きくないものをいくつかピックアップ。結構多くの選択肢があるので適当に選んだ数個。

 ↑12.75Msps

 ↑21.086956Msps (ゾーンが違うけど20.370367Mspsでも同様の特性)

 ↑35.35714Msps

 ↑51.764703Msps

 ↑89.090907Msps (89.000000Mspsや89.166663Mspsでもほぼ同様)

 ↑96.25Msps


 96Mspsや89Mspsはだいぶ特性が良い。89MHzはL4とL3がゾーン境界に近いけど、まあ、民間人でそんなバンドを使うやつもおらんやろ…… ただ、96Mspsとか89Mspsはデータレートがかなり高いので、データの生成も高コストだし、FL2000に通すのもUSBコントローラーの帯域幅的に結構大変そう。

 52MspsはL2, L5の特性はいいけど、L1がゾーン境界に近いのでちょっと厳しそう。他のサンプリングレートもL1は厳しい。低サンプルレートだと21Mspsがゾーン境界からの距離はちょうどいいかな? 急な傾斜のそばだから補償フィルタを通そうとすると大変そうだけど。

 今回は拘束条件としてL1, L2, L5の高さ(Sinc関数の利得)が近いことを設定したけど、利得に関してはキャリアの振幅で調整すればある程度自由に設定できるから、これはおそらくあまりいい条件設定ではない。周波数の低いL5はSincのヌル点近くの傾斜が急な場所に配置されるし、周波数の高いL1はSincのピークの近く(ゾーン境界近く)に配置されてしまう。ピークから適当な距離(周波数で5MHzとか、正規化周波数で0.2とか)ずらした場所を拘束条件として探すほうが良さそうな気がする。


 ということで、試しにL1,L2,L5のゾーンを拘束して探索

 ↑19.375Msps (2.91dB@L1,2,5)

 ↑34.838701Msps (2.89dB)

 ↑70.666660MHz (3.53dB)

 ↑79.999992Msps (2.79dB)

 ↑85.714280Msps (1.36dB)

 ↑86.0Msps (2.56dB)

 ↑100Msps (2.94dB)


 35Msps以下はL5とL2の間にピークが入るので、SAWフィルタでエイリアスを切れない。エイリアスの除去を考えると少なくとも70Msps程度(L2-L5の1.5倍程度)が必要。この場合、L1とL2で2.8dBくらいの差があるので、この差を減らそうとすると85.7Mspsに設定する必要がある。サンプリングレートにキリの良さを求めるなら86Mspsとか100Mspsとか。fl2kの入力は10MHzだから、100Mspsなら外部クロックと高いコヒーレンシー(ジッタ特性)が期待できる可能性もある。100MspsならL1, L2, L5, L6がすべてちょうど良さそうな位置にある(フィルタの特性次第)。


 京セラのSAWだと1ポート入力で2ポート(L1,L2/L5)出力とか3ポート(L1,L2/L5,L6)出力の製品はあるけど、複数ポート入力1ポート出力の製品はなさそう。個別のアンテナを使ったらマルチバンドの意味がなくなるから複数入力ポートは不要ってことなんだろうけど。しかし、マルチバンドGNSS受信機って帯域ごとに入力ポートが独立してるのかな? それならfl2kから2,3chで信号を出して軽くDC付近(大きな振幅)を消してから、まとめずにバンドごとに突っ込めば良さそう。外付けのフィルタに依存してアンダーサンプリングとかやってると困りそうだけど。


***


 FMラジオ用のfl2kの適当な計算。

 IFのサンプルレートを285ksps(15x19kHz)に設定すると、250倍で71.25Mspsが作れる。71.25MspsはFL2000で出せるからちょうどいい周波数を出せる。76MHzから99MHzの範囲はゾーン3に入る。

 44.1kspsから285kspsに変換する場合、44.1ksps*950=41.895Msps/147=285kspsでかなり高い場所を経由する必要がある。かなり高い、とは言っても、DACのサンプリングレートの半分程度ではあるけど。

 48kspsからであれば48ksps*95=4.56Msps/16=285kspsで、かなり低い比で変換できる。

 FMステレオ放送を変調する場合、パイロット信号はNCOで作ればいいし、サンプルレートもそれほど高くない範囲に選べば計算量はあまり多くないから、大抵はNCOで問題ないはず。だた、RDSみたいなデジタルデータを扱いたい場合、少なくともパイロット信号の整数倍を選んでおくと、計算が楽になるはず。285kspsなら285ksps/57kHz=5で、データキャリアの1周期を5サンプルで表現できる。ちょっと分解能悪いけど、どうせBPSKだし、デジタル変調だし、なんとかなるはず……


***


 CICと補償フィルタの例(N6, R10、入力正規化周波数0.06でカットオフする補償係数)

 補償フィルタを通しても高周波側が上がってくる特性が謎だったんだけど、FIRの次数が少ないとこうなるらしい。特に32タップの場合は全体的に高くなっていて全く補償特性がないし、64タップの場合もDC付近が少し持ち上がっている。

 拡大するとこんな感じ

 1024タップでも細かく見ればやはり高周波側は持ち上がっていて、2048タップでも程度の問題。CICフィルタはなまじ整数演算で計算誤差がほとんどないから、厳密に見るとこういう細かい誤差が綺麗に見えてくる。

 128タップが顕著だけど、綺麗な曲線ではなく、多少うねうねした形になっている。これはFIRのリプルが窓関数(Blackman)を抜けて出ているもの。



 入力端の正規化周波数を0-0.5の範囲で周波数スイープした複素信号をCICに入れて振幅をグラフ化

 青が期待した値、橙がその結果。ぴったり重なって、その差は0.001dBより小さい。

 振幅の期待値は(sin(pi*f*R)/sin(pi*f))^Nで計算できる。CICの応答はSincのN乗という説明がよくあるけど、分子にRが入っているし、分母にsinが入っているので、ちょっと違う形になる。



 FMステレオ用のFIRの特性

 48kspsを入れてFIR、↑CIC(N6、R95)、↓CIC(N5、R16)をシリーズに通して285kspsを得るような形。FIRは512タップ、プリエンファシスはとりあえず50usを設定している。バンドパス特性はほとんど直線な感じ。CICやエンファシスが重なって偶然そうなったんだろうけど。/* 直線と言っても片対数だけど */


***


 SDR#のWFMのエンファシス特性。乱数+FFTで1kHzから5kHzの雑音を作って、それをFMステレオ変調しIQファイルへ書き出して、SDR#で復調。右下のAudio Spectrumが問題の部分。

 ↑0.1us(エンファシスOFF模擬)

 ↑50us(米国のFM放送)

 ↑75us(日本のFM放送)

 デエンファシスは高周波を下げるので、プリエンファシスがない場合(今回は0.1usで模擬)は明らかに右肩下がりのスペクトル。50usと75usはほぼ平坦だが、どちらかといえば50usのほうが水平に近い。とはいえ、ほぼ違いはない。


 エンファシス特性、10usから100usまで

 エンファシスOFFと50usは高周波では12dBとか変わるので音源によっては比べなくてもわかると思う。しかし、50usと75usでは3dB程度しか変わらないから、片方だけ聞いて正しいエンファシスか、不正なエンファシスかを判断するのはかなり難しいと思う。4kHzを超えればどちらも3dB差程度でほぼ一定だから、大抵の場合は単に音量の違い程度にしか聞こえないはず。


 本来は特性を期待できる受信機(例えば日本メーカーが開発した広帯域受信機のWFMとか)にfl2kの出力を突っ込んで、実機でも比較してみるべきなんだろうけど、ハードウェアも色々準備しなきゃいけないし、録音方法も考えなきゃいけないし、録音したもののスペクトルを見る方法も考えなきゃいけないし、ちょっと手間が大きいので、また気が向いたらやる方向で。。。


***


 SoundEngine Free(v5.23)のヴィジュアルのFFT、連続して見ていると正常に表示できなくなるときがある気がする。一時停止してまた再開すれば正しそうなスペクトルが見える。

 あと、ヴィジュアルのFFTは、FFTの分解能(Hz/bin)と表示の分解能(Hz/pixel)が違うが、そこのレート変換に変な特性があって、線スペクトルを表示すると振幅が正しく表示されないっぽい。振幅が正しくない程度ならまだいい方で、場合によっては完全にスペクトルが消えることもある。テスト信号みたいに線スペクトルが入っている音声信号を見たいときは気をつけないとまずそう。


 ↑すべての線スペクトルがある程度等しい強度で表示されている状態

 ↑フロアが暴れている状態。低周波側が顕著だが高周波側のスペクトルの隙間もかなり浮いている。

 ↑横幅を減らして表示した状態。例えば18kHz付近のピークがほぼ完全に消滅しているし、付近のピークもかなり減衰して表示されている。


 線スペクトルの高さが正しく表示されない問題は、表示領域を広くすればある程度緩和できる。おそらく適当な幅のbinを加算平均とかしていて、線スペクトルが消えるんだと思う。表示範囲を広くすると平均化に使用するサンプルが減るから、線スペクトルが相対的に浮いてくる。うちの環境だと4KモニタとサブのFHDの合わせて5760ピクセルの領域で表示すると、ほとんどすべてのスペクトルが同じ高さに見える。3840ピクセル程度だとまだガタガタする。

 高周波側が顕著で、正規化周波数で0.2あたりまではかなり安全。ただ、これはFFTの周波数分解能の問題だと思う。低周波側は、長期的には線スペクトルであってもFFT窓内ではブロードなスペクトルになって、複数binで平均化したときにノイズフロアに引っ張られなくなる、みたいなことだと思う。

 信号処理(フィルタ処理とか)のテストのために波形をWAVで吐き出してSoundEngine Freeで表示して確認する、みたいな方法は結構危険かもしれない。


 フロアが暴れるのは横幅を広くしたときに顕著で、幅が狭いときはほとんど出ない。高さはおそらく無関係。線スペクトルが消えないように横を広くするとフロアが暴れるし、フロアが暴れないように横を狭くすると線スペクトルが消えるし。難しい。