【OFDM】AWGN 信道下 BPSK 调制 (卷积码) 性能对比仿真实验 (Matlab 实现)
一、实验目的
实现 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 实现)相关推荐
- mASK调制在AWGN信道下的可达信息速率的Monte Carlo仿真计算法
本文探究mASK调制在AWGN信道下的可达信息速率用Monte Carlo仿真计算的方法.参考我的上一篇博文<mASK 调制在AWGN信道下的可达信息速率的积分计算>,解决的方法相同,只是 ...
- 最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算
最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算_u011852612的博客-CSDN博客
- AWGN信道下的香农限
香农限的概念 香农定义的信道容量为信道的输入信息X与信道的输出信息Y之间的最大互信息熵,即 对于信道带宽为B,信号功率为Ps ,噪声功率PN 的AWGN信道来说,其信道容量可做如下表示, 而香农限则是 ...
- 基于matlab的qpsk与bpsk信号性能比较仿真,基于matlab的QPSK与BPSK信号性能比较仿真.doc...
基于matlab的QPSK与BPSK信号性能比较仿真.doc 2装订线目 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍22.2QPSK信号的调制原理32.2.1QPSK ...
- php下curl与file_get_contents性能对比
为什么80%的码农都做不了架构师?>>> 上一篇讲了 <php使用curl替代file_get_contents>, 后续贴出了curl和file_get_cont ...
- AWGN信道下卷积编码、viterbe译码、分别采用软硬判决,进行误码率分析
一.卷积编码 仿真 (硬判决译码 误码率和理论值比较) 已知卷积码生成函数: 可知码率为1/3,相应的抽头系数为(557 663 711)的卷积码.编写程序,采用卷积编码.维特比译码(硬判决),BPS ...
- 【均衡器】LS均衡器,DEF均衡器以及LMMSE均衡器的误码率性能对比仿真
1.软件版本 matlab2017b 2.系统概述 clc; clear all; close all; warning off; addpath 'func\' rng(1)N = 300000;% ...
- 多目标优化算法:MOFPA、MOFA、MOCS、MOBA、MOHHO五种多目标优化算法性能对比(提供MATLAB源码)
多目标花朵授粉算法(MOFPA) 多目标萤火虫算法(MOFA) 多目标布谷鸟搜索算法(MOCS) 多目标蝙蝠优化算法(MOBA) 多目标哈里斯鹰优化算法(MOHHO) 参考文献: 将MOFPA.MOF ...
- matlab 通讯系统设计与仿真,基于BPSK通信系统的设计与仿真
基于BPSK通信系统的设计与仿真 一.BPSK信号调制原理 1.1 系统原理 file:///C:\Users\ADMINI~1.KGH\AppData\Local\Temp\ksohtml\wps ...
- iLogtail 与Filebeat 性能对比
简介:前段时间, iLogtail 阿里千万实例可观测采集器开源,其中介绍了iLogtail采集性能可以达到单核100MB/s,相比开源采集Agent有5-10倍性能优势.很多小伙伴好奇iLogtai ...
最新文章
- 硬件Pythia:将现实世界桥接到区块链
- CMMI/CMM组织的角色设置与行政角色设置的问题.
- C语言如何依次读取字符,C中的字符串,如何获取subString
- 栗子——自定义EditText实现右下角计数控件
- 一看就明白的超标量超流水线超线程简介
- 莫烦Python机器学习
- 数据库基础知识七:同义词
- java实现fp-growth算法
- python查询水果价格_C语言查询水果价格
- 人人网、7K7K、178等各网站迅雷地址。最新得到的各种URL。
- 电容击穿之后是开路还是短路?
- java坦克大战案例_JAVA实现经典坦克大战源代码
- 富文本编辑器mavon-editor文章回显
- 计算机一直重启故障原因可能是,电脑一直自己重启的原因与修复方法大全
- 2D骨骼动画工具DragonBones的使用教程
- 机器学习数学原理(1)——极大似然估计法
- 台湾半导体制造商台积电市值首次超越英特尔
- python笑傲江湖统计字数_python编程题----字符串的处理(统计)
- 上门预约程序公众号模块 完美版
- 每天学一个 Linux 命令(14):cat