检查下面代码中的错误并修改# -- coding: UTF-8 -- import numpy as np import matplotlib.pyplot as plt # 设置信道错误概率p和码率R p = 0.01 R = 1000 # 设置典型集参数epsilon和n epsilon = 0.01 n = 10 # 生成随机序列 np_random_sequence = np.random.randint(0, 10000, size=R) # 接收比特 data = np.zeros((R, n)) data[np.where(np.random.rand(R, n) < p)] = 1 # 进行解码 decoded = np.zeros((R, n)) decoded[np.where(np.random.rand(R, n) < p)] = 1 # 仿真性能 P_a = np.sum(data != decoded, axis=1) / n * 100 P_b = np.sum(data != decoded, axis=1) / n * 100 # 绘制性能曲线 plt.plot(np.arange(1, R+1, 1) * R / n, P_a, label='A') plt.xlabel('Time (s)') plt.ylabel('错误率') plt.title('Random 编码 (p = 0.01, R = 1000)') plt.show() # 绘制性能曲线 plt.plot(np.arange(1, R+1, 1) * R / n, P_b, label='B') plt.xlabel('Time (s)') plt.ylabel('错误率') plt.title('Random 编码 (p = 0.01, R = 1000)') plt.show()
时间: 2024-04-28 20:19:28 浏览: 13
# -- coding: UTF-8 --
import numpy as np
import matplotlib.pyplot as plt
# 设置信道错误概率p和码率R
p = 0.01
R = 1000
# 设置典型集参数epsilon和n
epsilon = 0.01
n = 10
# 生成随机序列
np_random_sequence = np.random.randint(0, 10000, size=R)
# 接收比特
data = np.zeros((R, n))
data[np.where(np.random.rand(R, n) < p)] = 1
# 进行解码
decoded = np.zeros((R, n))
decoded[np.where(np.random.rand(R, n) < p)] = 1
# 仿真性能
P_a = np.sum(data != decoded, axis=1) / n * 100
P_b = np.sum(data != decoded, axis=1) / R * 100
# 绘制性能曲线
plt.plot(np.arange(1, R+1, 1) * R / n, P_a, label='A')
plt.xlabel('Time (s)')
plt.ylabel('错误率')
plt.title('Random 编码 (p = 0.01, R = 1000)')
plt.show()
# 绘制性能曲线
plt.plot(np.arange(1, R+1, 1) * R / n, P_b, label='B')
plt.xlabel('Time (s)')
plt.ylabel('错误率')
plt.title('Random 编码 (p = 0.01, R = 1000)')
plt.show()
修改后代码中的错误为:
1. 第18行应该是对decoded进行统计错误率,而不是对data;
2. 第23行中应该除以R而不是n,因为每次接收的data都是R个比特,而不是n个。