语音信号ADPCM编解码实现课程设计报告

上传人:huo****ian 文档编号:122666325 上传时间:2022-07-21 格式:DOC 页数:28 大小:374KB
收藏 版权申诉 举报 下载
语音信号ADPCM编解码实现课程设计报告_第1页
第1页 / 共28页
语音信号ADPCM编解码实现课程设计报告_第2页
第2页 / 共28页
语音信号ADPCM编解码实现课程设计报告_第3页
第3页 / 共28页
资源描述:

《语音信号ADPCM编解码实现课程设计报告》由会员分享,可在线阅读,更多相关《语音信号ADPCM编解码实现课程设计报告(28页珍藏版)》请在装配图网上搜索。

1、课程设计报告设计课题: ADPCM编解码器的实现 姓 名:专 业: 集成电路设计与集成系统 学 号:日 期指导教师:一:课程设计任务与要求。ADPCM编解码器的实现。m转为Verilog,使用Matlab和Modesim联合仿真验证二:系统设计原理。2.1 脉冲编码调制PCM脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程9。 抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号,抽样必须遵循奈奎斯特抽样定理。该模拟信号经过抽样后还应当包含原信号中所有信息,也

2、就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。抽样速率采用8KHZ。量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。量化误差:量化后的信号和抽样信号的差值。量化误差在接收端表现为噪声,称为量化噪声。 量化级数越多误差越小,相应的二进制码位数越多,要求传输速率越高,频带越宽。 为使量化噪声尽可能小而所需码位数又不太多,通常采用非均匀量化的方法进行量化。 非均匀量化根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔取得小,幅度大的区间量化间隔取得大。一个模拟信号经过抽样量化后,得到已量化的脉冲幅度

3、调制信号,它仅为有限个数值。编码,就是用一组二进制码组来表示每一个有固定电平的量化值。然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D。2.2 差分脉冲编码调制DPCM差分脉冲编码调制DPCM是利用样本与样本之间存在的信息冗余度(预测样值与当前样值之差)来代替样值本身进行编码的一种数据压缩技术10。差分脉冲编码调制可以实现在量化台阶不变(即量化噪声不变)的情况下,编码位数显著减少,信号带宽大大压缩。根据过去的样本去估算下一个样本信号幅度大小,这个值称为预测值,对实际信号值与预测值之差进行量化编码,从而就减少了表示每个样本信号的位数。差分脉冲编码的概念,如图2.

4、2中,差分信号d(k)是离散输入信号s(k)和预测器输出的估计值之差。此刻,是对S(k)的预测值,而不是过去样本的实际值。DPCM系统实际上就是对这个差值的d(k)进行量化编码,用来补偿过去编码中产生的量化误差。DPCM系统实际就是一个负反馈系统,采用这种结构可以避免量化误差的积累。重建新号是由逆量化器产生的量化差分信号,与对过去样本信号的估算值求和得到。他们的和,即作为预测器确定下一个信号估算值的输入信号。由于在发送端和接收端都使用相同的逆量化器和预测器,所以接收端的重建信号可以传送信号I(k)中获得。 图2.2 DPCM原理图在PCM中,每个波形样值都独立编码,与其他样值无关,样值的整个幅

5、值编码需要较多位数,比特率较高,数字化的信号带宽大。然而,大多数以奈奎斯特或更高速率抽样的信源信号在相邻抽样间表现出很强的相关性,利用信源的这种相关性,一种比较简洁的解决方案是对相邻样值的差值而不是样值本身进行编码。由于相邻样值的差值比样值本身小,可以用较少的比特数表示差值。如果将样值之差仍用N位编码传送,则DPCM的量化信噪比显然优于PCM系统。2.3 自适应差分脉冲编码调制ADPCM前述概要地介绍了DPCM的工作原理。但为了能进一步提高DPCM方式的质量还需要采取一些辅助措施。即自适应措施。语声信号的变化是因人、因时而不同的,为了能在相当宽的变化范围内仍能得到最佳的性能,DPCM也需要自适

6、应系统,自适应预测和自适应量化,称为ADPCM。图2.3所示为采用固定预测并带有自适应量化的ADPCM系统。图中多电平量化与调制器用Q表示,积分器用P组成的预测系统表示。自适应量化的基本思想是:让量化间隔的变化,与输入信号方差相匹配,即量化器阶距随输入信号的方差而变化,它正比于量化器输入信号的方差。现有的自适应量化方案有两类:一类是其输入幅度或方差由输入信号本身估算,这种方案叫前馈自适应量化器。另一类是其阶距根据量化器的输出来进行自适应调整,或等效的用输出编码信号来进行自适应调整,这类自适应量化方案称为反馈自适应量化器。无论是采用前馈式还是反馈式,自适应量化都可以改善动态范围及信噪比。反馈控制

7、的主要优点是量化阶距的信息由码字序列提取,因此不需要传输或存储额外的阶距信息。但是在重建信号输出时,传输中的误码对质量的影响比较敏感,在前馈控制时,要求码字和阶距一起,用来得出信号。这样是增加了其复杂程度,但它有可能在差错控制保护下传输阶距从而大大改善高误码率传输时的输出信号质量。不论是前馈型还是反馈型自适应量化都可以希望得到超过相同电平数固定量化的1020dB的改善。为了进一步有效地克服语声通信过程中的不平稳行,要考虑量化器和预测器都适应匹配于语声信号瞬时变化,又设计了同时带有自适应量化和自适应阶距的ADPCM系统。自适应量化和自适应预测都可以是前馈型的或是反馈型的。对ADPCM来说,预测系

8、统的预测系数的选择是很重要的。如果信号的样值用S(n)表示,的样值用表示,的样值用表示,则当采用线性预测,即是以前量化值的线性组合时,其预测值为 (2.3) 式中P为预测器的阶数。要使预测系数自适应,通常是假定短时间内语声信号的参量保持恒定的。并使短时间内的均方预测误差为最小值来选择预测系数11。(a)编码器(b)解码器图2.3 ADPCM原理图2.4 编码过程编码的核心思想是对输入信号与预测信号差值进行编码和预测,采用的是非均匀量化,为了使不同幅值的信号信噪比接近一致,从而避免大幅值语音信号信噪比大而小幅值语音信号信噪比小12。ADPCM编码过程如图3.1所示输示。输入Si是一个线性16bi

9、t补码PCM数据,其范围在32767到-32767之间。如果是非线性的PCM则之前先加个线性转化模块使得输入的数据是线性的。经过预测器出来的预测采样值Sp=,与线性输入Si的差值为d,我们就可以在这个差值上进行处理。接下来量化器模块对有符号的4位编码数据I,由于是带符号的所以这个数据的表示范围在7到-7之间,最高位为符号位。 具体实现过程如下,首先计算16位的PCM值的当前采样值Si和上一时刻预测采样值之间的差值d,这个差值的量化编码即输出4位ADPCM值I(k)。在算法实现中,定义一个结构变量存储预测采样Sp和量化步长索引,并制定了两个表。一个表为索引调整表,其输入为差值量化编码I(k),用

10、来更新步长索引。另一个表为步长调整表,其输入为步长索引,输出为步长q。编码时,首先用上一个采样点的步长索引查步长调整表求出步长q。如果当前采样值Si和采样预测值之间的差值d为负,则I的D3位置1。如果该差值绝对值大于步长q,则I的D2位置1。如果d-q大于q/2,则I的D1位置1,如果d-q-q/2大于q/4,则I的D0位置1。如果以上条件不满足,则相应位置0。这样就确定了编码值I(k)。然后编码值I(k)作为索引调整表的输入,查表输出索引调整,并和结构变量中原步长索引相加,产生新的步长索引,在下一个采样值的编码中使用。编码输出I后,编码还需要重复进行和解码完全一样的计算过程,求出新的预测采样

11、值Sp。图3.1 G.721协议编码概括起来其主要步骤如下 计算Si与自适应预测器输出的差值; 通过自适应量化模块对进行量化,得到ADPCM码字I(k); 通过自适应反量化模块对I(k)计算得到量化差分预测信号; 根据重建信号和更新预测滤波器系数; 利用新的系数,计算得到,重复上述5个步骤,压缩下一个语音采样数据。图3.2 G.721协议解码2.5 解码过程解码是编码的逆过程,ADPCM的解码过程如图3.2所示。解码输入即编码输出I,逆量化器将I逆量化成差值dq。差值dq与预测采样Sp相加得到解码输出Sr。解码过程同编码过程中求预测采样的原理是一样的,当编码端的Sr能很好的跟踪上Si时,解码端

12、的Sr也能同样再现Si。这里涉及算法本身的时延和实现平台、实现方法的实时性等因素。 解码时首先通过步长索引查步长调整表得到量化步长,差值量化编码I经逆量化器得到语音差值dq,这是求I的逆过程;然后与前次预测值一起重建当前语音信号Sr,最后用固定预测Sp=Sr,更新预测采样Sp,用I更新量化步长索引值131415。其主要步骤如下: 通过自适应逆量化器和自适应预测得到和。 通过同相加便得到编码输出Sr。 采用与编码器相同的方法更新预测滤波器系数,。 采用与编码器相同的方法更新步长索引表,得到新的 利用新的滤波器系数,重复上述5个步骤,解码下一个I(k)。三:测试与验证主要采用Matlab来验证AD

13、PCM的结果,以及和Modlsim来联合仿真。而我们利用 FPGA 资源消耗低、灵活性强、速度快、性价比突出等优势,使用 VerilogHDL 硬件描述语言设计并实现了ADPCM 编/解码器, 运用Modelsim 仿真测试,来确保编/解码器的正确性和稳定性, 整个设计充分利用了 FPGA 芯片的资源、硬件结构简单、可靠性高,具有良好的应用前景。3.1Matlab仿真根据G.721协议,再由上述原理编写ADPCM的编解码器C代码,将代码导入到matlab中17。我们用一段类似语音的正弦波取200点来验证波形。其代码如下:t=0:pi/50:2*pi;y=sin(t); adpcm_y=adpc

14、m_encoder(y); Y=adpcm_decoder(adpcm_y);其中adpcm_encoder( )为ADPCM的编码模块,代码见附录1,而adpcm_decoder( )为ADPCM的解码模块,其代码也见附录1。y为输入波,adpcm_y为ADPCM编码波形,Y为解码输出波形则输入波形如图。图 输入波形ADPCM编码波形如图。图4.2.2 ADPCM编码波形ADPCM解码波形如图。图4.2.3 ADPCM解码输入与输出波形的差值如图。图 输入与输出差值波形可以看出开始差距比较大后来慢慢便开始减小,是因为开始是初始化预测值我们无法知道,所以便设定为预测值为0。3.2 Models

15、im仿真本设计采用verilog语言验证编解码器功能的实现18。先用matlab生成一个类似于正弦波的图形来模拟为输入的语音波形,并将其值记录在一个名为“sin”的.txt文件,然后送入到测试文件中my_mem保存起来,2个时钟上升沿后便把my_mem保存的数据一一送入到编码器的PCMIN输入端,然后modelsim仿真结果如下图。仿真测试verilog代码和编码器的代码见附录2。图4.4.1输入波形及编码波形同理我让从编码器输出的编码值也保存在名为“code”的.txt文件中,并设计了一个my_mem的寄存器也来保存code.txt中的编码值,在经过2个时钟下降沿后便把my_mem中保存的数

16、据一一送到解码器的CODEIN输入端,按照这种方法,每隔2个时钟下降沿便将my_mem中数据输入一个,最后modelsim仿真数据如图。其中verilog的解码器代码和测试文件的代码见附录2。图 解码输出波形经过解码后波形与输入波形相似,当系统稳定后,差异便慢慢减少,基本保持了语音的质量。四:总结与展望通过matlab仿真和modelsim的仿真,能够证明此次设计基本符合语音编解码的期望和结果。本次课题主要研究ADPCM编解码器实现,从而展开的工作。其主要的工作是根据文献资料调研ADPCM编解码器的原理和设计方法。利用Matlab和C语言实现ADPCM编解码器。利用verilog设计ADPCM

17、编解码器的硬件电路,通过对modelsim仿真测试激励文件的描写和verilog编程语言的学习,对设计的verilog模型进行时序仿真验证。综合设计的verilog模型并生成FPGA文件。通过此次课题让我对ADPCM编解码有了一定的了解,同时也对其使用的仿真软件有了更加熟悉的运用,让我对verilog硬件语言有了更加深刻的认识,为我积累了许多宝贵的经验。附 录附录1:编码代码function adpcm_y = adpcm_encoder(raw_y)IndexTable = -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8; Ste

18、pSizeTable = 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499

19、, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767;prevsample = 0;previndex = 1; Ns = length(raw_y);n = 1; raw_y = 32767 * raw_y; while (n = 0) code = 0; else code = 8; diff =

20、 -diff; end tempstep = step; if (diff = tempstep) code = bitor(code, 4); diff = diff - tempstep; end tempstep = bitshift(tempstep, -1); if (diff = tempstep) code = bitor(code, 2); diff = diff - tempstep; end tempstep = bitshift(tempstep, -1); if (diff = tempstep) code = bitor(code, 1); end diffq = b

21、itshift(step, -3); if (bitand(code, 4) diffq = diffq + step; end if (bitand(code, 2) diffq = diffq + bitshift(step, -1); end if (bitand(code, 1) diffq = diffq + bitshift(step, -2); end if (bitand(code, 8) predsample = predsample - diffq; else predsample = predsample + diffq; end if (predsample 32767

22、) predsample = 32767; elseif (predsample -32768) predsample = -32768; end index = index + IndexTable(code+1); if (index 89) index = 89; end prevsample = predsample; previndex = index; adpcm_y(n) = bitand(code, 15); n = n + 1;End解码模块function raw_y = adpcm_decoder(adpcm_y)IndexTable = -1, -1, -1, -1,

23、2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8; StepSizeTable = 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 128

24、2, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767; prevsample = 0;previndex = 1; Ns = length(adpcm_y);n = 1; while (n 32767) predsa

25、mple = 32767; elseif (predsample -32768) predsample = -32768; end index = index + IndexTable(code+1); if (index 89) index = 89; end prevsample = predsample; previndex = index; raw_y(n) = predsample / 32767; n = n + 1;end附录2编码模块module ADPCMEncoder(RST,EN,CLK,PCMIN,CODEOUT);input RST;input EN;input CL

26、K;input signed 15:0 PCMIN;output3:0 CODEOUT;reg3:0 CODEOUT;reg tai;reg sb;reg signed15:0 predsample,diff,prevsample;reg15:0 code;reg signed7:0 index;reg start;initialbegintai = 0;prevsample = 0;start = 0;endalways (posedge CLK)beginif(EN = 0)beginstart = 1;endif(RST=0)begintai = 0;prevsample = 0;ind

27、ex = 0;endif(start=1)beginif(!tai)beginpredsample = PCMIN;diff=predsample-prevsample; if (diff=StepSizeTable(index)begindiff = diff - StepSizeTable(index);code2 = 1;endelsecode2 = 0;diff = diff=StepSizeTable(index)begindiff = diff - StepSizeTable(index);code1 = 1;endelsecode1 = 0;diff = diff=StepSiz

28、eTable(index)begincode0 = 1;endelsecode0 = 0;endelsebeginCODEOUT0 = code0;CODEOUT1 = code1;CODEOUT2 = code2;CODEOUT3 = sb;index =index + IndexTable(code); if (index88) index=88;prevsample=predsample;start = 0;endtai = tai;endendfunction7:0 IndexTable;input2:0 index_a;case(index_a)3d00:IndexTable = 8

29、hFF;3d01:IndexTable = 8hFF;3d02:IndexTable = 8hFF;3d03:IndexTable = 8hFF;3d04:IndexTable = 2;3d05:IndexTable = 4;3d06:IndexTable = 6;3d07:IndexTable = 8;default:IndexTable = 8hFF;endcaseEndfunctionfunction15:0 StepSizeTable;input7:0 Index;case(Index)8d00:StepSizeTable= 16d7;8d01:StepSizeTable= 16d8;

30、8d02:StepSizeTable= 16d9;8d03:StepSizeTable= 16d10;8d04:StepSizeTable= 16d11;8d05:StepSizeTable= 16d12;8d06:StepSizeTable= 16d13;8d07:StepSizeTable= 16d14;8d08:StepSizeTable= 16d16;8d09:StepSizeTable= 16d17;8d10:StepSizeTable= 16d19;8d11:StepSizeTable= 16d21;8d12:StepSizeTable= 16d23;8d13:StepSizeTa

31、ble= 16d25;8d14:StepSizeTable= 16d28;8d15:StepSizeTable= 16d31;8d16:StepSizeTable= 16d34;8d17:StepSizeTable= 16d37;8d18:StepSizeTable= 16d41;8d19:StepSizeTable= 16d45;8d20:StepSizeTable= 16d50;8d21:StepSizeTable= 16d55;8d22:StepSizeTable= 16d60;8d23:StepSizeTable= 16d66;8d24:StepSizeTable= 16d73;8d2

32、5:StepSizeTable= 16d80;8d26:StepSizeTable= 16d88;8d27:StepSizeTable= 16d97;8d28:StepSizeTable= 16d107;8d29:StepSizeTable= 16d118;8d30:StepSizeTable= 16d130;8d31:StepSizeTable= 16d143;8d32:StepSizeTable= 16d157;8d33:StepSizeTable= 16d173;8d34:StepSizeTable= 16d190;8d35:StepSizeTable= 16d209;8d36:Step

33、SizeTable= 16d230;8d37:StepSizeTable= 16d253;8d38:StepSizeTable= 16d279;8d39:StepSizeTable= 16d307;8d40:StepSizeTable= 16d337;8d41:StepSizeTable= 16d371;8d42:StepSizeTable= 16d408;8d43:StepSizeTable= 16d449;8d44:StepSizeTable= 16d494;8d45:StepSizeTable= 16d544;8d46:StepSizeTable= 16d598;8d47:StepSiz

34、eTable= 16d658;8d48:StepSizeTable= 16d724;8d49:StepSizeTable= 16d796;8d50:StepSizeTable= 16d876;8d51:StepSizeTable= 16d963;8d52:StepSizeTable= 16d1060;8d53:StepSizeTable= 16d1166;8d54:StepSizeTable= 16d1282;8d55:StepSizeTable= 16d1411;8d56:StepSizeTable= 16d1552;8d57:StepSizeTable= 16d1707;8d58:Step

35、SizeTable= 16d1878;8d59:StepSizeTable= 16d2066;8d60:StepSizeTable= 16d2272;8d61:StepSizeTable= 16d2499;8d62:StepSizeTable= 16d2749;8d63:StepSizeTable= 16d3024;8d64:StepSizeTable= 16d3327;8d65:StepSizeTable= 16d3660;8d66:StepSizeTable= 16d4026;8d67:StepSizeTable= 16d4428;8d68:StepSizeTable= 16d4871;8

36、d69:StepSizeTable= 16d5358;8d70:StepSizeTable= 16d5894;8d71:StepSizeTable= 16d6484;8d72:StepSizeTable= 16d7132;8d73:StepSizeTable= 16d7845;8d74:StepSizeTable= 16d8630;8d75:StepSizeTable= 16d9493;8d76:StepSizeTable= 16d10442;8d77:StepSizeTable= 16d11487;8d78:StepSizeTable= 16d12635;8d79:StepSizeTable

37、= 16d13899;8d80:StepSizeTable= 16d15289;8d81:StepSizeTable= 16d16818;8d82:StepSizeTable= 16d18500;8d83:StepSizeTable= 16d20350;8d84:StepSizeTable= 16d22385;8d85:StepSizeTable= 16d24623;8d86:StepSizeTable= 16d27086;8d87:StepSizeTable= 16d29794;8d88:StepSizeTable= 16d32767;default:StepSizeTable= 16d7;

38、endcaseendfunctionendmodule解码模块module ADPCMDecoder(RST,EN,CLK,CODEIN,PCMOUT);input RST;input EN;input CLK;input3:0 CODEIN;output signed15:0 PCMOUT;reg signed15:0 PCMOUT;reg signed 15:0 de_predsample,diffq;reg signed 16:0 de_prevsample;reg signed 16:0 de_diffq;reg signed 7:0 de_index;reg state;reg2:0

39、 de_code;reg sb;reg start;initialbegin state = 0; de_index = 0;endalways (negedge CLK)begin if(EN = 0) begin start = 1; end if(RST=0) begin de_index = 0; de_predsample = 0; end if(start=1) begin if(!state) begin de_code0 = CODEIN0; de_code1 = CODEIN1; de_code2 = CODEIN2; sb = CODEIN3; de_diffq = (de

40、_step_table(de_index)*de_code)2)+(de_step_table(de_index) 3); end else begin if(de_diffq16) diffq = 32767; else diffq = de_diffq15:0; if(sb) de_prevsample = de_predsample-diffq; else de_prevsample = de_predsample+diffq; if (de_prevsample32767) de_prevsample=32767; else if (de_prevsample-32768) de_pr

41、evsample=-32768; de_predsample= de_prevsample15:0; PCMOUT = de_predsample; de_index=de_index+de_index_adjust(de_code); if (de_index88) de_index=88; start = 0; end state = state; endendfunction7:0 de_index_adjust;input2:0 de_index_a;case(de_index_a)3d00:de_index_adjust = 8hFF;3d01:de_index_adjust = 8

42、hFF;3d02:de_index_adjust = 8hFF;3d03:de_index_adjust = 8hFF;3d04:de_index_adjust = 2;3d05:de_index_adjust = 4;3d06:de_index_adjust = 6;3d07:de_index_adjust = 8;default:de_index_adjust = 8hFF;endcaseendfunctionfunction15:0 de_step_table;input7:0 table_de_index;case(table_de_index)8d00:de_step_table =

43、 16d7;8d01:de_step_table = 16d8;8d02:de_step_table = 16d9;8d03:de_step_table = 16d10;8d04:de_step_table = 16d11;8d05:de_step_table = 16d12;8d06:de_step_table = 16d13;8d07:de_step_table = 16d14;8d08:de_step_table = 16d16;8d09:de_step_table = 16d17;8d10:de_step_table = 16d19;8d11:de_step_table = 16d21

44、;8d12:de_step_table = 16d23;8d13:de_step_table = 16d25;8d14:de_step_table = 16d28;8d15:de_step_table = 16d31;8d16:de_step_table = 16d34;8d17:de_step_table = 16d37;8d18:de_step_table = 16d41;8d19:de_step_table = 16d45;8d20:de_step_table = 16d50;8d21:de_step_table = 16d55;8d22:de_step_table = 16d60;8d

45、23:de_step_table = 16d66;8d24:de_step_table = 16d73;8d25:de_step_table = 16d80;8d26:de_step_table = 16d88;8d27:de_step_table = 16d97;8d28:de_step_table = 16d107;8d29:de_step_table = 16d118;8d30:de_step_table = 16d130;8d31:de_step_table = 16d143;8d32:de_step_table = 16d157;8d33:de_step_table = 16d173

46、;8d34:de_step_table = 16d190;8d35:de_step_table = 16d209;8d36:de_step_table = 16d230;8d37:de_step_table = 16d253;8d38:de_step_table = 16d279;8d39:de_step_table = 16d307;8d40:de_step_table = 16d337;8d41:de_step_table = 16d371;8d42:de_step_table = 16d408;8d43:de_step_table = 16d449;8d44:de_step_table

47、= 16d494;8d45:de_step_table = 16d544;8d46:de_step_table = 16d598;8d47:de_step_table = 16d658;8d48:de_step_table = 16d724;8d49:de_step_table = 16d796;8d50:de_step_table = 16d876;8d51:de_step_table = 16d963;8d52:de_step_table = 16d1060;8d53:de_step_table = 16d1166;8d54:de_step_table = 16d1282;8d55:de_

48、step_table = 16d1411;8d56:de_step_table = 16d1552;8d57:de_step_table = 16d1707;8d58:de_step_table = 16d1878;8d59:de_step_table = 16d2066;8d60:de_step_table = 16d2272;8d61:de_step_table = 16d2499;8d62:de_step_table = 16d2749;8d63:de_step_table = 16d3024;8d64:de_step_table = 16d3327;8d65:de_step_table

49、 = 16d3660;8d66:de_step_table = 16d4026;8d67:de_step_table = 16d4428;8d68:de_step_table = 16d4871;8d69:de_step_table = 16d5358;8d70:de_step_table = 16d5894;8d71:de_step_table = 16d6484;8d72:de_step_table = 16d7132;8d73:de_step_table = 16d7845;8d74:de_step_table = 16d8630;8d75:de_step_table = 16d9493

50、;8d76:de_step_table = 16d10442;8d77:de_step_table = 16d11487;8d78:de_step_table = 16d12635;8d79:de_step_table = 16d13899;8d80:de_step_table = 16d15289;8d81:de_step_table = 16d16818;8d82:de_step_table = 16d18500;8d83:de_step_table = 16d20350;8d84:de_step_table = 16d22385;8d85:de_step_table = 16d24623

51、;8d86:de_step_table = 16d27086;8d87:de_step_table = 16d29794;8d88:de_step_table = 16d32767;default:de_step_table = 16d7;endcaseendfunctionEndmodule毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供

52、过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任

53、何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按

54、教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!