TAKのソースはGolomb-Rice系であることが読み取れたが、それ以上が見えない。一旦置くべき。しかし、2の冪数以外のパラメータも抑えているのは良いアイデア。2の冪数以外のパラメータをテーブル引きで高速計算できればよい。パラメータの選択肢が増えるので圧縮率は上がる。
- ただし、線形補間しているのがなんかもったいない。 \(2^3 = 8, 2^4 = 16\) だけど、 \(2^{3.5} \approx 11.3137\) なので、補間値を12としてしまうのはわずかながらずれが出る。
さて、今日からは重要なフィルタ解析に入る。 Pythonでちょちょっとやりたかったが、今だいぶC言語実装と差が出てしまっている。どうするべきか。
- C言語実装成果をPythonに移植してから解析
- 移植の手間
- 解析のしやすさは1番
- C言語実装のままprintfで係数出力して解析
- 手っ取り早さでは1番
- C言語実装が汚れる、デバッグコードが入るのがやだ
- 出力形式を独自で定めなければいけん
今後の結果まとめを考えても、Python移植したほうが良さそう。 というわけで実装整備を兼ねてPython版に着手。
補助関数法にsin関数を入力すると、僅かな演算誤差(演算順序差)で全く違う解が出たり、行列が特異になったりする。。。実際条件数が高いので相当危険。
ノイズに関しては問題なかったが、解析になったら困りそう。実際、実信号はノイズ成分が多すぎるのでなるべく簡単な信号から始めようとしている。