✖
✖
最近とにかく元気がでなくて、特に仕事のやる気が全くまっさらで出てこなくて、前やってたタスク (自分の手からはずしてもらった) の影響を未だひっぱっている感じがする。
モールスの学習は、一つの現実逃避であると同時に、やればできるようになるという気持ちを取り戻したいという思いがある。現に、ちゃんとモチベーションがありさえすれば、僕のようなクズ人間でも、ちゃんと1ヶ月続けられているし、結果的に (記録をつけていないとわかりにくいんだけど) 着実に進歩している。
また、異分野の学習をすると、何かしらプログラミングで解決したい問題が発生するので、ちょうどいい問題をプログラミングで解いて楽しい思いをすることができる。
いくつか気付くことがあって、やはり以下の点が自分のモチベーション維持にとって重要だと思った
- 誰かに強制されない
- 誰かにバカにされない
- やる価値を信じられる
基本、独りでいさえすれば、誰にもバカにされることなく、自分の考え自分が信じられることをやり続けられる。そこに誰か意味不明なことを言うクソ人間が介入することで、重要なタイミングで余計な口出しをされ、何もかもが台無しになる。社会生活上、それらを避けることができない以上、一生やる気が回復しない。
正規表現からそれにマッチするランダム文字列を生成する String_random.js
var randomUrl = String_random(/http:\/\/[a-z]{3,8}\.example\.com\/([a-z]+\/){3}/);
console.log(randomUrl); //=> "http://nsgd.example.com/epij/tmvlh/bkjmsyahwhj/"
正規表現からそれにマッチするようなランダム文字列を生成する String_random.js というのを書きました。
Perl の String::Random みたいなのが JS でも欲しいなあと時々思うことがあったので作りました。括弧によるグルーピング・パイプによる選択も実装してあるのでそれなりに楽しい感じです。
String_random という名前は、String.random = String_random; できる感じのイメージですが、そのまま String に突っ込むと怒る人がいそうなのでこのような感じです。
ランダム文字列生成の活用方法を書きました。
✖
✖
免許がきた
- 8月17日 (日) に電子申請
- (11日ほど進捗なし、一度フォームから問合せた)
- 8月28日 (水) ステータスが審査中に
- 8月29日 (木) 手数料払込の案内、即日払込み。前もって書いておいたSASEをポストに入れる
- 8月30日 (金) 審査終了
- 9月4日 (水) 免許到着
電子申請だしもっと早く終わるのかと思ったけど、思いのほかかかった。もっと時間がかかる人もいるらしい。技適オンリーの申請だし審査するところなんてなさそうだし自動化されていそうなもんなんだけど、たぶん僕が知らない何かがあるのだろう。
コールサインは復活させず、再割り当ての J* コールをもらった。JH1UMV だった。
インターフェア対策
電波が出せるようになったので、アンテナを含めた出力のテストができるようになった。ハムフェアで買ったRF 電流計を使っていろいろ見つつ、コモンモードフィルタ (KIT-DCF-RF-29L3) の接続方法というか、ケーブルの引き回しを調整した。
あとAC電源にも同じ大進無線の DCK-3 というフィルタを入れてある。
パッチンコアもいくらか用意してあるけど、リグから出ている線がそもそもそれぐらいしかなく、現状では実際のインターフェアは観測されていないのでどこにも入れていない。
アンテナ
アンテナはアンテナアナライザー (RigExpert AA-54) を買って調整してあるので、だいたいはあってる。このアナライザー、とても便利なのだけれど、PCを接続すると (というより正確には USB ケーブルを繋げると) 値がおかしくなって、それを信用して調整すると死ぬ。たぶんちゃんとアースとらないとだめなのかな。繋げないで測ることにした。
しかし雨が降ってアンテナの共振点がかなり下がっていて、運用バンドからはずれてしまっていたのでどうにもならない感じだった。もうちょっと雨でも使えるような調整をしたほうがいいかもしれない。
✖
モールスの入門本
モールスの学習はヘタな入門本を買うよりもThe Art and Skill of Radio-Telegraphy (PDF 和訳: 無線電信の巧みと技)を読むべきだと思った。2版が和訳されて公開されていて簡単に読むことができる。すごく気を使って書かれていて、何度読んでもおもしろい。モールスに限らず、技能修練に関する習慣付けについて発見があって素敵だと思う。
この本は初版1992年 (21年前!)、非商用に限り再配布自由、というようなライセンスになっている。著者は残念ながら2003年に亡くなってしまっていて電信を覚えてこの人と交信しようというのは叶わない。
消臭 エアリオン
1本なくなりそうになったので、3本まとめ買いしました。
無線
まだ2局ほど 599BK 形式でやっている局を呼んだだけで、それ以上のことはできてない。近畿あたりの局を呼んでみたりしたけど、パイルアップになっていないにも関わらずとってもらえなくて、聞こえるけど届かない経験をした。
いまいちバンド内の慣習 (空気を読む必要があるんだけど) がわからない。あと短縮アンテナなので全然飛んでない感じもする。
週末は ALL Asia コンテストの電話部門が行われていたらしく 21MHz が賑わっていたけど聞いただけ。ロシア?、アメリカあたりのごくごく強い局しか聞こえなかった。
CQ 出して 599BK だけをひたすらやれる限りやってみたいけど、キーイングが遅すぎると敬遠される感じがする。
90%以上ほぼ聞きとれるのが 15wpm なので、基本それで出しているんだけど、15wpm は聞いてる限りではかなり遅い感じ。18wpm 余裕でとれる程度まで上げないとスムーズにいかない感じがする。
訓練自体は 20wpm でやっていて 80% 程度はだいたいとれるけど、それは本当に符号を聞きとる以外の全てのことを頭の外に追い出してやっていて、実践では半分もとれない感じ。聞きとること以外のことを考えながらだと、かなりつらい。
YAESU の無線機のエレキーの挙動
YAESU の無線機のエレキーはどうやらちょっと一般的なものと挙動が違うっぽい。なんか打ちにくいなと思ってエレキーキットを買ってやってみたけど、やっぱり違う。
実際打ってみた実感としてこんな感じかな、というので正確ではないかもしれないけど、入力は - が長点キー、. が短点で、実際のキー出力 # がオン、_ がオフだとすると、
# YAESU in: -------- out: ###_###_###_ (符号後のスペースのタイミングでキーが押しっぱなしだと、キーがメモリーされてしまう) # 一般的なエレキー in: -------- out: ###_###_ (スペースのタイミングでキーを離すと符号が途切れる) in: --------- out: ###_###_###_ (符号が出てから離さないと出力がない) 同じように、同じ入力でも出力が変わる # YAESU in : -. -. out: ###_#_###_# (最初の長点が終わった瞬間、メモリーされた短点が呼びされるので、その瞬間次のキーの予約ができる。つまり実際に点が出る前に予約可能になる) # 一般的なエレキー in : -. -. out: ###_###_# (YAESU と同じように入力すると、メモリーが上書きされるので短点入力が無視される) in : -. -. out: ###_#_###_# (短点をちゃんと聞いてから打つ必要がある)
この挙動の違い、些細に思えるかもしれないけど、実際やってみるとなかなかやっかいで、YAESU 式のエレキーだと、かなり早めにキーを離すイメージをしないと余計な点が出やすい。特に短点の場合、短点は100msecもないので、脳で聞いてから離すと指が追いつかない。頑張って前の符号が終わった瞬間に離さないといけない。
一般的なエレキーのほうは点が出終わってからキーを離してもいいので、慣れやすいように思う。一方あせって早く打ちすぎると符号が消える。
長点短点1点メモリー、スクイズと、外に出る機能ではわからないんことがある。
これ、いずれか一方に慣れると、もう一方ができなくなるのでつらい。しばらく YAESU 式のほうで訓練してようやく慣れてきたけど、一般的なほうに直すかどうか悩んでる。リグ内蔵のキーヤーを使えるほうが面倒くさくないけど、結構普通のほうがいい……
メリットデメリットを考えると
YAESU 式
- メリット: C, Q など、メモリーを活用するとき正確に符号を出しやすい
- デメリット: E I S H が出しにくい
一般的なタイプ
- メリット: 聞いてから離せばいいので落ちついて打てる
- デメリット: C, Q などを打つとき特に落ちついて打つ必要がある
vim の configure
./configure --prefix=/usr/local/vim7 --enable-multibyte --enable-gpm --enable-cscope --with-features=huge --enable-fontset --disable-gui --without-x --disable-xim --disable-perlinterp
久しぶりにビルド
String_random.js の活用方法
すごい便利なのに誰も褒めてくれないので、応用例を紹介します。
アカウントが共有のサーバで自分だけの環境を構築する
もろもろの事情でアカウントが共有のサーバで、自分だけの環境を構築するためのメモです
以下は普通にインストール済みの前提 (インストールされてなくても入れればいいけど)
- zsh
- screen
screen 初回時
SHELL=$(which zsh) HOME=$HOME/cho45/ script -c "cd $HOME/cho45/ && screen -S main" /dev/null
アタッチ
SHELL=$(which zsh) HOME=$HOME/cho45/ script -c "cd $HOME/cho45/ && screen -r main" /dev/null
これで $HOME が ~/cho45/ 以下になるので、だいぶ自由になる。SHELL も指定して screen を起動しとくと面倒くさくない。script -c してるのは、su してログインユーザと別のユーザから起動するときのため。
このまま、~/cho45/dotfiles とかに dotfiles を clone し、~/cho45/.zshrc とかをつくれば特に問題なく環境ができる。
vim はシステム既存のものだとバージョンが古くてイラっとするので、自分でビルドして ~/app (元の HOME においては ~/cho45/app) とかに入れてパスを通してる。その他、node とかもそのへんに入れてパスを通してる。
メモ コモンモードフィルタの減衰
仕様通りよりも減衰しているっぽい。普通のケーブルと切り替えながらパワーメーターの値を読んだ結果:
- TX 設定 50W -> メーター 50W (7MHz), 50W (21MHz), 48W (21MHz), 44W (50MHz)
- TX 設定 50W -> CMF -> メーター 48W (7MHz) 48W (21MHz) 45W (28MHz) 40W (50MHz)
- TX 設定 30W -> メーター 25W (7MHz), 25W (21MHz), 25W (28MHz), 23W (50MHz)
- TX 設定 30W -> CMF -> メーター 25W (7MHz), 24W (21MHz), 22W (28MHz), 21W (50MHz)
アナログメーターなのでちょっと適当なんだけど、50MHz で 0.39〜0.41dB ほど損失になってる。仕様だと 50MHz は 0.36dB なのでちょっと多い。誤差の範囲かな
汎用パワーリレーを使って同軸切替器を作る
外にリレーを置いて内から操作したいけど、そういう製品って売っていないみたいで、しかたなしに自分で作ることにした。別に現時点でアンテナが複数あるわけではないんだけど、作って試すにしてもそれがないとダルすぎるので作ってみることに。
調べてみると HF 帯ぐらいなら、通常のパワーリレーを使ってスイッチしても (つまり高周波リレーを使わなくても)、そこまでひどい特性にはならない、とのことで、一応それで実現してみることに。なにぶん高周波回路とかどういうふうに電流が流れていくのが大変わかりにくいうえ、素人なので全く自信がなく辛い感じだった。
試作1
既に解体してしまって写真も何もないけど、とりあえず2回路のものを作ることにした。リレーはパナソニックの廉価リレー AHJ3221 300円ぐらい。あとから気付いたけど、これはダイオードが入ってないタイプなので、面倒がないようにダイオード入りのを買えばよかった気がする。ただ、当面は単のスイッチで駆動するつもりなので問題ない。
グラウンドを共有にしたくなかったのと、オープン側をショートさせておきたかったので、2回路を切り替えるのに 2c 接点のリレーを2つ使うようにした。
結果的にいうと、25MHz で SWR 1.2 54MHz で SWR 1.5 程度になってしまって、あまり良くなかった。
リレーをシールドしてみたり、コネクタ部分のとりまわりを改良してみたりして、54MHz で 1.4 程度まで下がった。しかし、それ以上改良しずらい回路校正にしてしまったのでやめた。
試作2
そもそも1個のリレーでかなり単純な回路を組んでやってみた。これだと全体的に試作1から0.1ほどSWRが上がるぐらいだった。
試作3
グラウンドは分ける、オープン側はショートさせる、というのは変えず、回路構成を変えて、とりまわししやすいようにしてみた。
最初の同軸が2又になってしまっているのが、素人考えではよくない感じがする (オープンになると単なるコンデンサになってしまう) が結果的には試作1とほぼ同じような結果で、コネクタまわりと丁寧にやったぶんちょっと下がった程度だった。
やったこと、気をつけたことは以下の通り
- コネクタから内部の同軸にハンダ付けするところを、銅箔テープで囲ってシールドするようにした
- → これは多少効果があった
- 芯線のみが露出する部分が極力なくなるように (各所で 5mm 程度しか露出しない・ただしリレー内部は手を加えていない)
- → 最初からそれを心掛けたので効果のほどはわからない
- リレーをシールドするように
- → 多少の効果
あと、最初ちょっと長め (8cm ぐらい) の 3D-2V で配線していたけど、最短にしようと思い 5cm 程度 (限界) まで縮めてみたが、これは効果がなかった。
やはり 54MHz で 1.3〜1.4 程度までしか下がらず。本当は 1.2未満ぐらいまで下げたいが、対策が皆目検討つかなくなったのでここで諦めた。
制作4
実はリレーを6個ほど買ったので、せっかくなので4回路にしたくなった。そのせいでどれほど特性が悪化するかもわからないので試す。
回路構成は試作3と同じようにし、それを2段にすることで4回路にした。直列に繋いだほうが優先順位がつくれていいかもしれないけど、今回はそうしなかった。
これは正直かなり作るのが大変だったので2度と作りたくない感じ。
計測
ちょくちょく計測しながらやってたけど、記録に残したのがあまりなかった。
基準
まずダミーロード (DL50-A) の SWR を確認すると 54MHz で 1.12 ぐらいまでゆるやかに上がっていく。これはスペック通り。すなわち、これ以下の値に調整することはできない (これ以下に下がったら逆におかしい)
また、挿入地点でのパワーを計っておく。これが基準になる。手持ちのケーブルが足りないので CMF は付けっぱなし。
- TX 設定 50W -> CMF -> メーター 48W (7MHz) 48W (21MHz) 45W (28MHz) 40W (50MHz)
リレー挿入後のパワー
ポートA (000): 46W (7MHz) 36W (50MHz)
ポートB (010): 46W (7MHz) 36W (50MHz)
ポートC (100): 46W (7MHz) 36W (50MHz)
ポートD (101): 46W (7MHz) 36W (50MHz)
挿入損失
- 7MHz 0.18dB
- 50MHz 0.46dB
アイソレーション
オープン側のアンテナはショートさせているので簡単には計測できず測定できてない。
SWR
1.3未満 (7MHz〜28MHz)
1.5未満 (50MHz)
2回路のときより 0.1 ぐらい全体的にあがってる。たぶんオープン側の同軸がキャパシタになってるせいなのかなあ。
まとめ
HF 帯オンリーであれば、かなり適当に作っても実用に耐えるものはできそうだという感触を得た。しかし、頑張って特性をよくしようとすると泥沼にはまるし、技術力がないと、あるいは運が良くないとうまくいかせることができなそうだと感じた。
当然、こんなものを挿入せずに直結させたほうが、どんな悪影響もないので望ましいことだけれど、いちいち外にあるコネクタを切り替えるぐらいであれば、多少の特性の悪化も許容できるかな、と思う。あるいは、アンテナのテストのときのみ使って、あとははずしておくという使いかたもできるかもしれない。
いずれにせよ、まだ実際に使ってみてはいない。というのも、実際にリレーをコントロールする部分を一切作っていないのと、まともなアンテナ自体が1本しかないからです。
さらに追試をして、もっと SWR を下げられないか? と試行錯誤をした
- コイルを作って直列に入れてみる (キャパシタをキャンセルする意図だけど、間違ってるかもしれない) → 全然だめ
- 全体をシールドしてみる → 変化なし
- いろんなところを触ってみる → 下がったりするところがある
- 並列に適当にコンデンサを入れてみる → 特性はよくも悪くも変化する
とやってみて、出力端子に並列して適当なキャパシタを入れてみることにした。全く理論的ではなくて、うーんという感じだけど、同軸ケーブルを10cm程度に切り、これをキャパシタにみたてて出力近くに並列に入れたところ、下がる兆候があった。
短くしていくとどんどんあがっていくので、今度は15cm程度にして再度やってみると、全体で非常に下がった。
結果的に、各出力ポートごとに 15cm 程度の同軸 + 入力ポート直後に 8cm 程度の同軸を並列で繋ぐことで、54MHz まで 1.2以下になるようになった。
この方法が正しいのか、よくわからない。計測した限りでは SWR は下がり、挿入損失もそんなにひどく出ている感じではない。疲れたのであとでもう一度ちゃんと計測する。
リレー挿入後のパワー
ポートA (000): 47W (7MHz) 39W (50MHz)
ポートB (010): 47W (7MHz) 39W (50MHz)
ポートC (100): 47W (7MHz) 39W (50MHz)
ポートD (101): 47W (7MHz) 39W (50MHz)
- 7MHz 0.09dB
- 50MHz 0.11dB
初の DX
火曜日の8時〜9時ごろ、出社前にワッチしていたら 21MHz バンドでカナダの局が強力に入っていた。少しきいてるとレポート交換だけのQSOだったので、すぐ呼んでみたら普通に 599 でとってもらえた。かなり嬉しい。
ちょっと満足したあと、21MHz が開けてるときなら 18MHz はもっと良かったりしないのかな?と思って 18MHz バンドをちょっとワッチしていたら、すぐマレーシアの局が弱め 559 程度で聴こえたので呼んでみた。こちらも599で返してくれた。
いつも出社する時間に決めてる時間が迫っていたのでそこでやめたけど、簡単な交信とはいえ短時間に2局もDXできたのですごく満足した。
コンディションと相手の設備さえ良ければ、こちらのロケーションが地上高が殆どないマンション1Fでアンテナが短縮多バンドモービルホイップでもとってもらえることを実感した。
AVR
マイコンに一種の憧れを抱きつつも、なかなか本当に手が出ない。とりあえずチップを買ってみたりしたけど、別に Arduino でもいいわけで、積読みたいな感じだ。
開発にうまく専念できない理由がいくつかあって
- Mac で良い開発環境をつくれない
- 実際に作りたい、ちょうどいいサイズの問題がない
シミュレータとして simavr というのがあるんだけど、付属するサンプルプログラムでさえ、どうもうまく動いた試しがない。Ubuntu でやってもダメだし、何が悪いのかわからない。
ちょうどいいサイズの問題は大変難しい。今であれば CW インターフェイスを作りたいなあと思っているけど、ハードルが高い。AVR で USB をハンドリングするので VUSB とかライブラリを組込む必要があるし、PC との連携をうまくしないといけない。たぶん Arduino でとりあえず作ってみるほうが良さそう。
Arduino は、開発環境とハードウェアをスペックに落としてパッケージにして名前をつけたのが発明なんだよなあ。
CWゼロインのインジケーター
FT-450D には CW ゼロイン時のインジケーターがないので作ってみたくなった。既にやってる人がいたので、それを参考にしつつ、定数だけちょっと変えた。NJM567 の 1pin, 2pin のコンデンサ容量をどちらも 2.2μF にした。ブレッドボードで組んでいくつか定数を試しながらやってから基盤に実装した。
この状態で実際よくよく使ってみると、かなり帯域が狭く (100Hz未満)、ほぼオンフレでないと反応しない感じ。このへんは好みだろうけど、もうちょっと広くてもよかったかもしれない。なんともいえない。帯域が狭いので弱い信号だととれない。
これがあってもなくても、どっちにしろ耳で音程をあわせる必要はあるので、完璧主義的には十分狭いほうがいいかもしれない。ただ、実際の交信では結構ずれて (ずらして?) 交信しているケースもあるので、100Hz〜200Hz ぐらい幅があってもいいような気がした。
もっと便利にするなら、どれぐらいずれているか、を表示するインジケーターにすべきだと思う。単純に考えて、5個ぐらい NJM567 を並べて、それぞれ調整して帯域をもたせたらそういうのは作れそう。しかしそんなに作ってる暇があったら耳を鍛えたほうが早いという感じがする。
サービスごとの連携サービスの扱い
- https://plus.google.com/connectedaccounts で、接続して公開設定にしていると、プロフィールに表示される (これは確実にアイデンティティが関連付けされている)
- ↑ とは別に任意のURLをプロフィールに登録できる
- メッセンジャーアプリのID、任意のURLしか登録できない
Hatena
- 任意のURLが登録できる
- Twitter、Facebook と連携でき、公開される可能性があることに留意しろという注意書きはでるが、一覧ページなどはなく、プロフィールにも表示されない
Github
- 任意のURLが登録できるだけ
- 外部連携機能がない。リンクは1つのみで、だいたいの人は自分のサイトへのリンクぐらいしか貼ってない
アイデンティティ抽出
それぞれのサイトで任意のURLの登録は比較的自由。なので、それらが一致するものを抽出できればある程度アイデンティティが関連づけられそう。ただ、クロールしないとできないのでつらい。
それなりにユニークなのはメールアドレスだけど、表示されないことが多い。なにかいい方法はないか
交信ログを公開
交信ログの一部を公開するようにした。ずっとやってないと恥ずかしい感じになる。
交信ログのとりかた
Windows なら Turbo HAMLOG for Windows というのがあって、大変使いやすいし、それでいいのだれど、Mac だと無料で丁度いいのがない。有料で超高機能、みたいなのはあるけど、そこまで必要がないし、こういう「データ」が主のもので、データ管理とかが実際どうなっているのかもよくわからないソフトウェアに金を払いたいと思わない。
なので、自分に必要最低限の機能を実装しようと、SignalReports というロギングツールを自分で書いて使ってる。ローカルで動くウェブアプリの形式にした。
機能的には大変シンプルでただとにかく記録していくだけの機能がついてる。あえて「機能」と呼べるようなものはコールサインを入れると地域を表示したりするぐらい。この程度でも別に困ってない。QSL カードを発行する人は印刷機能とかいるんだろうけど、当面発行する予定もないのでこれでいい。
データのもちかた
データは単に SQLite の DB に入れるようにしてる。プロジェクトディレクトリをまるごと Dropbox に入れているので、DB ファイルも Dropbox 上でバックアップ・履歴管理される。
交信ログ公開の仕組み
Dropbox 上に DB ファイルが置いてあるので、Dropbox の API でその DB をダウンロードして、Perl で適当に HTML にして static に吐いている。特に変なことはしていなくて、あとは cron に登録してある。
MicroVert アンテナの設計ツール
なんかエクセルで計算できるのがでまわっているっぽいのだけれど、HTML で計算したいので JavaScript で書きなおした。
自分で書いたら欲しい機能増やせるし便利。特に、計算したパラメータから、必要な材料の長さを出したりしたかったので canvas で全体像をレンダリングしている。
コイルも密巻きの場合を簡単に求められるようにしたりした。ただ、細長いコイルはQ値がさがってよくないらしいので低い周波数では調整する必要があるのかもしれない。でもそれでどの程度効率が変わるのかがわからない。
7MHz MicroVert アンテナを制作
φ25mm φ22mm のアルミパイプそれぞれを 1m ずつ買ってきて作った。設計上は 1m + 0.85m で 15cm ほど重ねるイメージ。
コイルを設計通りに巻くのがかなり難しく、はじまりとおわりの処理の仕方がよくわからなくて、これはうまくできたとは言い難い。
7MHz だとカウンターポイズが 8.3m 必要だけど、なんとなく買っておいた 10m の 5D-2V があったので頑張って計って切った。コアは 50MHz 用のコブラアンテナを試作したときのを流用した (12ターン 3D-2V がW1JR巻きで FT240 #44 に巻いてある)
ちなみに、設置ロケーションは給電点地上高 2m 程度で、建物からは 30cm 程度しか離すことができないので全く SWR が落ちないような予感がしていた。やってみなければわからない、と自分を励ましつつやったが、案の定全く下がらなかった。
複素インピーダンスを広域で一覧するとだいぶ下 (6.8MHzヘルツぐらい) に同調しているような感じだったのでエレメントを短くしてみたりしたが、なかなかうまくいかず。
カウンターポイズのはわせかたを変えたり、エレメントの長さを変えたりいろいろ試行錯誤しまくったあげく、7MHz 付近でエレメントは共振しているようだが SWR は下がらない (リアクタンスがないけどインピーダンスの実数が低すぎる)、という状態になったので、カウンターポイズを動かし、ようやく 1.5 程度まで下がった。
インピーダンスが低めに出ていたので、カウンターポイズをできるだけエレメントから離すように置いたら効果があった。
エレメントの長さによっては、特定の周波数 (だいたい6.8MHzぐらい) で SWR が 1.0 程度になったりした一方、7MHz 以上では SWR が下がりきらなかった。たぶんコイルの巻きすぎ?だと思うが、ほどくのが大変面倒なので、一度コイルには手をつけずエレメントだけで調整し、7.000〜7.200MHz、すなわち 7MHz 帯全域で SWR 2.0 以下にできた。最低 SWR 点が 1.5 程度なのがちょっと微妙だけど、とりあえず気にしない。
しかしその後一旦コイルの固定やらで取り外すことにしたので、コイルも1ターン巻き戻して再調整したところ、7.0MHz 付近で SWR 1.1〜1.2 ぐらいまで落とすことができた。もう1ターン戻してもよかったかもしれないが、メインで運用しているのはバンド下限あたりなのでこれでよさそう。
帯域が広いのは事前情報で知ってはいたけど、なんとなく信じていなかったので、設計時に 7MHz をターゲットにしたのがよくなかった。今回の場合 7.1MHz ぐらいをターゲットにして作る (計算上はコイルが1ターン減るだけ) と丁度よかったかもしれない。
制作上思ったこと
- できれば調整部分は手の届く範囲にすべき
- 1段目を短めにしたほうが調整しやすい (70cmぐらい?)
- LCR メータがあったほうがいい (自分は持っていないのでコイルのインダクタンスがどんなものなのか、計算でしか求められない。アナライザーでも一応測れるけど結構ナイーブで値が信用しにくい)
- アナライザーなしでは調整が困難
- カウンターポイズを使うアンテナでは必須だと思った
- マストと固定するため、塩ビパイプのコイルから下側は長めにしたほうがいい
使用感
UHV-6 という 2m 程度の短縮マルチバンドアンテナとの比較しかできないが、今のところ感じるのは以下の通り
- 信号は UHV-6 と同じか、それより弱く聴こえる
- SN は UHV-6 より少しよく感じる
- 特に、7.01MHz 未満では、UHV-6 はなぜかノイズが常時ひどくで聴こえなかったのが、MV で聴こえるようになった。設置位置の関係かもしれない
- とにかく帯域が広くて 7MHz ならどこにでも出れる。UHV-6 はチューナーなしだと 7.00 から 7.025 ぐらいまでしか出れないので、嬉しい感じ。
ベランダのスペースの関係上、UHV-6 と今回作った MicroVert アンテナは開けている方角が違うので、相手局の位置によって変わりそう。もうすこし耳が良いのを期待したけど、それに関しては少し期待はずれだった。短いアンテナなので、結局その点に関しては短縮ホイップと同じなのかもしれない。
YAPC::Asia 2013
まずやはり終わって思うのは、LTとしてすら発表しなかったのが反省だな〜 と思った。「今年 Perl 関係でおもしろいことしてないし……」と思って応募できなかったけど、わりとみんな Perl 関係ないこと話してるので、堂々と JS の話すればよかったと後悔。他人が話しているのを見ると話したくなる。というか Teng の話があったな!と会期中に思いだした。
結構毎年顔ぶれが変わっているのか、オープニングで今年初めて参加した人として手を上げた数が想像よりもずっと多いことに驚いた。なんとなく印象としては普段 Perl を書きまくっている人というよりは、他のコミュニティの人が Perl 文化を見にきてる感じがした。
HTML5 Web Audio でモールスを解読する
というのをちょっと前に作ったけど日記に書いていなかった。
デモ (音アリじゃないとよくわからない):
- 音ナシ: http://lowreal.net/2013/Morse/decoder.html#dummy
- 音アリ: http://lowreal.net/2013/Morse/decoder.html#dummy-output
デフォルトだと、信号がありそうなところを適当に追跡してデコードする。上のスペクトラムをクリックで、その周辺の周波数領域のデコードだけをするようになる。一度に1つのデコーダーだけが動く。
何もハッシュをつけない場合マイク入力からになる。あと Chrome でしか見てない。
Web Audio で信号処理
Web Audio を使って、マイク入力を信号処理しようと思うといくつか躓くところがあった。
- サンプリング周波数を指定できない
- AnalyserNode を任意のサンプリングタイミングで呼ぶことができない?
- あとサンプリング周波数が指定できないので分解能に限界がある
モールスのデコードに高いサンプリング周波数は必要ない。しかしサンプリング周波数は Web Audio 側で固定になっているので、自力でダウンサンプリングしている。これは ScriptProcessorNode の onaudioprocess を使い、Float32Array にリングバッファ状に落としこんでる。なんかもっといい方法ありそうだけど、わからなかった。
まだ onaudioprocess の挙動が不安定で、データがこなくなったりすることがある。毎回 onaudioprocess に対してコールバックを代入しなおしたりいろいろやったけど、最近直ったような気がしないでもない。
FFT も AnalyserNode のを使うのではなく、このダウンサンプリングした信号に対し、JS レベルで実行してる。これは dsp.js を使ってる。
モールスデコード部
それなりに工夫して作った。最初のころ Description of RSCW's algorithms というのを見つけてよく読んでみたけどよくわからないことも多くて、僕でも実装できる程度に落としこんで結局以下のようになってる。
- 適当にデコードしたい周波数を決める
- 直近で信号強度が強い周波数
- または手動 (スペクトラムをクリック)
- その周波数に対し、2位相ロックインアンプ相当の処理をする
- 本当に単純にその周波数の矩形波を90°ずらして合成してローパスフィルタにかけて、、というのをナイーブにやってる
- 適当に閾値を決めて2値化する (むずかしい……)
- ここまでで 0/1 になる
- 0 の連続または 1 の連続のうち、最小の長さを見つける (モールスの符号単位)
- 符号単位の2倍以上なら長点、そうでなければ短点として表から符号をデコードする
デモのようなホワイトノイズ + それなりの強さの信号でかつ、機械的に綺麗な符号なら、結構いい感じにデコードできるけど、実際の交信だと思ったより厳しい。
- SN比がもっと悪い。フェージングで信号強度がよく変化する
- 符号が綺麗なことが少ない
なので、なんらかの統計的な、機械学習のような要素を入れこんで (隠れマルコフモデルとか?) やりたいけど、そのような技術力がない。あと、別に全域常時 FFT して全チャンネル同時デコードとかも、ギジュツリョクがあればできるだろうけど、できてない。
✖
ほんと明らかに何もかもに対して度胸というか自信が足りていなくて、どうしようもない。
最近のモールス訓練
23wpm で文字+数字、数字だけ、文字だけ、をそれぞれ90%なんとかとったので24wpmでやりはじめてる。20wpmだと完全ランダムでだいたい90%前後がとれるようになったけど、普通文だとそれほどとれないので辛い。十分単語に慣れた人なら普通文のほうがとれるみたいだけど、単語に慣れていない場合、普通文のほうが短い符号の文字が多いので頭が追いつかない。
これが、実際に交信になると、テンパってしまって速度が遅くてもほぼ聴き覚えがある符号しかとれなくなる。599BK 式で、余計な符号がほぼ入らなければなんとか交信できる。CQ を出して、呼んでもらう場合、18〜20wpm なら2回コールしてもらえばとれる感じ…… CQ を出している局は 22〜30wpm あることが多いので4回〜6回聴かないと確定できない……
599BK で CQ を出している局を呼ぶか、自分で CQ を出して 599BK に付きあってもらうか、どっちもメリットデメリットがあってつらい。
CQ 出している局を呼ぶ場合
大抵、599BK でやっている局は JCC サービスなので、パイルになってることが多い。この場合、こちらからの電波が相手に十分届いているか、ある程度パイルが捌けるまでわからないので、非常に効率が悪い。
コールサイン、JCC などまで聴きとった状態で呼ぶので、ほぼ聴きとる必要がなくて気は楽だけど、何か想定外のことを打たれた場合、速度が早くて返せないので、その点で緊張する。
自分で CQ を出す場合
まず第一に、相手にメリットがほぼない (こちらのロケーションは政令指定都市なので別に珍しくもないし)。なおかつ、18wpm 程度で CQ を出すと、相手はラバースタンプ程度の長さを期待する (と思われる) ので、599BK で終わらせると偲びない。
ちょっとやった感じだと、相手の QTH が JCC/JCG で送られる場合、案外聴きとれるけど、それ以上に何か送られるとつらい。なのでだんだん申し分けない心持ちになってくる。
今後の予定
とにかく結構辛いんだけど、CQ 出している局を呼んで、自分のコールサインが呼ばれたとき結構嬉しいのがいい。電波届いたのも嬉しいし、「あっおれだ」っていうのが分かるのも嬉しい。
訓練は続けつつ、599BK であっても CQ を出すのに慣れるのがいいかなあとは思ってる…… けどほんとメンタルが弱すぎて聞きとれるものも聞きとれない。メンタルを強くする方法はわからないので、とにかく聞きまくって慣れるしかないかなと思う。それまで続けられるか心配。
ログ管理ツール
交信履歴をつけるツールにいろいろ機能をつけてる。
(というかそもそも記録するという一番大事な部分にバグがあって一部の交信が消えた感じがするけど、ようやく直ったような……)
コールサイン地域補完
コールサインのプリフィックスを入力した時点で、どのあたりの地域の人かわかるように。日本の局の場合エリアまで出すようにしてるので便利。慣れてる人は覚えているからこんなのいらなそう。
これは typeahead.js で実装してある。
JCC 補完
国内の場合、だいたいの人が JCC/JCG を送っているので、それを補完してどこかわかるようにした。JARL が提供してる .txt (クソフォーマット) をパースして JSON にしてる。取得時にソートしてインデックスを作ってるのでJS側はかなり簡単。
これは jQuery.textcomplete で実装してる。いろいろ補完できそうで夢が広がる。
バンドごとの印象
CW 以外殆ど聞いてない。アパマンハムはやはり厳しいなあという感じ。聞こえてこないぶん、卑屈になる。
7MHz
深夜以外はだいたい聞こえる。
深夜はDXが聞こえるらしいんだけど、うちのような2m程度のアンテナの環境だと殆ど聞こえない。たまに韓国の局が聞こえてくるけど、あちらはかなりパワー入れてるみたいで、こちらから呼んでもとってくれない感じ (実際 JA の局が呼んでるけど、向こうは一切反応なし、というのを何度か見た)。
その他のDXは聞こえたことがない。
18MHz
太陽が昇ってる時間だとときどき DX が聞こえる。一方日本の局はあんまり聞こえない。バンド狭いのでちょくちょくコンディションが良さそうなときに聞いてるけど、あんまり聞こえてこない……
ビーコンも殆ど聞こえない。中国のビーコン100Wがかすかに聞こえたことがあるかな〜 程度。せめてビーコンがちゃんと聞こえるぐらいのアンテナを張りたい……
21MHz
クラスタを見てて 21MHz が多いな〜 と思ったら見る程度で、こっちも昼間たまに DX が聞こえてくる。けど基本殆ど聞こえない。結構バンド広くて、なおかつ慣習がいまいちよくわからないので、どのへんを聞いたらいいのかわからず。
こちらもビーコンがあるけど聞こえてこない。
28MHz
聞こえたことがない。バンドが広いので探すのも大変。
どこを重視すべきか
まだわからない。7MHz は賑やかなので今でもそれなりに聞いてて楽しい。ただ、夜になると全く聞こえなくてつまらない。
18MHz, 21MHz は、うちのようなショボい設備でも DX のチャンスが多そうかもしれない。もっとずっと聞いててもいいかもしれないけど、基本何も聞こえてこないので面倒くさい。アンテナが7MHzに比べたら短いので、モノバンド短縮アンテナを作ってみたら今より良くなるかもしれないし、いずれやってみたい。
まだ聞いたことがないバンド、特にローバンドの1.9MHz, 3.5MHzも聞いてみたい。マイクロバートアンテナなら効率はともかく一応送信もできるのが作って設置できそう。3.5MHz は夜・冬に使えるバンドみたいなので、次 7MHz のアンテナと交換する形で作ってみる。
ベランダなのであんまりいっぱいアンテナを設置すると怪しすぎるので避けたい。4本程度が本当に限度だと思う。なのでマルチバンドホイップ (UHV-6) は大変便利に使ってるし、割と性能もいい感じで気に入ってる。
うちのベランダは本当に狭くて、横方向にも3mぐらいしかないので、ダイポールを上げるのはどんな手を使っても不可能。しばらくは長さに自由度があるマイクロバートアンテナをバンド別に何度も作ってみたい。