CRC编码的Simulink仿真实现.docx
- 文档编号:16317063
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:17
- 大小:708.04KB
CRC编码的Simulink仿真实现.docx
《CRC编码的Simulink仿真实现.docx》由会员分享,可在线阅读,更多相关《CRC编码的Simulink仿真实现.docx(17页珍藏版)》请在冰点文库上搜索。
CRC编码的Simulink仿真实现
第一章设计要求求....................................................2
1.1基本要求......................................................2
1.2提高要求....................................................2
1.3功能需求..........................................................2
第二章系统的组成及工作原理.............................................3
2.1系统组成..........................................................3
2.2CRC编码原理.......................................................3
2.3通用CRC编码器.....................................................3
2.4CRC—N编码器......................................................3
2.5CRC检测器(CRC—N检测器)...........................................4
第三章概要设计........................................................5
3.1系统层次结构图....................................................5
3.2方案的比较........................................................5
第四章详细设计........................................................6
4.1仿真模型图........................................................6
4.2各个模块的功能及参数设置..........................................6
第五章调试及测试结果与分析............................................12
5.1功能调试....................................................12
5.2、问题发现及解决..............................................13
第六章设计总结........................................................14
参考文献...............................................................15
附录1.................................................................16
附录2.................................................................17
第一章设计要求
1.1、设计要求
(1)对输入数据帧,进行CRC编码。
根据数据帧长度,选择适当长度的CRC编码器。
观察编码前后的波形。
(2)掌握CRC生成多项式、系统码等概念。
(3)掌握SIMULINK仿真参数的设置方法。
1.2提高要求
从误码率的角度考虑如何根据数据帧长度选择合适的长度的CRC编码器。
1.3功能需求
实现CRC编码以及检测过程,并且在示波器上显示波形。
第二章系统组成及设计原理
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、通用CRC编码器
通用CRC编码器根据输入的一帧数据计算得到这帧数据的循环冗余码,并且把这个循环冗余码附加到帧数据后面,形成输出数据流。
如果通用CRC编码器的输人数据的帧长度等于凡,生成多项式的最高次数等于r,对每帧数据产生k个校验和(CHECKSUM),则CRC编码器的工作流程如下:
(1)把输入的一帧数据等分成k个部分,每个部分的长度是n/k;
(2)在每个部分的数据。
后面添加r个二进制位(并且这r个二进制位的数值等于通用CRC编码器的初始状态),得到二进制序列S;
(3)计算5的循环冗余码Ci;
(4)把循环冗余码Ci添加到Wi的后面,得到二进制序列;
(5)把所有的序列连接起来形成数据帧。
2.4、CRC—N编码器
CRC—N编码器(CRC—NGenerator)计算每一个输入信号帧的循环冗余码(CRC),并把计算得到的循环冗余码附加到输入帧的末尾。
CRC—N编码器是通用CRC编码器的简化,它的工作方式与通用CRC编码器类似,但是它提供了若干个经常使用的生成多项式,Ⅳ就表示这些生成多项式的最高次数。
2.5、CRC检测器(CRC—N检测器)
与通用CRC生成器、CRC—N生成器相对应,CRC检测器也有两种:
即通用户CRC检测器与CRC一Ⅳ检测器。
这两种检测器具有相同的工作原理,它们首先从接收到的二进制序列中分离出信息序列和CRC,然后根据接收端的信息序列重新计算CRC。
如果重新计算得到的CRC与接收到的CRC相等,则认为接收序列是正确的;否则,则认为接收序列存在着传输错误。
第三章概要设计
3.1、系统层次结构图
生成二进制序列
进行CRC编码
信道传播
进行CRC检测
计算误码率
选择合适长度的成多项式是误码率最小
3.2、方案的比较
方案一:
使用Simulink自带的模块进行搭配,设置参数并仿真
CRC码的仿真模型主要由BernoulliBinaryGenerator(贝努利二进制序列生成器模块),,CRC—NGenerator(CRC—N生成器)和CRC—NSyndromeDetector(CRC—N检测器)等模块组成。
通过设计各个模块的参数就可以得到仿真结果。
方案二:
使用C语言编写S函数并进行仿真。
通过Simulink中的S函数也可以得到同样的仿真结果。
与CRC码仿真实现对应的是一个离散状态的s函数,其输入模块为BernoulliBinaryGnerator模块,通过S函数模块仿真后也能得到结果。
但是相比较而言,方案二过程过于复杂,编写代码也容易出错,而方案一简单明了,调试方便,所以选择的方案一来进行仿真。
第四章详细设计
4.1、仿真模型图
仿真模型图如图4-1
图41
4.2、各个模块的功能及参数设置
(1)BernoulliBinaryGenerator(贝努利二进制序列生成器模块)
图42
BernoulliBinaryGenerator是一个二进制序列发生器,如图4-2所示。
Probabolityofazero设置序列中出现0的概率,这里设置为0.3。
Samplesperframe设置帧的长度。
(2)CRC-NGenerator(CRC编码器)CRC-NGenerator是用来对输入帧进行CRC编码的,如图4-3所示。
图43
CRC-NMethod是用来设置生成多项式的,这里有6种生成多项式,如表4-1所示
表4-1
在本次设计中采用CRC-32模式,其生成多项式对应二进制序列为1000000100110000010001110110110111。
(3)复数转换模块
该模块如图4-4所示
图44
这个模块是用来将实数转换成虚部为0的复数,由于瑞利信道只能输入复数,所以需要添加这个模块。
(4)多径瑞利衰减信道模块
该模块如图4-5所示
图45
该模块是用来实现信号的多径瑞利衰减仿真,他的输入信号是帧的复数形式。
其参数设置如图4-6
图46
Dopplerfrequency(Hz):
多普勒频移
Sampletime:
抽样间隔
Delayvector:
时延向量
Gainvector:
增益向量
(5)矩阵螺旋解交织器
该模块如图4-7所示
图47
该模块能将实数序列转换成1列多行的矩阵,其参数设置如图4-8
图48
(6)CRC-N检测器
CRC-N检测器如图4-9所示
图49
该模块是用来CRC解码的,并且能计算是否出错了。
设置参数方法跟CRC-N编码器相同
(7)vectorscope示波器
该模块用来显示编码前后波形如图4-10所示
图410
(8)错误率统计模块
该模块从发射端和接收端分别接受数据并进行比较,得出误码率。
该模块如图4-11所示
图411
其参数设置如图4-12
图412
(9)选择器selector
该模块用来选择从错误率统计模块输出的3个数据中的第一个(三个数据分别是:
误码率,错误码元数,总码元数)如图4-13所示
图413
第五章调试及测试结果与分析
在整个制作过程中,首先是弄清楚各个模块的功能以及参数的设置方法,布置好各个模块的位置,然后进行连接接。
再进行参数设置,进行仿真和调试。
5.1功能调试
按下运行,等仿真结束,观察示波器波形,然后计算CRC编码,看是否与示波器波形相同。
示波器波形如图5-10
图5-1
从图5-1可以看出输入为101101111001111111001101110101110110010000111111
CRC-N编码器选用的是CRC-32即生成多项式对应二进制代码为1000000100110000010001110110110111
经过计算所得校验位1101010100110111101101001001100
所得CRC编码为1011011110011111110011011101011101100100001111111101010100110111101101001001100
跟图示相同说明仿真过程完全正确。
5.2、问题发现及解决
调试过程中瑞利信道报错,查了资料,发现锐瑞利信道的输入输出必须是复数,在瑞利信道输入端接上一个复数转换模块,将输入实数转换成虚部为0的复数后问题得到解决。
调试过程中又发现误码率非常高,通过查资料和请教老师,发现这是又由延迟造成的。
然后在信源和信宿分别连接一个ToWorksapce模块,再在示波器显示,观察延迟,并且在错误率统计模块修改延迟,然后再一次仿真,控制误码率在0.4左右,问题得到了解决。
第六章设计总结
本次课程设计,学会了Simulink仿真工具的基本使用方法以及调试方法,并且初步了解了Simulink的模块,同时还了解了S函数的编程方法。
在本次设计中,完成了CRC编码以及检测的要求,而且了解了系统码、线性编组码的定义,对设计中所用到的模块有了深刻的了解,尤其是CRC编码器和CRC检测器的工作原理,同时也了解了各个模块的设置要求以及输入输出数据的要求,总的来说这次设计圆满完成了。
但是不可否认在本设计中还是存在很多问题,Vectorscope只能显示幅度不能显示时间和频率;误码率还是比较高(查资料显示使用瑞利信道误码率都很大);生成的多项式只能有6种模式,这个问题如果使用通用CRC编码器能得到解决。
本次实验前,用使用Simulink进行多次仿真,在仿真过程中发现问题分析原因后,及时修改设计方案,修改电路中的各项参。
但仿真的环境与实际情况还是存在出入,因而在使用中,还要完善方案
参考文献:
[1].樊昌信曹丽娜等.通信原理(第6版)[M].北京:
国防工业出版社,2008
[2].张森张正亮等Marlab仿真技术与实例应用教程.北京:
机械工业出版社,2004
[3].邓华等Matlab通信仿真及应用实力详解.北京:
人民邮电出版社,2003
附录1:
仿真电路图
附录2:
S函数代码
function[sys,x0,str,ts]=crcfunc(t,x,u,flag)0A定义S函数
m=[11010101];消息对应的二进制序列
G=[11000000000000101];生成多项式G()=
+5++I对应的二进制序列
switchflag,0A根据flag的值进行不同的S函数操作
case0
[sys,xO,str,ts]=mdllnitializeSizes(m,G);
case2
sys=mdlUpdate(t,x,u,m,G);
case3
sys=mdlOutputs(t,x,u,m,G);
case{1,4,9}
sys=[];
otherwise
error([’unhandledflag=’,num2str(flag)]);
end
function[sys,x0,sir,t8]=mdllnitializeSizes(m,G)0A初始化S
函数
sizes=simsizes;
sizes.NumContStates=0:
sizes.NumDiscStates=1;
sizes.NumOutputs=1;
sizes.NumInputs=1;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
xO=ones(2,1);
str=[];
ts=[10];
fori=1:
24
if(i<=8)
M(i)=m(i);
else
M(i)=0;在消息后面补16个零
end
end
R=M(i)llG(i)将M与G进行模2运算,相当于异
或运算
functionsys=mdlUpdates(t,X,U,m,G)更新离散状态
sys=R;
functionsys=mdlOutputs(t,X,U。
m。
G)计算输出结果
sys=R;
付:
外文翻译
电火花加工
电火花加工法对加工超韧性的导电材料(如新的太空合金)特别有价值。
这些金属很难用常规方法加工,用常规的切削刀具不可能加工极其复杂的形状,电火花加工使之变得相对简单了。
在金属切削工业中,这种加工方法正不断寻找新的应用领域。
塑料工业已广泛使用这种方法,如在钢制模具上加工几乎是任何形状的模腔。
电火花加工法是一种受控制的金属切削技术,它使用电火花切除(侵蚀)工件上的多余金属,工件在切削后的形状与刀具(电极)相反。
切削刀具用导电材料(通常是碳)制造。
电极形状与所需型腔想匹配。
工件与电极都浸在不导电的液体里,这种液体通常是轻润滑油。
它应当是点的不良导体或绝缘体。
用伺服机构是电极和工件间的保持0.0005~0.001英寸(0.01~0.02mm)的间隙,以阻止他们相互接触。
频率为20000Hz左右的低电压大电流的直流电加到电极上,这些电脉冲引起火花,跳过电极与工件的见的不导电的液体间隙。
在火花冲击的局部区域,产生了大量的热量,金属融化了,从工件表面喷出融化金属的小粒子。
不断循环着的不导电的液体,将侵蚀下来的金属粒子带走,同时也有助于驱散火花产生的热量。
在最近几年,电火花加工的主要进步是降低了它加工后的表面粗糙度。
用低的金属切除率时,表面粗糙度可达2—4vin.(0.05—0.10vin)。
用高的金属切除率[如高达15in3/h(245.8cm3/h)]时,表面粗糙度为1000vin.(25vm)。
需要的表面粗糙度的类型,决定了能使用的安培数,电容,频率和电压值。
快速切除金属(粗切削)时,用大电流,低频率,高电容和最小的间隙电压。
缓慢切除金属(精切削)和需获得高的表面光洁度时,用小电流,高频率,低电容和最高的间隙电压。
与常规机加工方法相比,电火花加工有许多优点。
1.不论硬度高低,只要是导电材料都能对其进行切削。
对用常规方法极难切削的硬质合金和超韧性的太空合金,电火化加工特别有价值。
2.工件可在淬火状态下加工,因克服了由淬火引起的变形问题。
3.很容易将断在工件中的丝锥和钻头除。
4.由于刀具(电极)从未与工件接触过,故工件中不会产生应力。
5.加工出的零件无毛刺。
6.薄而脆的工件很容易加工,且无毛刺。
7.对许多类型的工件,一般不需第二次精加工。
8.随着金属的切除,伺服机构使电极自动向工件进给。
9.一个人可同时操作几台电火花加工机床。
10.能相对容易地从实心坯料上,加工出常规方法不可能加工出来的极复杂的形状。
11.能用较低价格加工出较好的模具。
12.可用冲头作电极,在阴模板上复制其形状,并留有必须的间隙。
Electricaldischargemachining
Electricaldischargemachininghasprovedespeciallyvaluableinthemachiningofsuper-tough,electricallyconductivematerialssuchasthenewspace-agealloys.Thesemetalswouldhavebeendifficulttomachinebyconventionalmethods,butEDMhasmadeitrelativelysimpletomachineintricateshapesthatwouldbeimpossibletoproducewithconventionalcuttingtools.Thismachiningprocessiscontinuallyfindingfurtherapplicationsinthemetal-cuttingindustry.Itisbeingusedextensivelyintheplasticindustrytoproducecavitiesofalmostanyshapeinthesteelmolds.
Electricaldischargemachiningisacontrolledmetalremovaltechniquewherebyanelectricsparkisusedtocut(erode)theworkpiece,whichtakesashapeoppositetothatofthecuttingtoolorelectrode.Thecuttingtool(electrode)ismadefromelectricallyconductivematerial,usuallycarbon.Theelectrode,madetotheshapeofthecavityrequired,andtheworkpiecearebothsubmergedinadielectricfluid,whichisgenerallyalightlubricatingoil.Thisdielectricfluidshouldbeanonconductor(orpoorconductor)ofelectricity.Aservomechanismmaintainsagapofabout0.0005to0.001in.(0.01to0.02mm)betweentheelectrodeandthework,preventingthemfromcomingintocontactwitheachother.Adirectcurrentoflowvoltageandhighamperageisdeliveredtotheelectrodeattherateofapproximately20000hertz(Hz).Theseelectricalenergyimpulsesbecomesparkswhichjumpthedielectricfluid.Intenseheatiscreatedinthelocalizedareaoftheparkimpact,themetalmeltsandasmallparticleofmoltenmetalisexpelledfromthesurfaceoftheworkpiece.Thedielectricfluid,whichisconstantlybeingcirculated,carriesawaytheerodedparticlesofmetalandalsoassistsindissipatingtheheatcausedbythespark.
Inthelastfewyears,majoradvanceshavebeenmadewithregardtothesurfacefinishesthatcanbeproduced.Withthelowmetalremovalrates,surfacefinishesof2to4um.(0.05to0.10um)arepossible.Withhighmetalremovalratesfinishesof1000uin.(25um)areproduced.
Thetypeoffinishrequireddeterminesthenumberofampereswhichcanbeused,thecapacitance,frequency,andthevoltagesetting.Forfastmetalremoval(roughingcuts),highamperage,lowfrequency,highcapacitance,andminimumgapvoltagearerequired.Forslowmetalremoval(finis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CRC 编码 Simulink 仿真 实现