信道编码——线性分组码
来源:互联网 发布:js监听函数 编辑:程序博客网 时间:2024/04/29 03:17
clc
clear all
%%%%%%%%%%%%%生成初始序列%%%%%%%%%%%%
SignNum = 1000; %信息长度
t=1:20;
genmat=[1 0 0 0 1 1 1;0 1 0 0 1 1 0;0 0 1 0 1 0 1;0 0 0 1 0 1 1];
Length = SignNum ; %原始码序列长度
OrigiSeq=(sign(randn(1,SignNum))+1)/2; %产生原始的0或1信息序列
%%%%%%%%%%%%%hamming编码%%%%%%%%%%%%%%
ConCode=encode (OrigiSeq,7,4,'linear',genmat); %线性分组码编码后序列
%%%%%%%%%%%%%BPSK调制%%%%%%%%%%%%%%
BPSKCode =pskmod(ConCode,2);
%%%%%%%%%%%%%定义信噪比%%%%%%%%%%%%
EbN0 =-5:8; %EbN0-dB
snr=10.^(EbN0./10); %转化为功率信噪比
error = zeros(1,10);
%%%%%%%%%%%%%信噪比循环接收统计误码率%%%%%%%%%%%%
for k = 1:length(EbN0)
for b=1:100;
%%%%%%%%%%%%%%加性高斯白噪声信道%%%%%%%%%%%
RecCode = awgn(BPSKCode,EbN0(k),'measured');
%%%%%%%%%%%%%%BPSK解调%%%%%%%%%%%%%%%
BPSKdecode=pskdemod(RecCode,2);
%%%%%%%%%%%%%% linear码译码%%%%%%%%%%%%%%
Decoder=decode (BPSKdecode,7,4,'linear',genmat);
%%%%%%%%%%%%%%统计误码率%%%%%%%%%%%
error(b) = sum(abs(Decoder-OrigiSeq))/Length;
end
%%%%%%%%%%%%%%计算平均误码率%%%%%%%%%%%%%
errorout(k)=mean(error,2);
end
errorout
%%%%%%%%%%%%%计算理论误码率%%%%%%%%%%%%%
ber_theory=0.5*erfc(sqrt(snr)); %计算理论误比特率
ber_theory
%%%%%%%%%%%%%绘制误码率曲线%%%%%%%%%%%%%%
figure
semilogy (EbN0,errorout,'b*-',EbN0,ber_theory,'rd-');
hold on
xlabel('Eb/N0(dB)');
ylabel('误比特率');
legend('加 linear code','理论值');
title('BPSK+linear误比特率曲线');
grid on; %%%%添加网格线
OrigiSeq=OrigiSeq(1:20)%提取前20个仿真结果
Decoder=Decoder(1:20)
figure
subplot(211);stairs(t,OrigiSeq,'r');axis([1 20 -0.5 1.5]);title('编码前序列');%%%%%%%%%%%%%%%%%%%%%
subplot(212);stairs(t,Decoder,'b');axis([1 20 -0.5 1.5]);title('译码后序列');
- 信道编码——线性分组码
- 信道编码(差错控制编码)——线性分组码
- 线性分组码
- 线性分组码
- 线性分组码
- 大话线性分组码编码技术
- 信道编码
- 信道编码
- 求线性分组码的标准阵的matlab程序
- (7,4)线性分组码matlab仿真(包含纠错部分代码)
- 信息论编码第10章(线性分组码的解码)
- 线路/信道编码技术(1)——8B/10B编码
- 线路/信道编码技术(2)——64B/66B编码
- 哈希+位运算实现差错控制编码([7:4]线性分组码-离散数学)
- 信道编码技术
- 线性结构—线性表
- [数据结构]线性结构——线性表
- 线性表—线性表的合并
- 如何创建html文件
- C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
- 数据结构与算法——字典序最小问题(用string类实现)
- Leetcode: Range Sum Query - Mutable
- Servlet3.0学习总结(一)——使用注解标注Servlet-2
- 信道编码——线性分组码
- EasyDarwin EasyClient开源流媒体播放器,支持多窗口显示
- 关于IO流制作简单的复制张贴功能
- Android菜单的使用
- 玩转四旋翼无人机(DJI SDK 使用)
- KJFrameForAndroid
- Eclipse的快捷键
- MySQL 约束与索引
- 批量修改文件名和后缀名的python设计