基于COPE协议的RLNCBR算法的matlab仿真

217 篇文章 52 订阅
67 篇文章 16 订阅

1.问题描述:

COPE协议、RLNCBR算法功能实现

1)接收节点数N变化,各节点丢包率P1=P2=…=Pn=0.08,节点数从2变化到10,增量为1,重传时间间隔为100Δt,作出平均传输次数随接收节点数变化的曲线图

2)P1=P2=…=Pn且变化,从0.02变化到0.10,增量为0.02,接收节点数N=5,重传时间间隔为100Δt,作出平均传输次数随节点丢包率变化的曲线图

3)各节点丢包率均不等且变化,接收节点数N=5,重传时间间隔为100Δt,P1从0.01变化到0.06,增量为0.01,P2=P1+0.01,P3=P1+0.02,P4=P1+0.03,P5=P1+0.04,作出平均传输次数随节点丢包率变化的曲线图

2.部分程序:

 

clc;
clear;
close all;
warning off;
addpath 'func\'

figure;

M     = [2:1:10];
Avg_T = zeros(1,length(M));
N     = 7;%数据包长度
%定义重传次数,如果超过这个次数,则表示传输彻底失败
k     = 5;
for i = 1:length(M);
    i
    %各节点丢包率
    P = 0.2*ones(1,M(i)); 
    %计算重传概率
    tmps1 = 1;
    tmps2 = 1;
    for j = 1:M(i)
        Ps1 = zeros(1,k+1);
        for n = 1:k+1
            Ps1(n) = func_P(N,n,P(j));
        end
        if j == 1
           tmps1 = sum(Ps1);
        else
           tmps1 = tmps1*sum(Ps1);
        end
    end
  
    for j = 1:M(i)
        Ps2 = zeros(1,k);
        for n = 1:k
            Ps2(n) = func_P(N,n,P(j));
        end
        if j == 1
           tmps2 = sum(Ps2);
        else
           tmps2 = tmps2*sum(Ps2);
        end
    end 
   
    %平均传输次数
    Avg_T(i) = 1 + (tmps1 - tmps2)/N;
end
plot(M,Avg_T,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',5);
grid on;
legend('RLNCBR');
xlabel('接收节点个数N');
ylabel('平均传输次数');
 
save r1.mat M Avg_T

3.仿真结论:

A-12-13

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值