bpsk信道编码matlab,信道编码-研究日记_3 10/14/2016

参考文献:刘学勇. 详解MATLAB Simulink通信系统建模与仿真[M]. 电子工业出版社,

2011.

​吐槽一句:这本书我觉得还是蛮好的,就是配套光盘,我以为是把内容好好讲一遍呢,结果发现就是把书拍照放到PPT上读了一遍,我不知道这种教学视频有什么意义。

卷积码常用符号(n,k,m)​表示。每个(n,k)码段(也称子码,通常较短)内的n个码元不仅与该码段内的信息元有关,而且与前面的信息元有关。通常称m为编码存储。

生成多项式的概念。

每1位数据,影响m+1个输出子码​,称m+1为编码约束度。

最大似然译码算法的基本思路是,把接收码字与所有可能的码字比较,选择一种码距最小的码字作为解码输出。​

​幸存路径的概念。

matlab提供了卷积码的函数编码convenc和相应的Veterbi译码函数vitdec,可以快速地得到编译码结果。​

仿真说明:仿真BPSK调制在AWGN信道下分别使用卷积码和不使用卷积码的性能,其中,卷积码的约束长度为7,生成多项式为[171,133],码率为1/2,译码分别采用硬判决和软判决译码。

% 代码整理:贾继鹏

tic;close all;clear

all;clc

EbNo=0:2:10;

% SNR的范围

N=100000;

%

消息比特个数

M=2;

% BPSK调制

L=7;

% 约束长度

trel=poly2trellis(L,[171 133]); % 卷积码生成多项式

tblen=6*L;

%

Viterbi译码器回溯深度。

msg=randi([0,1],1,N);

% 消息比特序列

msg1=convenc(msg,trel);

% 卷积编码

x1=pskmod(msg1,M);

% BPSK调制

for ii=1:length(EbNo)

ii

y=awgn(x1,EbNo(ii)-3);

%加入高斯白噪声,因为码率为1/2,所以每个符号的能量要比比特能量少3dB

y1=pskdemod(y,M);

%硬判决

y1=vitdec(y1,trel,tblen,'cont','hard');

%Viterbi译码

[err,ber1(ii)]=biterr(y1(tblen+1:end),msg(1:end-tblen));

%误比特率

y2=vitdec(real(y),trel,tblen,'cont','unquant');

%软判决

[err,ber2(ii)]=biterr(y2(tblen+1:end),msg(1:end-tblen));

%误比特率

end

ber=berawgn(EbNo,'psk',2,'nodiff');

%BPSK调制理论误比特率

semilogy(EbNo,ber,'-ro',EbNo,ber1,'-m*',EbNo,ber2,'-b.','linewidth',2);

legend('BPSK理论误比特率','硬判决误比特率','软判决误比特率')

title('卷积码性能'); xlabel('Eb/No'); ylabel('误比特率');grid on;

toc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值