1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWTlp5t
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在数字通信系统中, 数字通信系统及其相关部分必须满足误码率的最低规 范要求。误码率是一个非常重要的指标,它衡量着系统性能的好坏,因此在数 字通信领域中经常会遇到误码率的测试问题。误码率[是二进制比特流经过系 统传输后发生差错的概率,其测量方法[ 68]从系统的输入端输入某种预定形式的 比特流,检测其输出,并与输入码流比较即可检测出发生差错的位e,位数e和 已传输的总位数n之比为误码率.
4.部分源码
..........................................................................
k = 5;
n = 7;
Step = 20;%仿真时间间隔
Simu_Len = 1000*k; %仿真的时间长度
Simu_time = 2000;
Pf = 1e-3 : (10e-3-1e-3)/Step : 10e-3-(10e-3-1e-3)/Step; %信道差错概率
Simu_speed = 3*10^10/Step : 3*10^10/Step : 3*10^10;
msg = (double(rand(1,Simu_Len)>0.5))';
Rs_Encoder = fec.rsenc(n,k);
Rs_Decoder = fec.rsdec(Rs_Encoder);
%% 主体代码
for i = 1:length(Pf)
Err = zeros(1,Simu_time);
for j = 1:Simu_time
i
j
%编码
Msg_Enc = encode(Rs_Encoder,msg);
Msg_Enc2 = Msg_Enc;
%将数据通过信道
idx = round(length(Msg_Enc)*Pf(i));
idx2 = round(length(Msg_Enc)*rand(1,idx));
idx2(find(idx2 == 0)) = 1;
Msg_Enc2(idx2) = floor(rand(1,1)*Msg_Enc(idx2));%设置出错值
%译码
[Msg_Dec,cnumerr,ccode] = decode(Rs_Decoder,Msg_Enc2);
%计算误码率
Err(j) = biterr(Msg_Dec,msg);
end
Err2(i) = sum(Err)/(Simu_time*Simu_Len);
end
%% 曲线仿真
figure;
semilogy(Pf,Err2,'b-*');
xlabel('channel error rate');
ylabel('BER');
%% 3D图
figure;
[X,Y] = meshgrid(Simu_speed,Pf);
Error = [Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' Err2' ];
mesh(X,Y,Error);
xlabel('信道差错概率');
ylabel('仿真速度');
zlabel('误码率');
14_009_m