链路传输速率为64kbps,单向传播时延为15ms。设数据 帧长为3200bit,确认人帧长度为 128bit, 在误帧率p=0.01情 况下,MATLAB编程画出返回n-ARQ和选择重发ARQ的链 路利用率与n的关系并附明及程序源代码
时间: 2024-02-22 15:00:53 浏览: 156
38321-f80_nrMac帧长度_NR_mac_l2_5GNR_
以下是一个简单的MATLAB编程程序,用于绘制返回n-ARQ和选择重发ARQ的链路利用率与n的关系:
```
% 设置参数
link_rate = 64000; % 链路传输速率为64kbps
prop_delay = 0.015; % 单向传播时延为15ms
frame_length = 3200; % 数据帧长为3200bit
ack_length = 128; % 确认人帧长度为128bit
error_rate = 0.01; % 误帧率p=0.01
% 计算传输时间和吞吐量
trans_time = (frame_length + ack_length) / link_rate + 2 * prop_delay; % 传输时间
error_prob = 1 - (1 - error_rate)^(frame_length / 8); % 误码率
% 返回n-ARQ
n = 1:10;
for i = 1:length(n)
p = (1 - (1 - error_prob)^n(i)) * (1 - error_prob)^(n(i) - 1); % 丢包率
eff_rate(i) = (1 - p) * frame_length / trans_time; % 有效传输速率
end
% 选择重发ARQ
for i = 1:length(n)
p = n(i) * error_prob * (1 - error_prob)^(n(i) - 1); % 丢包率
eff_rate2(i) = (1 - p) * frame_length / trans_time; % 有效传输速率
end
% 绘制图形
plot(n, eff_rate, 'b', n, eff_rate2, 'r');
xlabel('n');
ylabel('链路利用率');
legend('返回n-ARQ', '选择重发ARQ');
```
这个程序首先设置了链路的传输速率、单向传播时延、数据帧长、确认人帧长度和误帧率等参数。然后,它计算了数据帧和确认人帧的传输时间,并根据误帧率计算了丢包率和有效传输速率。接着,它使用循环计算了返回n-ARQ和选择重发ARQ的有效传输速率,并将结果分别存储在eff_rate和eff_rate2数组中。最后,它使用plot函数绘制了返回n-ARQ和选择重发ARQ的链路利用率与n的关系图形,并添加了图例。
注意:这个程序只是一个简单的示例,实际场景中可能需要更复杂的算法和模型来计算链路利用率和吞吐量。
阅读全文