創立14周年のご挨拶

拝啓

処暑の候、皆様におかれましては益々ご健勝のこととお慶び申し上げます。

本日8月20日をもちまして、株式会社ビットマイスターは創立14周年を迎えることができました。これもひとえに皆様のご支援の賜物と心より感謝いたします。

第14期は、COVID-19の影響により展示会等の成果発表イベントが軒並み中止となったことに加え、主要顧客である研究機関様が行う大規模な屋外実験も規模縮小に見舞われたことから、弊社が提供する研究開発支援サービスも少なからず影響を受けました。

関連した支援サービスのソフトウェア開発は減少しましたが、空いたリソースを自社プロダクトである「デジタルサイネージ型防災情報提供システム」の機能向上に割り当てたり、通常時は業務の合間に習得していた業務関連のトレンド技術や、新しい開発言語・開発環境ノウハウに関して、まとまった時間を使った学びの機会を全社的に設けるなど、将来の案件に向けた活動を積極的に実施しました。

また感染対策としてリモート開発環境を整備し、全社員フルリモートでの業務継続を実現しております。

依然として先行き不透明な状況ではありますが、今春以降、大学様をはじめとしてリピータのお客様からの相談が再び増えて参りました。

第15期は、従来の研究開発支援サービスを確実に提供するとともに、習得した知識を活かし、改めて“新たな技術領域への挑戦”、“新たな顧客の開拓”、“新たなサービス形態の創造”に取り組んでまいります。お客様の事業がより良い方向に向かうために弊社の提供するソフトウェアが少しでもお役にたてるよう、社員一同、引き続き技術とサービスの向上に努めてまいります。

今後ともお引き立てのほどよろしくお願いいたします。

敬具

令和3年8月20日
株式会社ビットマイスター
代表取締役 笠原 勉

緊急警報放送を復調する

緊急警報放送は災害時にラジオなどの受信装置を自動起動するための信号です。このブログに辿り着いている時点で、そんなことは知ってるわいって感じですかね。でも一応書いておかないことには記事として成立しないので書きます。

EWSは災害時にラジオやテレビ放送で聞くことがある、あの不穏なピロピロ音です。全く一般には普及していませんが、あれにはデジタル信号が含まれていて、それを検知すると自動起動する機能があるラジオなどがあります。どうやっているかというと、デジタル信号の0と1をそれぞれ640Hzと1024Hzの音に置き換えて表現します。これを変調といい、とくに0と1のデジタル信号を2つの周波数の変化に置き換える方式をBFSK(Binary Frequency Shift Keying, 二値周波数偏移変調)といいます。この切替を1秒間に64回行うので変調レートは64Bd(ボー)で、1回の変調で1ビットを送りますから転送レートは64bpsです。

さて、アルゴリズムについてですが、音声周波数の変化をどうやってを0と1に戻すのかというと、たとえば640Hzの波は言い換えれば1/640秒に1周期の波なので、振幅軸上の特定のポイントを通過する時間間隔を測定して1/640秒と一致すれば640Hzの波だと判断できるわけです。ちなみに64Bdなので1変調の1/64秒あたりの640Hzなら10周期、1024Hzなら16周期です(取りこぼしもあるので、何回この周期を検知したら信号とみなすかは調整が必要です)。さいごに640Hzを検出したら0、1024Hzを検出したら1に置き換えればデジタル信号になります。

ソースはこちら。
https://github.com/nbtk/EWSDemodulator

Raspberry Pi 4とUSBオーディオアダプタで動作確認しました。

アップストリーム版のMPTCPを試してみた

従来、LinuxでMPTCPを利用する場合「Linux Kernel MultiPath TCP project」が公開しているLinuxカーネルを使う必要がありましたが、アップストリームのLinuxカーネル 5.6以降でMPTCPが利用可能になりました。

現在、MPTCPの仕様は「RFC6824」で規定された”MPTCP v0″と「RFC8684」で規定された”MPTCP v1″の2つのバージョンが存在します。従来版は”MPTCP v0″にのみ、アップストリーム版は”MPTCP v1″のみに対応しており、”MPTCP v1″は後方互換性を持たないので、現時点では従来版とアップストリーム版でMPTCP通信を行うことができません。

従来版および”MPTCP v0″については、本ブログでも過去に以下の投稿しています。

今回は、Ubuntuでアップストリーム版を使った複数サブフローでのMPTCP通信を試してみました。
 
 

Continue reading →