IQ信号からは、ベクトルの絶対値をとることで振幅が得られ、角度を求めることで atan(Q/I) 位相を得られる
その上で得られた位相を微分することで、周波数を求められる。
IQ信号からは、ベクトルの絶対値をとることで振幅が得られ、角度を求めることで atan(Q/I) 位相を得られる
その上で得られた位相を微分することで、周波数を求められる。
JavaScript だと、デコーダだけ、エンコーダだけ、というのはあったり、GF(2^8) オンリーなものはあったりするんだけど、汎用的なのがなくて悲しかった。
Zxing (バーコード読めるアプリ) の実装を見てみたら、読みやすい上で汎用的な実装だったのでリードソロモン部分だけ Java → JavaScript の移植を行った。
https://github.com/cho45/reedsolomon.js
他の目的があって移植してたけど、目的がなかなか達成できないのでとりあえずこれだけ npm にあげた。
久し振りに単純な移植作業をやった。特殊な依存が特になくほぼ計算なので
ぐらいを何も考えずに機械的に行なったい、テストもまるごと Zxing のものをパクって移植した。
(2が底なら?) 任意のガロア域を使えるようになっており、いろんな用途に使えそう。
new GenericGF(primitive, size, b) で作れるが、primitive polynomial (原始多項式) はビットで表現されている。
x^8 + x^5 + x^3 + x^2 + 1 という多項式なら、8 5 3 2 0 bit が立ち 100101101 となる。0ビット目は +1 を表現してる。これは一般的な表現方法らしく、このように表わされた状態を数字として 301 としたり 0x12d としたりするみたいだ。
http://octave-online.net/ で primpoly(6, 'all') とかやれば原始多項式を全部求められる。
あと、JT65 (6bit) は AZTEC_DATA_6 と同じっぽい。
#!/bin/sh
if [ "x$COMMMMMMIT" = "x" ]; then
COMMMMMMIT=1 git commit --allow-empty -m "仕事したぞ!!!"
fi
このファイルを .git/hooks/post-commit として保存します。
#!/bin/sh
if [ "x$COMMMMMMIT" = "x" ]; then
COMMMMMMIT=1 git revert HEAD
COMMMMMMIT=1 git revert HEAD
fi
このファイルを .git/hooks/post-commit として保存します。
結論:自作するメリットはほぼない (金銭的にもない)
先にブログサービス(ASP、すなわち自分でインストールしたりホストしたりしない)の利点を列挙する
一方で欠点は
利点
欠点
自作するメリットはほとんどない。ホスティングに金を払うよりブログサービスに金を払ったほうが気楽である。
もしウェブプログラマなら自作すべきであると常に主張したい。