Python用の変復調プログラム
- BPSK, QPSK, QAM対応(すべてグレイ符号)
- 複素モデル,実数等価モデルどちらにも対応
- Python 3.10+(動作確認: Python 3.13.5)
- NumPy
pip install git+https://github.com/Ichihashi0317/MIMO_GrayCode_Modulation_py.git補足:
- ソースコードをそのまま自分のプロジェクトへコピーして使うことも可能.
import MIMO_GrayCode_Modulation as mgm
Q_ant = 2 # 2: BPSK, 4: QPSK, 16: 16QAM, 64: 64QAM, ...
mod = mgm.Modulator(Q_ant, complex=True)-
Q_ant: 1 アンテナあたりの多値数.$2$ または$4^n$ ($n$ は任意の自然数) で指定可能. -
complex:-
True: 複素モデル(規定値) -
False: 実数等価モデル
-
bits = mod.gen_bits(M, K)入力:
M: アンテナ本数.任意の自然数で指定可能.K: 1 フレーム中の送信ベクトル数.任意の自然数で指定可能.
出力:
bits: 乱数生成された,変調入力用ビット列の2次元配列1.shape=(log2(Q_ant) * M, K).
syms = mod.modulate(bits)入力:
bits: 送信ビットの2次元配列.1送信ベクトルに対応するビット列を列ベクトルとして含む.shape=(log2(Q_ant) * M, K).1
出力:
syms: 送信行列.送信ベクトルを列ベクトルとして含む.complex=Trueのときshape=(M, K),complex=Falseのときshape=(2M, K).シンボルマッピングは平均電力が 1 になるように正規化される.
bits = mod.demodulate(syms)入力:
syms: 受信行列.送信行列と同じサイズ.
出力:
bits: 受信ビットの2次元配列.各アンテナの実部・虚部単位で硬判定される.送信ビット配列と同じサイズ.