首页 > 其他分享 >m在simulink进行DS-CDMA建模,然后通过MATLAB调用simulink模型进行误码率仿真

m在simulink进行DS-CDMA建模,然后通过MATLAB调用simulink模型进行误码率仿真

时间:2023-01-12 20:24:36浏览次数:42  
标签:误码率 simulink ErrorVec Rayleigh 模型 EbN0 信道 MATLAB Ber

1.算法描述

       研究信道编码在噪声和衰落信道条件下传输和保护数据或图像类型源的性能。在工作于AWGN和瑞利衰落信道(可根据需要选择信道类型)的Simulink中创建二进制PSK(BPSK)和信道编码通信系统模型。图像文件或随机数据作为源。在通信块集/错误检测和校正中可以找到不同的信道编码方案。选择您将在调查中使用的编码方案。通过设置每个块的所需值来配置模型,以研究和比较不同编码和非编码系统之间的性能和要求。从未编码系统开始,以获得基线结果。获得所选代码的结果,并讨论误码性能、功率和带宽要求以及复杂性之间的权衡。使用“误码率计算”来获得误码率结果。您可以使用“BER工具”绘制结果并便于比较(也可以与可用的理论值进行比较)。BER结果应根据Eb/No绘制。可根据需要使用其他信号监测工具,如时间范围、散点图、频谱范围等。

 

Simulink模型设置:

 

将构建六个仿真模型:

 

•具有AWGN信道的非编码系统模型;

 

•具有瑞利衰落信道的非编码系统模型;

 

•具有AWGN信道的汉明编码系统模型;

 

•具有瑞利衰落信道的汉明编码系统模型;

 

•AWGN信道卷积编码系统模型;

 

•瑞利衰落信道下卷积编码系统模型;

 

其中每一个都可以用以下框图表示:

 

 

2.仿真效果预览

matlab2013b仿真结果如下:

 

3.MATLAB部分代码预览

 

EbN0 = 0:1:15;
 
for i = 1:length(EbN0)
    i
    EbNo = EbN0(i);
    sim('Nocoder_Rayleigh.mdl');
    Ber_Nocoder_Rayleigh(i) = ErrorVec(1);
    clear ErrorVec
    
    sim('Bch_Rayleigh.mdl');
    Ber_bch_Rayleigh(i) = ErrorVec(1);
    clear ErrorVec       
    
    sim('hamming_Rayleigh.mdl');
    Ber_hamming_Rayleigh(i) = ErrorVec(1);
    clear ErrorVec    
 
    sim('CC_Rayleigh.mdl');
    Ber_CC_Rayleigh(i) = ErrorVec(1);
    clear ErrorVec     
end
 
figure;
semilogy(EbN0,Ber_bch_Rayleigh,'m-s');
hold on;
semilogy(EbN0,Ber_Nocoder_Rayleigh,'b-o');
hold on;
semilogy(EbN0,Ber_hamming_Rayleigh,'r-*');
hold on;
semilogy(EbN0,Ber_CC_Rayleigh,'k-^');
hold off;
grid on;
legend('Nocoder','hamming','Convolutional ');
xlabel('EbN0');
ylabel('Ber Rate');
save r2.mat EbN0 Ber_Nocoder_Rayleigh Ber_hamming_Rayleigh Ber_CC_Rayleigh Ber_bch_Rayleigh
01_069_m

 

  

 

标签:误码率,simulink,ErrorVec,Rayleigh,模型,EbN0,信道,MATLAB,Ber
From: https://www.cnblogs.com/51matlab/p/17047822.html

相关文章