概述
一、实验目的
实现 BPSK 调制在 AWGN 信道下分别使用卷积码和不使用卷积码的性能仿真,并绘制信噪比-误比特率曲线进行对比分析。其中,卷积码的约束长度为 7,生成多项式为 [133,171],码率为 1/2;译码分别使用硬判决/软判决维特比译码。
二、仿真实验
clear all; clc;
EbNo=0:10; % SNR的范围
N=1000000; % 消息比特数
M=2; % 调制阶数(BPSK调制)
L=7; % 约束长度
trel=poly2trellis(L,[133,171]); % 卷积码生成多项式
tblen=6*L; % Viterbi译码器回溯深度
msg=randint([0,1],1,N); % 产生随机消息比特序列
msg1=convenc(msg,trel); % 1/2卷积编码
x1=pskmod(msg1,M); % BPSK调制
for snr = 1:length(EbNo)
% 加入AWGN,因为码率为1/2,故每个符号能量比比特能量少3dB
y=awgn(x1,EbNo(snr)-3);
y1=pskdemod(y,M); % 硬判决
y1=vitdec(y1,trel,tblen,'cont','hard'); % Veterbi译码
[err,ber1(snr)]=biterr(y1(tblen+1:end),msg(1:end-tblen)); % 计算误比特率
y2=vitdec(real(y),trel,tblen,'cont','unquant'); % 软判决
[err,ber2(snr)]=biterr(y2(tblen+1:end),msg(1:end-tblen)); % 计算误比特率
end
ber=berawgn(EbNo,'psk',2,'nodiff'); % 计算未编码BPSK调制误比特率
semilogy(EbNo,ber,'-go',EbNo,ber1,'-r*',EbNo,ber2,'-b+');
legend('未编码BPSK调制误比特率','编码(硬判决译码)误比特率','编码(软判决译码)误比特率')
grid on;
title('卷积码性能对比')
xlabel('Eb/No');ylabel('误比特率')
三、结果分析
随着信噪比的增大,不论有无使用卷积码编码,误比特率都在降低。但以(硬判决)维特比译码为例,对比之下,在大信噪比时(约大于3dB),有经过编码的误比特率较低;而在小信噪比时(约小于3dB),编码后的误比特率反而大于未编码时的误比特率。原因在于:在小信噪比情况下,编码的纠错能力超过了纠错门限以至于纠错码不再纠错,反而造成了更多的错误。
相同情况下,随着信噪比的增大,软判决译码和硬判决译码误比特率都在降低,但前者的误比特率总比后者更低且差别越来越大,即:软判决的纠错能力优于硬判决译码。或者说,在相同误比特率下,软判决译码算法的信噪比相较硬判决译码算法提升2dB左右。原因在于:维特比译码的软判决算法与硬判决算法相比,软判决译码算法的路径度量采用“软距离(常用欧几里德距离)”而非汉明距离。在采用软距离的情况下,路径度量的值为模拟量,需经过一些处理以便于相加和比较。因此,计算复杂度有所提高。除了路径度量以外,软判决算法与硬判决算法在结构和过程上完全相同。然而,由于硬判决译码的判决过程损失了信道信息,其性能是不如软判决译码的。
最后
以上就是无辜小蘑菇为你收集整理的【OFDM】AWGN 信道下 BPSK 调制 (卷积码) 性能对比仿真实验 (Matlab 实现)一、实验目的二、仿真实验 三、结果分析的全部内容,希望文章能够帮你解决【OFDM】AWGN 信道下 BPSK 调制 (卷积码) 性能对比仿真实验 (Matlab 实现)一、实验目的二、仿真实验 三、结果分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复