2019年4月18日木曜日

バーカーコード

 バーカーコードを総当たりで探してみた。



 横軸がコード長、縦軸がサイドローブ(dB)。

 最良でサイドローブは1/Nになる。それより1段性能が劣化すると、2/Nになる(6dB悪化する)。
 例えば、コード長13の場合はサイドローブが-22.3dBになる。これはウィキペの値と同じ。他の点、例えばN=23の場合は、およそ-27.2dBになる。
 もっとも、全組み合わせにおいてその性能が出ないコード長もあり、それがN=8だったり9だったり、12だったり。
 ざっと見る感じ、コード長が偶数の場合は1/Nは達成できず、2/Nの場合が多い。コード長が奇数であれば1/Nを達成できる可能性が高い、という感じか?


 上のグラフは最良でどこまでサイドローブが下がるかを見るのが目的だったので、全コードを総当たりしたが、N=27あたりになると凄まじい時間がかかる(プログラムを最適化していないのも理由だが)。
 前述の通り、サイドローブは最良で1/Nになるので、任意長のコードを探す場合、シフト量1から初めて、所定のサイドローブを達成できなかった場合はその時点でそのコードを破棄する、というふうな処理を行えば、多少は改善されるはず。
 またDCレベルだったり、AC結合の都合もあるので、コードの組み合わせもある程度制限を受ける。そういうのを予め除去しておけば、コードの判定は、多少は高速化できるはず。

 まぁ、拡散符号は最近だとありとあらゆる場所で使われてるから、探せばいろいろノウハウは出てきそうではある。

0 件のコメント:

コメントを投稿