一、卷积编码 仿真 (硬判决译码 误码率和理论值比较)
已知卷积码生成函数:

可知码率为1/3,相应的抽头系数为(557 663 711)的卷积码。编写程序,采用卷积编码、维特比译码(硬判决),BPSK调制解调,高斯白噪声的条件,仿真得到误码率随着信道信噪比变化的关系,结果如下图所示:


红色曲线为理论值,蓝色曲线为实际值。可以看到,实际的误码率值略高于理论的误码率值,这一点符合实际。这表明需要对解码算法进行改进提升,使误码率进一步逼近理论值。

二、卷积编码 软硬判决 误码率比较
在第一步的基础上,相同条件,采用软判决规则,对比误码率提升,结果如下:

红色曲线为基于硬判决的误码率仿真曲线。蓝色曲线为基于软判决的误码率仿真曲线。从图中可以看出,软判决比硬判决,在性能上有1.8dB(接近2dB)的提升,与理论相符。

三、相关代码

####卷积编码程序

clc;
close all;
clear all;%% 初始参数设定
EbN0=-2:0.5:10;%信噪比范围设定
L=200000;%设定码元个数
data=randi([0,1],1,L);%信息码元生成A = 5; %卷积码生成函数的最高次项系数
bf = 18;%% 信道编码len = 9; % 约束长度,一共到D8,相当于有9个寄存器
treliss=poly2trellis(len,[557 663 711]);%抽头系数(101101111,110110011,111001001)
encode= convenc(data,treliss);% 信道编码%% 信道加噪声 计算j=1;
for S0=-2:0.5:10%开始试验% 计算理论上误码率值Pe=0.5*erfc((10^(0.1*S0))^0.5);Error_Bit_Theory(j)=A*2^bf*Pe^(bf/2);% 信息序列调制-加噪声-解调[codes_bsc,codes]=BPSK_AddNoise(encode,S0);% 硬判决译码decoded1 = vitdec(codes_bsc,treliss,len,'trunc','hard'); Error_Bit_Hard(j)=1-length(find(data==decoded1))/L; %误码率统计%软判决译码[x,qcode]=quantiz(-codes,[-0.875 -0.75,-0.625 -0.5,-0.375 -0.25,-0.125 0,0.125 0.25,0.375 0.5,0.625 0.75 0.875],15:-1:0);%截获码元软判决量化decoded2=vitdec(qcode,treliss,len,'trunc','soft',4);Error_Bit_Soft(j)=1-length(find(data==decoded2))/L;%误码率统计j=j+1;
end%% 画图对比性能提升
figure
semilogy(EbN0,Error_Bit_Hard,'-ob','linewidth',1.5);hold on;
semilogy(EbN0,Error_Bit_Theory,'-*r','linewidth',1.5);
legend('CC(557 663 711)','CC(557 663 711)-Theory');
grid on;
ylabel('BER');
xlabel('Eb/N0(dB)');
title('The Relationship Between BER and Eb/N0');figure
semilogy(EbN0,Error_Bit_Hard,'-*r','linewidth',1.5);hold on
semilogy(EbN0,Error_Bit_Soft,'-ob','linewidth',1.5);
legend('CC(557 663 711)-Hard decoded','CC(557 663 711)-Soft decoded');
grid on;
ylabel('BER');
xlabel('Eb/N0(dB)');
title('The Relationship Between BER and Eb/N0');

############信道加噪声程序

function [Msg_BSC,Msg]=BPSK_AddNoise(msg,snr)
% 调制
msg1=2*msg-1;   %星座映射0映射为-1,1映射为1% 加噪声
sigma=(1/(2*(10^(0.1*snr))));
noise=0+(sigma)^0.5.*randn(1,length(msg)); %加高斯白噪声,sigma为信噪比方差
Msg=msg1+noise; %加噪声后的信息序列% 解调,加噪声以后,需要信息序列恢复成0-1比特序列
for i=1:length(msg);if Msg(i)>0Msg_BSC(i)=1;elseMsg_BSC(i)=0;end
end
end

如果有疑问,可以联系博主,大家一起讨论,一起进步!

AWGN信道下卷积编码、viterbe译码、分别采用软硬判决,进行误码率分析相关推荐

  1. 最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算

    最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算_u011852612的博客-CSDN博客

  2. mASK调制在AWGN信道下的可达信息速率的Monte Carlo仿真计算法

    本文探究mASK调制在AWGN信道下的可达信息速率用Monte Carlo仿真计算的方法.参考我的上一篇博文<mASK 调制在AWGN信道下的可达信息速率的积分计算>,解决的方法相同,只是 ...

  3. AWGN信道下的香农限

    香农限的概念 香农定义的信道容量为信道的输入信息X与信道的输出信息Y之间的最大互信息熵,即 对于信道带宽为B,信号功率为Ps ,噪声功率PN 的AWGN信道来说,其信道容量可做如下表示, 而香农限则是 ...

  4. m瑞利信道下对比ZF-SIC,MMSE-SIC,MRC三种均衡算法的误码率matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 移动通信系统的性能在很大程度上决定于无线信道的特性.单发单收系统无线信道的特性已经研究得很透彻,针对 ...

  5. C语言实现LDPC的校验矩阵,非正则LDPC码在AWGN信道中的性能研究

    0引言低密度奇偶校验码(LowDensityParityCheck,LDPC)是Gallager提出的基于稀疏校验矩阵的线性分组码[1].其构造特殊之处在于它的奇偶检验矩阵H是稀疏矩阵,即H矩阵中非零 ...

  6. 采用simulink构建AWGN信道中分组码的BPSK数字通信系统

    综合实验设计题5: 采用simulink构建AWGN信道中分组码的BPSK数字通信系统 1.实验要求: (1)构建在AWGN信道中,采用BPSK调制的分组差错控制编码方法的模型,并给出误码率性能. ( ...

  7. 信道编解码(2)LDPC编码_译码

    LDPC编码_译码 1 LDPC码简介 2 LDPC编译码实例 3 仿真程序 1 LDPC码简介 LDPC码即低密度奇偶校验码(Low Density Parity Check Code,LDPC), ...

  8. 单载波频域均衡matlab仿真,包括卷积编码维特比译码,矩阵交织,QPSK调制解调,导频插入,MMSE-FDE频域均衡

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 频域均衡是从校正系统的频率特性出发,利用一个可调滤波器的频率的频率特性去补偿信道或系统的频率特性,使 ...

  9. 【误码率仿真】基于matlab多径信道下OFDM通信系统误码率仿真【含Matlab源码 2078期】

    ⛄一.OFDM简介 1 OFDM调制解调原理 一个OFDM信号可以表示为 每个子载波可采用正交幅度调制(QAM)或相移键控调制(PSK).其中Xi,k为第i个OFDM符号在第k个子载波上传输的数据;N ...

最新文章

  1. 使用CSS将文字长度限制为n行
  2. 揭秘富人的22种习惯与风格
  3. 语义分割损失函数系列(2):IoU损失
  4. 【工业】工业控制博客汇总
  5. mongodb python 存文件_Python保存MongoDB上的文件到本地的方法介绍
  6. nginx做正向代理http,内网主机yum安装外网资源
  7. ode45 matlab 出错,请问,Matlab用ODE45解微分方程,出错
  8. ClippingNode实现新手引导高亮裁切
  9. xp共享文件权限分配设置的方法
  10. Crossoft Minesweeper Hexagon for Mac
  11. 对路径“bin\MySql.Data.xml”的访问被拒绝的解决方法
  12. # 研究杂感 × VOSviewer(第四辑)
  13. [转]VMPlayer的Briged网络配置
  14. mysql etimedout_Node.js MySQL ETIMEDOUT error
  15. Java端实现JSHOP2的调用
  16. 门控时钟、使能时钟的实现
  17. 智能体的奇幻漂流之“成都折叠”篇
  18. 使用 strace、tcpdump、nlmon、wireshark 探索 ethtool netlink 框架的原理
  19. 前端开发-后台信息管理页面的开发流程
  20. 结合具体案例说明PEid工具的具体使用方法、用途和含义。

热门文章

  1. 超级牙医html5游戏,‎App Store 上的“我是 小 牙医 游戏 - 牙醫 診所”
  2. Normalized Discounted Cumulative Gain
  3. 浏览器存储的方式有哪些
  4. 世事洞明皆学问-拉链拉头的拆分安装
  5. 半监督学习matlab,基于自适应图的半监督学习方法与流程
  6. 应届生找互联网工作及实习指北
  7. 梦想起航商务工作PPT模板-优页文档
  8. php中base64加密的应用场景
  9. Android 超高仿微信图片选择器
  10. 编写计算机程序的几个步骤,第1讲程序设计的一般步骤ok.doc