CRC编码的Simulink仿真实现Word格式文档下载.docx

上传人:b****1 文档编号:14312385 上传时间:2022-10-22 格式:DOCX 页数:16 大小:342.32KB
下载 相关 举报
CRC编码的Simulink仿真实现Word格式文档下载.docx_第1页
第1页 / 共16页
CRC编码的Simulink仿真实现Word格式文档下载.docx_第2页
第2页 / 共16页
CRC编码的Simulink仿真实现Word格式文档下载.docx_第3页
第3页 / 共16页
CRC编码的Simulink仿真实现Word格式文档下载.docx_第4页
第4页 / 共16页
CRC编码的Simulink仿真实现Word格式文档下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

CRC编码的Simulink仿真实现Word格式文档下载.docx

《CRC编码的Simulink仿真实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CRC编码的Simulink仿真实现Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。

CRC编码的Simulink仿真实现Word格式文档下载.docx

第一章设计要求

1.1、设计要求

CRCS

(1)对输入数据帧,进行CRC编码。

根据数据帧长度,选择适当长度的码器。

观察编码前后的波形。

(2)掌握CR(生成多项式、系统码等概念。

(3)掌握SIMULINK仿真参数的设置方法。

1.2提高要求

从误码率的角度考虑如何根据数据帧长度选择合适的长度的CRCS码器

1.3功能需求

实现CRCS码以及检测过程,并且在示波器上显示波形。

第二章系统组成及设计原理

2.1、系统组成

本系统由信源编码部分,信道部分,信宿检测部分组只要组成

2.2、CRC编码原理

在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K码。

对于一个给定的(N,K)码,可以证明存在一个最高次幕为N-K=R的多项式G(x)。

根据G(x)可以生成K位信息的校验码,而G(X)叫做这个CRC码的生成多项式。

校验码的具体生成过程为:

假设发送信息用信息多项式M(X)表示,将C(x)左移R位,则可表示成M(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。

通过M(x)*2R除以生成多项式G(x)得到的余数就是校验码。

2.3、通用CR(编码器

通用CR(编码器根据输入的一帧数据计算得到这帧数据的循环冗余码,并且把这个循环冗余码附加到帧数据后面,形成输出数据流。

如果通用CR(编码器的输人数据的帧长度等于凡,生成多项式的最高次数等于r,对每帧数据产生k个校验和

(CHECKSUM)则CR(编码器的工作流程如下:

(1)把输入的一帧数据等分成k个部分,每个部分的长度是n/k;

(2)在每个部分的数据。

后面添加r个二进制位(并且这r个二进制位的数值等于通用CR(编码器的初始状态),得到二进制序列S;

⑶计算5的循环冗余码Ci;

⑷把循环冗余码Ci添加到Wi的后面,得到二进制序列;

(5)把所有的序列连接起来形成数据帧。

2.4、CR—N编码器

CR—N编码器(CRC-NGenerator)计算每一个输入信号帧的循环冗余码(CRC),并把计算得到的循环冗余码附加到输入帧的末尾。

CRC-N编码器是通用CR编码器的

简化,它的工作方式与通用CR(编码器类似,但是它提供了若干个经常使用的生成多项式,W就表示这些生成多项式的最高次数。

2.5、CR检测器(CRC—N检测器)

与通用CRCk成器、CRC-N生成器相对应,CR检测器也有两种:

即通用户CRC检测器与CR一W检测器。

这两种检测器具有相同的工作原理,它们首先从接收到的二进制序列中分离出信息序列和CRC然后根据接收端的信息序列重新计算CRC如果重新计算得到的CR与接收到的CR(相等,则认为接收序列是正确的;

否则,则认为接收序列存在着传输错误。

第三章概要设计

3.1、系统层次结构图

3.2、方案的比较

方案一:

使用Simulink自带的模块进行搭配,设置参数并仿真

CR(码的仿真模型主要由BernoulliBinaryGenerator(贝努利二进制序列生成

器模块),,CRC-NGenerator(CRC—N生成器)和CRC-NSyndromeDetector(CRC—N检测器)等模块组成。

通过设计各个模块的参数就可以得到仿真结果。

方案二:

使用C语言编写S函数并进行仿真。

通过Simulink中的S函数也可以得到同样的仿真结果。

与CR码仿真实现对应的是一个离散状态的s函数,其输入模块为BernoulliBinaryGnerator模块,通过S函数模块仿真后也能得到结果。

但是相比较而言,方案二过程过于复杂,编写代码也容易出错,而方案一简单明了,调试方便,所以选择的方案一来进行仿真。

第四章详细设计

4.1、仿真模型图

仿真模型图如图4-1

rwwwvIGmajIiI

•mm

*屮旨叩!

I豈

4用

图4-1

4.2、各个模块的功能及参数设置

(1)BernoulliBinaryGenerator(贝努利二进制序列生成器模块)

图4-2

BernoulliBinaryGenerator是一个二进制序列发生器,如图4-2所示。

Probabolityofazero设置序列中出现0的概率,这里设置为0.3。

Samplesperframe设置帧的长度。

(2)CRC-NGenerator(CRC编码器)CRC-NGenerator是用来对输入帧进行CRC

编码的,如图4-3所示。

CRC-NOenerdluF

图4-3

CRC-NMetho是用来设置生成多项式的,这里有6种生成多项式,如表4-1

所示

CRC32

忑煜卜声址*川站土拓22*工山+工M】十

ATm+A*+A?

+XS-JC4+X2+X+1

32

4-^+1

24

CRC-16

再国★北甘4工上+1

16

Rc^crwdCRC,(fi

X14+X1*+X+1

Jb

CRM

护十,於十"

+X*+X1+1

W3

X*十丄]+J;

1+x+f

4

表4-1

在本次设计中采用CRC-32莫式,其生成多项式对应二进制序列为

1000000100110000010001110110110111

(3)复数转换模块

该模块如图4-4所示

Conplixto

Redlimidg

图4-4

这个模块是用来将实数转换成虚部为0的复数,由于瑞利信道只能输入复数,以需要添加这个模块。

(4)多径瑞利衰减信道模块

该模块如图4-5所示

MultipalhKayleigb

Fjdin$Channel

图4-5

该模块是用来实现信号的多径瑞利衰减仿真,他的输入信号是帧的复数形式。

其参数设置如图4-6

图4-6

Dopplerfrequency(Hz):

多普勒频移

Sampletime:

抽样间隔

Delayvector:

时延向量

Gainvector:

增益向量

(5)矩阵螺旋解交织器

该模块如图4-7所示

Mrirbc

Irrt前討呻

Interlejvei

图4-7

该模块能将实数序列转换成1列多行的矩阵,其参数设置如图4-8

图4-8

(6)CRC-检测器

CRC-检测器如图4-9所示

*

CRG^NSyndrome

Dftector

CRC-MSyndrome

n[i1

图4-9

该模块是用来CR解码的,并且能计算是否出错了设置参数方法跟CRC-编码器相同

(7)vectorscope示波器

该模块用来显示编码前后波形如图4-10所示

Vector

图4-10

(8)错误率统计模块

该模块从发射端和接收端分别接受数据并进行比较,得出误码率该模块如图4-11所示

ErrorRdte

图4-11

其参数设置如图4-12

图4-12

(9)选择器selector

该模块用来选择从错误率统计模块输出的3个数据中的第一个(三个数据分别

是:

误码率,错误码元数,总码元数)如图4-13所示

Sek«

tor

图4-13

 

第五章调试及测试结果与分析

在整个制作过程中,首先是弄清楚各个模块的功能以及参数的设置方法,布置好各个模块的位置,然后进行连接接。

再进行参数设置,进行仿真和调试。

5.1功能调试

按下运行,等仿真结束,观察示波器波形,然后计算CRC编码,看是否

与示波器波形相同。

示波器波形如图5-10

图5-1

从图5-1可以看出输入为

101101111001111111001101110101110110010000111111

CRC-编码器选用的是CRC-32即生成多项式对应二进制代码为

经过计算所得校验位1101010100110111101101001001100

所得CRC编码为

1011011110011111110011011101011101100100001111111101010100110111101101001001100

跟图示相同说明仿真过程完全正确。

5.2、问题发现及解决

调试过程中瑞利信道报错,查了资料,发现锐瑞利信道的输入输出必须是复数,在瑞利信道输入端接上一个复数转换模块,将输入实数转换成虚部为0的复数后问题

得到解决。

调试过程中又发现误码率非常高,通过查资料和请教老师,发现这是又由延迟造成的。

然后在信源和信宿分别连接一个ToWorksapce模块,再在示波器显示,观察延迟,并且在错误率统计模块修改延迟,然后再一次仿真,控制误码率在0.4左右,

问题得到了解决。

第六章设计总结

本次课程设计,学会了Simulink仿真工具的基本使用方法以及调试方法,并且初步了解了Simulink的模块,同时还了解了S函数的编程方法。

在本次设计中,完成了CR编码以及检测的要求,而且了解了系统码、线性编组码的定义,对设计中所用到的模块有了深刻的了解,尤其是CR(编码器和CR检测器

的工作原理,同时也了解了各个模块的设置要求以及输入输出数据的要求,总的来说

这次设计圆满完成了。

但是不可否认在本设计中还是存在很多问题,Vectorscope只能显示幅度

不能显示时间和频率;

误码率还是比较高(查资料显示使用瑞利信道误码率都很大);

生成的多项式只能有6种模式,这个问题如果使用通用CRCS码器能得

到解决。

本次实验前,用使用Simulink进行多次仿真,在仿真过程中发现问题分

析原因后,及时修改设计方案,修改电路中的各项参。

但仿真的环境与实际情

况还是存在出入,因而在使用中,还要完善方案

2008

2004

参考文献:

[1].樊昌信曹丽娜等•通信原理(第6版)[M].北京:

国防工业,

[2].森正亮等Marlab仿真技术与实例应用教程•北京:

机械工业,

[3].邓华等Matlab通信仿真及应用实力详解.北京:

人民邮电,2003

附录1:

仿真电路图

总亡也£

*』帀

14W9>

I

"

*>

nr+|話

rirT|p・t

匚■Njnrr

0*iRp

附录2:

S函数代码

function[sys,xO,str,ts]=crcfunc(t,x,u,flag)OA定义S函数

m=[11010101];

消息对应的二进制序列

G=[11000000000000101];

生成多项式G()=

+5++1对应的二进制序列

switchflag,0A艮据flag的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1