线性分组码实验报告
综合性设计性实验报告
专 业:
学 号:
姓 名:
实验所属课程:
实验室(中心): 信息技术软件实验室
指 导 教 师 :
2
一、 题目
线性分组码编译码实验 二、 仿真要求
1. 分别用不同的生成矩阵进行(7,4)线性分组码的编码,经调制解调后译码,并比较两种线性分组码的纠错能力。
2. 掌握线性分组码的编码原理、编码步骤和译码方法。
3. 熟悉matlab软件的基本操作,学会用matlab软件进行线性分组码的编码和译码。
三、仿真方案详细设计
编码:
本实验采用的是(7,4)线性分组码,线性分组码的编码由监督矩阵和生成矩阵实现,监督矩阵H为(3×4)的矩阵,由监督方程和(4×4)的单位矩阵构成,生成矩阵G为(4×7)的矩阵,由(4×4)的单位矩阵和监督矩阵的转置矩阵构成。实现过程为:
1、将要编码的序列先整形,整为4列
2、如果序列不能被4整除在后边补0使其能被4整除 3、将整形后的序列与生成矩阵G相乘即得到编码后的码字
在本实验中,分别生成两种生成矩阵,在产生了生成矩阵后根据输入的四位信息位和生成矩阵相乘即可得到编码矩阵。
译码:
在译码过程中,我们利用错误图样和伴随式来进行纠错。
1、设一个接收码字矩阵为R,R*H'=S (模2乘),则S为码字对应的伴随式矩阵如果S=0则说明接受码字无差错;
2、如果S不为0,查看矩阵S中不为0的那行所在行数,该行即收码字错误所在行i;
3、将S转置,将不为0的一列与H每一列进行比较,找到H中相同列,该列的列数即为错误所在列;
4、由步骤2和3得到错误具体位置,模2加对应的错误图样就可得到正确码字。 BPSK调制:
BPSK调制利用载波的相位变化来传递数字信息,振幅和频率保持不变。双极性的全占空矩形脉冲序列与正弦载波相乘就得到调制信号。因此进行调制时首先进行码形变换变为双极性的,再经乘法器与载波相乘得到调制信号。其具体实现方法如下:
1、将0、1序列变为-1、1序列;
2、将序列与载波相乘,为‘1’时与载波相位相同,为‘-1’时与载波相位相反。 BPSK解调:
解调是产生一个与载波频率相同的本地载波,与经信道加噪后的调制信号相乘,得到解调信号,进而通过抽样判决得出原始信号。解调是调制的逆过程,其作用是从接受信号中恢复出原基带信号。解调的方法分为两类:相干解调和非相干解调(如包络检波)。相干解调也称同步检波,适用于所有线性调制信号的解调。其关键是必须在已调信号的接收端产生与信号载波同频同相的本地载波。 本次仿真实验采用的是相干解调法,调制信号与想干载波相乘,经过低通滤波器,再抽样判决得到原信号。通过产生一个与载波频率相同的本地载波,与经信道加噪后的调制信号相乘,得到解调信号,然后通过低通滤波器滤波器再抽样判决,得出解调后的原始信号。
四、仿真结果及结论
实验仿真图如下:
10
10误码率
-1
10
-2
10
-3
-15-14-13-12-11
-10信噪比
-9-8-7-6-5
通过上面仿真图我们可以看出,通过随机产生30000个数据,再经过重复统计误比特数100次,并取其平均值,得到了误码率曲线,最终生成两条线并可以进行直观的对比。在仿真过程中,在我发现,随机产生的数据量越大,两条曲线重合的就越紧密,这说明即使是在不同的生成矩阵中,用同一种编码和调制方式产生的误码率曲线都相差不大。
五、总结与体会
本次仿真实验是进行不同(7,4)线性分组码的纠错能力的比较,通过进行随机数据的产生、生成矩阵的产生以及信道编码译码等步骤,最终仿真得出实验结果。刚开始的时候对于线性分组码的编码还不太理解,通过查阅资料以及看老师的课件最终了解了这次编码实验的原理,也有了思路。之后就是进行matlab程序的编写和调试,在调试程序时也遇到了许多问题,比如编译码老是出错,最后通过查阅资料和和同学讨论才得到了解决。
通过这次仿真实验,我认真地学习了有关线性分组码的编码原理,并且通
过对实验的仿真对其有了更加深入的了解。这次实验不仅使我巩固了理论知识,也锻炼了自己对编码问题的解决能力。
六、主要仿真代码
主函数: clear all; clc; N=300; alter=100; datarate=1000; fc=datarate; fs=fc*16;
G1=eye(4,4); %产生4*4的单位矩阵 g2=[0,1,1;1,1,0;1,1,1;0,1,0]; G2=[1,0,1;1,1,1;1,1,0;0,1,1];
G=[G1,G2]; %设置生成矩阵为G g=[G1,g2];
H2=eye(3,3); %产生3*3的单位矩阵作为监督矩阵H和h的后三列 H=[G2',H2]; %监督矩阵H h=[g2',H2]; %监督矩阵h BER1=[]; %初始化误码率BER1,用来统计监督矩阵为H时的误码率 BER2=[];
for snr=-15:0.5:-5 %信噪比 err1=0; err2=0;
for i=1:alter
[ensignal_1,X1]=information(N,G)%编码后数据X1为编码后生成的码组 signal_1=ensignal_1*2-1; %变为双极性 [ensignal_2,X2]=information(N,g) signal_2=ensignal_2*2-1;
modusignal_1=modu(signal_1,datarate,fc, fs); %BPSK调制 modusignal_2=modu(signal_2,datarate,fc, fs);
y1=awgn(modusignal_1,snr,'measured'); %加噪 y2=awgn(modusignal_2,snr,'measured');
demosignal_1=bpskdemo(datarate,fc,fs,y1); %BPSK解调 demosignal_2=bpskdemo(datarate,fc,fs,y2);
[error1,signal_yima]=yima(demosignal_1,H); %译码 [error2,signal_yima]=yima(demosignal_2,h); s1=[]; s2=[];
[m,n]=size(X1);
for i=1:m %遍历每一行 s1=[s1,X1(i,:)]; s2=[s2,X2(i,:)]; end
err1=err1+sum(abs(error1-s1)) %error1为H下纠错后得到数据 err2=err2+sum(abs(error2-s2)) end
BER1=[BER1,err1/(alter*N/4*7)] %误码率计算 BER2=[BER2,err2/(alter*N/4*7)] end figure(1)
semilogy(-15:0.5:-5,BER1,'r'); hold on
semilogy(-15:0.5:-5,BER2,'g'); xlabel('信噪比');ylabel('误码率'); grid on
功能函数:
function [signal,X]=information(N,G)
m=randint(1,N); x=reshape(m,length(m)/4,4); %分组编码
X=mod(x*G,2); %进行编码 n=length(m)/4*7;
signal=reshape(X,1,n); %把编码后的码字信息转变为一维数组
function modusignal=modu(signal, dataRate,fc, fs) %采用BPSK调制方式
t=linspace …… 此处隐藏:2663字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




