实验3.1 二元对称信道(BSC)仿真
基本信息
-
实验名称:3.1 二元对称信道(BSC)仿真
-
实验类型:设计+验证
-
实验地点:分散
目标
仿真用户指定错误传递概率 p p p 的BSC,分析计算二元DMS产生的消息通过BSC前后的各种相关指标参数。
内容
(注:本实验中只有具体的消息文件作为考察对象,因此研究信息熵在本实验中近似等价于研究平均自信息量。在以下的讨论中,不再明确区分“信息熵”与“平均自信息量”。)
-
编写信道仿真程序。程序API如下:
byteChannel INPUT NOISE OUTPUT INPUT path to the channel input file NOISE path to the channel noise file OUTPUT path to the channel output file
-
INPUT
:按照给定的信源概率分布,利用【实验2.4】所设计的程序byteSource
生成。 -
NOISE
:按照给定的信道错误传递概率,同样利用byteSource
生成。 -
OUTPUT
:将NOISE
“作用”在INPUT
上之后,信道的输出。
【思考】所谓的将
NOISE
“作用”在INPUT
上,实质上是什么数学运算? -
-
仿真:
-
使用
byteSource
程序,生成 3 种不同概率分布下(其中一种是等概率分布),二元DMS分别发出的消息文件X。 -
使用
byteChannel
程序,仿真这些文件通过 3 个不同错误传递概率 p p p 的BSC(其中一种是 p = 0.5 p=0.5 p=0.5),得到输出文件Y。 -
理论计算这 9 种情况下的指标: H ( X ) H(X) H(X)、 H ( Y ) H(Y) H(Y)、 H ( X ∣ Y ) H(X|Y) H(X∣Y)、 H ( Y ∣ X ) H(Y|X) H(Y∣X)、 I ( X ; Y ) I(X;Y) I(X;Y)。
-
通过教师提供的
calcBSCInfo
程序,从实际输入输出文件中计算这 9 种情况下的相应指标。 -
对比以上结果,分析仿真是否成功、误差产生的可能原因。
-
提交
模仿教师提供的calcBSCInfo
压缩包,包含
-
程序源代码:代码文件本身,如
.py
文件。不包含其他文件非源代码文件,如开发工具的工程文件等。 -
可执行程序:
.exe
文件及其正常运行所需的文件,如.dll
等。- 用Python或Java编写的除外。
-
程序使用说明:如运行环境、调用形式、参数的含义等。(实验报告中不需要复述相关内容。)
-
单元测试:测试数据及数据的说明。
- 程序自带单元测试的除外。
-
实验数据:实验数据及数据的说明。
-
实验报告:实验基本信息、目标、原理、步骤等标准内容。