没有合适的资源?快使用搜索试试~ 我知道了~
首页线性分组码以及卷积码性能分析
线性分组码以及卷积码性能分析
需积分: 49 41 下载量 176 浏览量
更新于2023-06-02
2
收藏 171KB DOCX 举报
对线性分组码以及卷积码在不同信道(随机信道及突发信道)中纠错性能进行比较分析。
资源详情
资源推荐
二. 信道编码技术对比
(一)目的: 对线性分组码以及卷积码在不同信道(随机信道及突发信道)中纠错性能进
行比较分析。
(二)基本内容:
1. 利用 Matlab 软件中的 Simulink 仿真器或者 m 函数搭建数字通信系统(含信源、差错
控制编/解码模块、调制/解调模块、随机信道等模块),以下仿真研究均在该系统下进行;
2. 采用不同的数字调制方式,研究无信道编码和有信道编码时系统的误比特率比较;
3. 在相同的信源、调制方式和信道条件下,研究卷积码与线性分组码的纠错性能比较(比
较系统的误比特率);
4. 研究卷积码参数不同时,纠错性能的差异。
(三)拓展内容:信道模型改成突发信道,此时为了实现接收端可靠接收,除了差错控制
编码外还需要加入交织模块。在这种情况下,完成与基本内容相同的仿真与研究。
%Channelcoding 为信道编码函数
% 信道编码子函数,sym 为编码码流,G 为生成矩阵,k 为信息码元的长度,如(7,4)码的 4
function bitcoded=channelcoding(sym,G,k)
A=vec2mat(sym,k);
U=A*G;
U=mod(U,2);
bitcoded=reshape(U',1,[]);
%Channeldecoding 为信道解码纠错子函数
function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)
% 前向纠错函数,实现纠错功能
% bidecoded 为纠错后返回的比特流
% recode 为输入的比特流
% E 为错误图样表,S 为对应的伴随式表
% H 为监督矩阵,n,k 为码的类型,如(7,4)码,n=7,k=4
row=length(recode)/n; %行数
E=zeros(row,n); %错误图样
RM=zeros(row,n); %纠错之后的矩阵
R=vec2mat(recode,n);
S=R*H'; %伴随矩阵
S=mod(S,2);
for i=1:row
for j=1:2^(n-k) %查表纠错
if(S(i,:)==Smatrix(j,:))
E(i,:)=Etab(j,:);
RM(i,:)=R(i,:)+E(i,:);
RM(i,:)=mod(RM(i,:),2);
break;
end
end
end
bitdecoded=reshape(RM',1,[]); %转化为比特流
%Interwaving 为交织子函数
function retbit=interweaving(bitstream,row,col)
% 功能:实现对输入比特的交织
% retbit 为交织后返回的比特流向量
% bitstream 为需要交织的比特流向量
% row 和 col 为交织器的行和列,
% 通过改变 col 就可以改变交织深度
retbit=zeros(1,length(bitstream));
bitarr=vec2mat(bitstream,row);
bitarr=bitarr';
for i=1:length(bitstream)/(row*col)
temp=bitarr(:,((i-1)*col+1):i*col);
retbit(1,((i-1)*(row*col)+1):(i*(row*col)))=reshape(temp',1,[]);
end
%Deinterwaving 为解交织子函数
function retbits=deinterweaving(bitstream,row,col)
% 功能:实现对输入比特的解交织
% rebits 为解交织后返回的比特流
% bitstream 输入的比特流
% row 和 col 为交织器的行和列,通过改变 col 就可以改变交织器的长度
retbits=zeros(1,length(bitstream));
bitarr=vec2mat(bitstream,col);
for i=1:length(bitstream)/(row*col)
temp=bitarr((i-1)*row+1:i*row,:);
retbits(1,(i-1)*row*col+1:i*row*col)=reshape(temp,1,[]);
end
%addfade 为向信道加入衰落参数的子函数
function code=addfade(modcode,Tf,isperiod,isfade)
% 功能:向传输序列 modcode 叠加衰落性信道的衰落参数 k(t)
% code 为加入衰减参数之后返回的序列。
% modcode 为调制之后的序列
% Tf 为衰落时间,以 ms 为单位,小于 10ms,
% Tf=1,表示衰落 1ms
% isperiod 周期衰落和一次性衰落的标志,
% isperiod=1 表示周期性衰落,0 表示一次性衰落
% isfade 表示是否存在衰落,1 存在,0 不存在衰落直接返回 modcode if(isfade==1)
if(isperiod==1) %周期性衰落
for k=1:length(modcode)/(100*Tf)
a=(k-1)*100*Tf+31;
b=(k-1)*100*Tf+30+10*Tf;
modcode(1,a:b)=0.1*modcode(1,a:b);
end
else %一次衰落
a=31;
b=30+10*Tf;
modcode(1,a:b)=0.1*modcode(1,a:b);
end
code=modcode;
%else
% code=modcode;
%end
%awgn 为库函数,向信源加高斯白噪声
%pskmod 为库函数,用于信号调制,输出为复数
%pskdemod 为库函数,用于信号解调
基本内容
$le1:信道编码对通信系统性能的影响,有无信道编码的影响;
%信道编码对通信系统性能的影响,有无信道编码的影响
%功能:有无信道编码性能比较
M=2; %进制
b=log2(M); %每符号比特数
n=128*10000; %符号数
G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1]; %生成矩
阵
H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0]; %监督矩阵
Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样
0 0 0 0 0 1 0;0 0 0 0 1 0 0;
0 0 0 1 0 0 0;0 0 1 0 0 0 0;
0 1 0 0 0 0 0;1 0 0 0 0 0 0];
Smatrix=Etab*H'; %校正子
sym=randint(n,1,M); %在 MATLAB 中用于产生基质的均匀分布的随机整数
sym=de2bi(sym,'left-msb'); %模拟信源编码,发送码组 A
bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码 ,接受码组 B
modbit=dpskmod(bitcoded,M); %DPSK 调制
snr=0:0.2:15;
L=length(snr);
ser=zeros(1,L);
ser2=zeros(1,L);
for k=1:L %传输序列 modbit 加入 AWGN 噪声,噪声为 0 到 15dB
y=awgn(modbit,10*log10(b)+snr(k),'measured');
zsym=dpskdemod(y,M); %DPSK 解调
zbit=de2bi(zsym,'left-msb');
recode=reshape(zbit',1,[]);%1*n
Rstream=recode;
err=(Rstream~=bitcoded);
errnum=sum(err);
ser(k)=errnum/length(bitcoded);
bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); %纠错
err=(bitdecoded~=bitcoded);
errbits=sum(err);
ser2(k)=errbits/(length(bitcoded));
end
semilogy(snr,ser,'b-*')
hold on
semilogy(snr,ser2,'r-o')
grid on
legend('没有信道编码','信道编码');
xlabel('Eb/No(dB)'); ylabel('SER');
title('2DPSK 有无信道编码性能比较');
0 2 4 6 8 10 12
10
-7
10
-6
10
-5
10
-4
10
-3
10
-2
10
-1
10
0
Eb/No(dB)
SER
2DPSK有 无 信 道 编 码 性 能 比 较
没 有 信 道 编 码
信 道 编 码
%信道编码对通信系统性能的影响,有无信道编码的影响
%功能:有无信道编码性能比较
M=2; %进制
b=log2(M); %每符号比特数
n=128*10000; %符号数
G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1]; %生成矩
阵
H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0]; %监督矩阵
Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样
0 0 0 0 0 1 0;0 0 0 0 1 0 0;
0 0 0 1 0 0 0;0 0 1 0 0 0 0;
0 1 0 0 0 0 0;1 0 0 0 0 0 0];
Smatrix=Etab*H'; %校正子
sym=randint(n,1,M); %在 MATLAB 中用于产生基质的均匀分布的随机整数
sym=de2bi(sym,'left-msb'); %模拟信源编码,发送码组 A
bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码 ,接受码组 B
modbit1=pskmod(bitcoded,M); %对线性码采用 PSK 调制方式
modbit3=dpskmod(bitcoded,M); %改变调制方式为 DPSK 调制方式
snr=0:0.2:15;
L=length(snr);
ser1=zeros(1,L);
ser3=zeros(1,L);
ser21=zeros(1,L);
剩余25页未读,继续阅读
qq_28248807
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功