数字通信功能包
digcommp的Python项目详细描述
#数字通信 Python3数字通信模拟软件包。
它包括信道编码和不同的信道模型。可以运行模拟 计算不同配置的位/块错误率。
#安装 可以使用pip和命令pip install安装包 数字通信。
或者,您可以克隆gitlab存储库并安装本地副本 使用以下命令:
- git clone https://gitlab.com/klb2/digcommpy.git
- cd digcommpy pip install .
#用法 在examples文件夹中有多个示例文件。
##基本编码/解码示例 使用极轴编码的简单编码示例:
- from digcommpy import messages, encoders
- n, k = 16, 4
- encoder = encoders.PolarEncoder(n, k, “BAWGN”, 0.)
- mess = messages.generate_data(k, number=1000, binary=True) codewords = encoder.encode_messages(mess)
完整的传动链可以模拟如下:
- from digcommpy import messages, encoders, decoders, channels, modulators, metrics
- # Parameters n, k = 16, 4 snr = 5. # dB # Blocks encoder = encoders.PolarEncoder(n, k, “BAWGN”, snr) modulator = modulator.BpskModulator() channel = channels.BawgnChannel(snr, rate=k/n) decoder = decoders.PolarDecoder(n, k, “BAWGN”, snr) # Simulation mess = messages.generate_data(k, number=1000, binary=True) codewords = encoder.encode_messages(mess) channel_input = modulator.modulate_symbols(codewords) channel_output = channel.transmit_data(channel_input) est_mess = decoder.decode_messages(channel_output) ber = metrics.ber(mess, est_mess) print(“The BER is {}”.format(ber))
这可以通过使用 包(正在进行)。
#使用的软件 这个库的某些部分基于不同的开源实现。 极性码编解码是基于matlab实现的 来自Harish Vangala等人。(http://polarcodes.com/)。 一些功能的实现,例如qam调制基于 倍频程通信包(https://octave.sourceforge.io/)。