日常をFLIRで撮影してIron Paletteで表示するとハロウィーンモードになるのか…… なるほど…… 目で見えないナニカも見えちゃいそうだが。
遠赤外線消せる軍用グレードの化粧品とか使ってコスプレした人を見ると「あのひと、体温……無い!?」みたいなことになるのか。あるいは顔がよく見えるようにとフェイスシールドを使うと体温が見えなくなる、とか。入館の温度計とかフェイスシールドはどうやって対応してるんだろう? マスクを使えば額は出ているはず、みたいなことなのかな。
***
ゴーストリコンブレイクポイントのアップデート、いろいろ快適になってて楽しい。
特にレールマウントのレーザーがIRイルミネータとして使えるようになったのがすごく便利。いままでGRBPのNVはオートゲートぶっ壊れてて裸眼のほうが見やすいレベルだったのが、アプデ以降は近距離であれば照らして見えるようになった。マークスマンの距離だと光量足りないけど。そもそもアクティブに照らさなきゃ見えないNVってのがなぁ。
他にもいくつか変わった場所があるような気もするんだけど、でも記憶違いのような気もする。
一つ残念なのは、いままでサーマルはアンロックせずにプレイしてたんだけど、今回のアプデを楽しむにはサーマルのアンロックが必須になってしまった点。普段パスファインダーを使っていることもあって、モード変更がとても煩雑。
何気なく漁船に乗り込んで、ふと、船外機のステアリングハンドルってポートサイド側に付いてるんだな、という疑問。ヤマハとかホンダの船外機はティラーハンドルが左についているのが標準らしい。なんで左側なんだろう?
/* 昔ナショジオかどっかで麻薬カルテルの潜水艦の番組やってて、押収したエンジンを保管している場所においてある物がほとんどヤマハだった、みたいな光景があったな。品質が良いエンジンは法執行機関が押収した後に自分たちの船に積んで使うんだとか。「お前たちが苦労して稼いだ金で買った高品質なエンジンはお前たちを捕まえるために使われてるんだぜ」みたいな。 */
***
凸版印刷のLC MAGIC、実験というか、工作用に少しほしいんだけど、売ってくれるんだろうか? リバースモードをA4サイズくらい。カタログには小さいサイズでの使用例も乗ってるし、作ることは可能なんだろうけども。果たして個人相手に売ってくれるものなのか……
別のメーカーで個人向けに売ってそうな所だと、単純に面積比で割るとA4相当1枚で1万円くらいしそう。安いやつだとamazonで4千円くらいで売ってるようだけども(モードが逆だが)。
***
繰り返しヘテロヘテロと言っておりましたが、実際にはホモでした。訂正してお詫び申し上げます┌(┌^o^)┐
※ 無線機の話題
CW復調は(スーパーじゃない)ヘテロダイン処理。
***
FFTのゼロパディングの実験。
時間空間(上)と周波数空間(下)。750Sa/sで69.3Hzの正弦波を256ポイント作り、256ポイントでのFFTと、ゼロパディングで4096ポイントでのFFTで周波数空間へ変換。それぞれ、256ポイントの時点で窓関数を通したものと通していないものを比較。窓関数を通したものは利得補正済み。
256pts窓無しはサイドローブが広くピーク高さも不正確でかなり情報量が失われている感じ。256pts窓有りはサイドローブは小さいがやはり情報量の不足感は否めない。
4096ptsはどちらもピーク位置が256に近く、振幅を正しく求められている。しかし、窓関数を使用した方(紺ドット)はスペクトルの幅が広がってしまい、周波数分解能が悪化している(窓関数とはそういうものだからしょうがない)。窓関数を使用していない(=矩形窓を使用した)赤ドットはSinc状のサイドローブこそ多いが、周波数スペクトルも細く、ある信号が1つの正弦波の場合に、その信号の周波数と振幅を正しく求めることができる、可能性が高そう。
矩形窓でのSinc関数のゼロ点は、サンプリングレート/ポイントの場所に出てくる。今回の場合は750Sa/s / 256pts = 約2.93Hzとなり、66.37Hzと72.23Hzのあたりにゼロ点が位置している。つまり、矩形窓を使用した際のスペクトルの幅は観測時間に依存することになる(サンプリングレートやポイント数は直接的には関係ない)。スペクトルの幅を1Hzにしたいなら、1秒間のサンプルが必要になる、ということ。
***
ついでなので、ヒルベルト変換を試してみた。興味はあったけど難しそうで手を付けてなかったやつ。
なんのことはない、原理としては単なる複素バンドパスフィルタそのものだ。
ただし、いわゆる「ヒルベルト変換」は少し特殊な特性付けがなされていて、-0.5fsから0fsまでのゲインが0(-∞dB)、0fsから0.5fsまでのゲインが2(+6dB)となっている。この場合においては、複素フィルタの実数がTaps/2のポイントで1のインパルスとなる。つまり実数側はTaps/2の遅延線(シンプルなリングバッファ)で実装できるので、少リソースで処理ができる。
複素バンドパスフィルタの特殊な形状だから、そこから特殊性を外せば、普通の複素バンドパスフィルタにもなる。
一部の周波数帯域だけが欲しいなら、実部を遅延線で実装することを諦めて、複素フィルタとして実装すればいい。ただし入力信号の虚部はゼロだから、複素数としての積は必要ない(実数バンドパスフィルタが2列あればいい)。
予想以上に簡単すぎて拍子抜けというか、なんというか。
***
ということで、音声出力を750Sa/sにデシメーションして、ヒルベルト変換してから角速度を計測。
見た目に変化がねぇな。ch2でコード4(77.0Hz)を出してる。
93.75Hzでデータが流れてきて、それを1ブロックとして復調処理を行っている。CTCSSの検出は750Sa/sで行うので、8ポイントの角速度を平均化して、そのブロックでの周波数とする。それを複数ブロック平滑化して、実際に検出したトーン周波数として認識する、というアルゴリズム。
5ブロック(約50ミリ秒)の平均では多少揺れるけど、トーンの認識は可能。20ブロック(約200ミリ秒)であれば、ほとんどノイズなしに周波数を決定できる。ただ、現状の処理では1回でも不正な値が入ってくると前後20ブロックで決定が破棄されるので、ちょっと大きな風切り音とかが入るとトーンスケルチが閉じる。このあたりはアルゴリズムの実装にもよるけど、トーンスケルチ自体が周波数変調と同じようなものだから、弱肉強食特性の影響を大きく受ける。フィルタの係数を長くしても改善しないので、送信側の問題だと思う。
ヒルベルト変換を使用して複素空間で角速度の直接検出は、SNRが良いときは良い結果になるけど、実環境でトーン検出に使うのはちょっと微妙かもしれない。
IC-R6で受信すると、強烈な低周波ノイズを含む信号でも、しっかり検出してトーンスケルチを開けるので、かなりロバストな実装になっているらしい。どうやってるんだろうか。
あと、現状の方法はサンプルブロック内の角速度しか参照していないので、PTTを離したときの逆位相バーストを検出できない。
CTCSSの検出に関しては、別の実装が必要そうだ。
***
CTCSS、手持ちの特小トランシーバ(ICOM)ではアナログは38トーンまでだけど、他の用途で慣例的に使用されているトーンがあるらしい。例えばトーン1とトーン2の間は少し広めの隙間が空いているので、ここにトーン39を設定してある、など。
他にも、NATO軍が使用する無線機(西側現代装備コスプレサバゲーマー御用達AN/PRC-152等を含む)は、150Hzのトーン(トーン23の146.2Hzとトーン24の151.4Hzの間)が使用されていたりするらしい。もっとも、これに関してはEIAトーンとの併用とかは考えていないような気がする。単にノイズスケルチの代替としてトーンスケルチを使っているだけらしい。トーンスケルチであればスケルチレベルの設定が不要なんだとか。本当だろうか?
デジタル処理でトーンスケルチをやるなら、FFT通してから、設定したトーン周辺にあるピークの位置と、その周辺のノイズフロアとの比を使えば、ある程度ロバストにトーンスケルチを作れるのかもしれない。もっとも、最近の軍用無線機だと周波数特性とかはちゃんと要求されているだろうから、トーン付近に風切り音が入ったりみたいな事は無いだろうし、民生のトランシーバでも同じように実装できるかはわからないけど。
***
ウチのVisual Studio 2019、なんか機嫌が悪い。
インテリセンスのポップアップの背景が透明で見づらいとか、名前の変更をやると大部分のアウトラインが展開されてカーソルの位置が変わってソースコードのどこを変更していたか追うのが大変とか。あとはWinFormのデザイン画面が時々クラッシュする(タブ開き直せば治る)とか。更新かけても治らないので環境の問題だと思うんだけど。とはいえクリーンインストールも手間がかかりそうだし。どうしたものか。
SIMDのライブラリ、同じ処理でも使う場所(入出力の形とか)によってほとんど専用みたいな形で最適化して作っていくので、同じようなコードが大量に生産されていく。再利用性のカケラもない。車輪の再発明? 路面コンディションによって使い分けるのは当然じゃないか!!
全く同じ処理に見えて2倍くらいパフォーマンス変わったりする。a += foo[i].a; b+= foo[i].b;みたいな処理があったとして、配列アクセスってコスト高いんじゃね?と思ってvar bar = foo[i]; a += bar.a; b += bar.b;みたいにすると、2倍遅くなったり。値コピー繰り返して遅いっぽい。この程度はJTIでちゃんと最適化してくれてるんだろうな。
ベタ書きしてたパラメータをクラスとかに分離する作業していたところで、これ外部ファイルから読み込むようにしたら良いんじゃね? と思い始めるなど。144MHzならSDR1本でアマチュアの割当全部見える。430MHzは範囲足りないけど。ドングルのID指定して3本使えば電話の帯域はカバーできるかな。
設定ファイルから読み込む方式の場合は動的にチャンネル(受信周波数)を変更することはできないけど、現状でもFM/CWの切り替えでローカルの切り替えは行っているから、UI次第という感じ。アマチュア無線のCWモードでの運用も想定するならLOの分解能(約100Hz)はちょっと低いな。まぁ、ローカル信号のバッファを複数個持って順次切り替える、みたいにすれば対応は可能。メモリ100倍食っていいなら1Hz程度で設定できる。
しかし、このあたりだとアマチュア無線の帯域を使ってるのは違法トラッカーしかいないからなぁ。聞いてて楽しい会話じゃない。よって受信ソフトを作るモチベーションも沸かない。まぁ、そんな事言い始めたら、特小トランシーバだってこのあたりで使ってる人はほとんどいないと思うが。
***
特小トランシーバ、オシロで観察。
ICOMの中継27ch、440.3625MHzのピーク。左右に見えているのはFMの波形ではなく、スプリアスだと思う。
オシロの帯域は200MHzだけど、振幅レベルが正しくないだけで、信号が存在すること自体は把握できる。そもそも自遊空間経由で結合だしね。
レピータがないので、自動的に送信が止まる。
レピータに対して、送信が440.2MHz前後、受信が421.75MHzあたりかな? 通常(半二重)は422.2MHz前後を使っている。レピータも含めて受信するのであれば、421.575-422.3までの、0.725MHzの範囲を受信すれば良いらしい。今の受信ソフトでは初段が1.152MSa/sだから、いちおう範囲には入っている。あとは処理能力(&描画領域)の問題。処理能力に関して言えば、SDRの処理自体はかなり軽量な印象。計算リソースの大部分はグラフの表示とかに割かれているので、このあたりの妥協(e.g. 解像度を落とす、フレームレートを落とす)で47chにも対応できそうな気がする。
「20chじゃ本物の特小全チャンネル同時受信とは言えないって? いいぜ、そこまで言うなら47chに対応してやるよ!!」(やりません)
一番負荷が高そうな1.152MSa/sのFIRデシメーションは、実のところは2%くらいしか使っていない。384kSa/sのIFからAFまでの変換処理で15%弱くらい。ローカル信号の注入が32ch分あるから、32倍で効いてくる。一番重いのは描画周りで、描画に70%くらいのリソースが喰われている。47ch対応でやろうとすると、IFからAFまでが2倍になって、1.152MSa/sのデシメーションも2倍、そして1.152MSa/sの段階でヘテロダインを2個やらなきゃいけないので、そのあたりが重そう。とはいっても、描画に比べれば格段に軽い。IFやAFのスペクトル表示をなくせば十分カバーできると思う。ということで、「ソフトウェア無線でナローFM同時64chくらいなら十分処理できそう」って雰囲気(ミキサ・CIC・FIRは32ch並列で処理しているので、その整数倍ずつ)。47chくらいなら問題なさそう。。ソフト無線、想像以上に軽い処理のようだ。まぁ、STM32やdsPICでラジオを作ってる人もいるので、x86CPUならお茶の子さいさい、といったところか。
***
低レベルな仕事をしているコンピュータエンジニアが異世界召喚されて魔法職になったときのスキルの妄想。
* CISC
比較的時間をかけて複雑な魔法を発動するのが得意。細かい魔法は不得手。
* RISC
細かい魔法が得意。数々の魔法を組み合わせて複雑な効果をもたらす。
* SIMD
魔法の規模に応じて同じ魔法を同時に発動できる。小さな魔法では同時に64個等。
* FPGA
極めて複雑な魔法を発動できる。多少の時間を要するが必要に応じて変更が可能。
* ASIC
極めて複雑な魔法を高速・低コストに発動できる。変更はできない。
* GTX
小規模な魔法を極めて大量に発動できる。複雑な魔法はCISCやRISCを使う必要がある。
* RTX
小規模な魔法を極めて大量に発動できる。複雑な魔法はCISCやRISCを使う必要がある。無誘導・直進タイプは反射を計算することができ、跳弾を利用した攻撃等が可能。
* big.LITTLE
普段は低コストで運用しつつ、必要なときには大規模な魔法の発動が可能。
* ハイパースレッディング
CISCのサブスキル。複数の魔法を連続して発動する際に、並び順によっては同時に並行して発動できる。
* Tensor
RTXのサブスキル。データ処理が得意。魔力波の反射を使用して周囲に存在する動植物等を解析するといった活用が可能になる。
なんか「ファンタジーで学ぶコンピュータ・アーキテクチャ」みたいな本作れそうな気がしてきた。
世の中には2種類の人間がいる。「低レベルな事やってるな」と言われて喜ぶ人と、喜ばない人である。前者にはただの変態も含まれる可能性がある。どっちにしろ変態だから同じだが。
「CISCとRISCのどちらが優れているかだって? 君たちはなんて低レベルな議論をしているんだ!!」
携帯端末やスパコンのような両極端な用途でRISCが使われているし、その中間のデバイスもApple MシリーズみたいにRISC使う例も出てきてるしなぁ。CISCもx86みたいに互換性維持せず新しく設計すれば使いやすいチップは作れるんだろうけど、そんな物作ったってx86やARMと戦えるほどの数は出ないだろうしなぁ。RISC-Vが参入できてるのはRISCだからこそだろうし。
***
ホワイトボードマーカー2本。
三菱鉛筆の黒とシンワの白。また三菱かよ!とツッコんだそこのあなた、三菱鉛筆は三菱電機や三菱重工のような三菱財閥とは経営上の関係はない別メーカーです。他人の空似ってやつです。似すぎでしょ……
三菱鉛筆の方、水平なところに(ペン軸を下に向けて)書くとインクがダバぁして文字がどんどん太くなる。ペン軸を上に向けて少し保持してると急にかすれる。重力の影響を強く受けている。宇宙なら快適に使えるかな? 揮発物質がダメそう。ものすごい匂いするし。だから重力に負けるんだろうけど。
シンワのマーカーは水平に置いた状態で書くことも想定しているのか、特に問題はない。ただ乾くのが少し遅いかな? 間違ったと思って一呼吸待ってから指でこすったりすると予想以上に伸びる。
ちなみに、ホワイトボードの代わりに使っているのはクリアファイル。紙類の整理用にまとめ買いした余り。中に白い紙を入れればホワイトボードに、黒い紙を入れれば黒板になる。めちゃくちゃ軽いし薄いので机の上にポンと置いておけるのでメモ代わりに便利。こすれると消えるので中長期的な保存には向かないけど。あとは普通のホワイトボードみたいに硬さがないので、手で持って書き込むのは難しい。
材質とか形状はバインダーの仕切りシートも良さそうだけど、基本的に複数色セットでしか売ってないので、ボードマーカーで書き込むのには向かなさそう。白とか黒だけの5枚セットとかあったら最適。PPはレーザーでも切れるらしいので、レーザー加工できる設備が近くにある人はぜひ。
ホワイトボードマーカー、名前が良くない気がする。ボードマーカーどころか、吸湿しない素材であればどこにでも書ける。窓ガラスとか、冷蔵庫とか、パソコンの画面とか。ノートに書いたメモと違って残らないので、あとから見返そうと思うと困るけども。
***
艦番号とハルナンバーの語感って似てるよなー、とか考えながら(よくよく考えたらあんまり似てないな)、久しぶりにプラモデルを作成。3年ぶりくらい? amazonでアーレイ・バーク級で探して番号大きめ(=フライトIIA)のやつを適当に注文。機械油みたいなシミついてんぞ…… これが中国の安物か…… まぁ色塗るわけじゃないし、ということで気にせず組み立て。あとそれほど安くもなかった。。。海自艦だと国内メーカーが多少安く供給してるっぽい。
エッチングパーツも付属してるんだけど、色塗らないなら金色(真鍮)が目立つだろうな、と思って使わずに作成。そしたら、マスト周りは一番上の方についているIFFアンテナより下は全ての部品をエッチングパーツで作るらしく、すっげースカスカになってしまった。こんなはずじゃ…… VLSも金型じゃなくてエッチングパーツなので、甲板周りもかなりスカスカ。AN/SPY-1はかろうじて溝が入っているので、最低限のイージス艦っぽさは残ってるが。/* 戦闘艦のIFFアンテナってなんでこんな形になってるんだろうな。全集走査はしたいけど追尾レーダーほどの測角精度は必要ない、みたいな要求でこんな形になったのかな。*/
以前に作った陽炎型晴風と比べると、本当にスカスカ。複数門の連装砲も無いし、魚雷発射管も無いし。IIAはハープーンキャニスターすらも積んでないので、マスト周りを除けば甲板より上の構造物がかなり少ない。そのマストも今回は省略して作ってしまったし。マストはステルス化されているからトラス構造とかも無いし(マストがトラス構造ならマスト本体もエッチングパーツ化されてた恐れが。。。)。煙突がステルス化される前の艦なので、かろうじて煙突がアクセントになっている程度。あとはイルミネーターが3個と細々した装備がいくつか、くらい。こうしてみると第二次大戦以前の戦闘艦が人気なのも納得だよなぁ。技量のある人なら細々した部品も再現してイージス艦も豪勢に作れるのかもしれないけど、そういう人ならWWII頃の艦であればさらに細かく作り込むだろうし。
最初の頃に作ったプラモデルがガンプラの世代で、そこから塗料買ったりするほどはハマらなかった層は、塗装メンドクセーになりやすいような気がする。少なくとも、自分の場合はそれが根本だと思う。あとはそもそも面倒くさがりな性格というのもあるんだろうけど。塗料買っても置く場所ないし、混ぜるの面倒だし、買い揃えるのも大変だし……
CMYのボトル3本と溶剤を突き刺してAMS-STD-595で色を指定したら近似して調色してくれるエアブラシとかないかな? すごく便利そうな気がする。まぁ、塗料買い揃えたほうが安いだろうけども。ピエゾのインクジェットみたいな機構で調色した後に微粒子として砕いて気流に乗せる、みたいな構造になるのかな。
MEMSデバイスかぁ。いくらくらいで作れるんだろう? 昔某大学のイベントか何かで研究室見に行ったときに半導体と同じ方法で作ったというよくわからん二次元構造を見せてもらったっけ。目に見えるスケールのモノで、「これくらいの大きさならMEMS使わんでも、プラスチック板をカッターで削ればいいんでは?」とか子供心に思ったよーな。
アメリカ人はガレージで4004互換チップ作ってるらしいし、半導体って意外と安かったりするのかな? 特にある程度荒いMEMSなら。
***
この1週間で受信ソフトはほとんど進まなかったな。マザーランド作戦はひとまず終結したので、ソフト開発を再開したい(どんだけアウロアに入り浸ってんだよ)。
しかし、特小のデコードにも飽きてきたのも事実。好奇心駆動開発はある程度動くことが確認できれば好奇心が満たされて興味をなくしやすい傾向にある。さて、どうしたものか。
0 件のコメント:
コメントを投稿