版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 JISHOUUNIVERSITY专业课课程论文题题 目:目:IP 电话实时通信的实现作作 者:者:学学 号:号:所属学院:所属学院:信息科学与工程学院专业年级:专业年级:09 级计科 3 班总总 评评 分:分:完成时间:完成时间:吉首大学信息科学与工程学院吉首大学信息科学与工程学院 IP 电话实时通信的实现(吉首大学信息科学与工程学院,湖南 吉首 416000)摘 要随着网络技术的不断发展,最近几年,IP 电话技术突飞猛进,已从当初 PC 到 PC 的机连接方式发展到 IP 电话网关方式,通过 IP 电话网关可以将 PBX 与因特网连接起来,从而实现普通话机通过因特网进行通信。因此,IP 电
2、话网关是近年来计算机和通信领域中研究的一个热点。IP 电话网关的一个最主要性能指标是它的处理密度(即能同时算是的话路数)。而 IP 电话网关的处理密度主要取决于它所使用的语音编解码器处理一帧数据的延迟大小。目前,IP 电话所遵循的标准是 H.323,而 H.323 标准首选语音编码器是 ITU-T G.729.A。ITU-T G.729.A 是用于语音和其它声音信号的压缩编解码算法建议,它是 G.729 的简化版本,编码速率为 8Kbps,并且有很高的语音质量。关键词:ITU-T G.729.A IP 电话 编码器Implementation of real-time communicatio
3、n IP telephoneWuxin(College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000)Abstract With the continuous development of network technology, in recent years, IP phone technology make a spurt of progress, from the original PC to PC machine connection to IP phone gateway, v
4、ia the IP telephone gateway can be PBX connected with the Internet, thereby realizing the Putonghua machine via the Internet in communication. Therefore, IP telephone gateway is in recent years in the field of computer and communications research hot spot. The IP telephony gateway to one of the most
5、 important performance index is its treatment of the density ( which can also be word number ). While the IP telephone gateway processing density depends mainly on the speech codec processing data of a frame delay size. At present, IP telephone follow the standard is H.323, and the H.323 standard IT
6、U-T G.729.A speech coder is preferred. ITU-T G.729.A is used for voice and other sound signal compression coding and decoding algorithm is proposed, which is a simplified version of G.729, coding rate of 8Kbps, and has a very high voice Quality. Key words:ITU-T G.729.A IP phone encoder目 录第一章引言 .11.1
7、 课题背景及意义.11.2 课题研究现状.11.3 研究内容.21.4 论文组织方式.2第二章G.729 编解码器实现的关键技术 .32.1 G.729 协议编解码算法介绍.32.1.1G.729 编码算法介绍 .32.2 G.729 编解码器的实现关键技术.52.2.1 ITU-T G.729.A 编解码器实现的硬件平台 .52.2.2 ITU-T G.729.A 软件模块的设计 .52.2.3 ITU-T G.729.A 标准在 TMS320C6201 上实现的关键技术 .6第三章需求分析.73.1 功能需求.73.2 性能要求.8第四章概要设计.84.1 体系结构设计.94.2 数据结构
8、设计.9第五章详细设计.115.1 系统功能模块设计.115.1.1 音频输入输出的实现.125.1.2 数据的压缩与排序.145.1.3 传送和接收.165.2 用户界面设计.17第六章测试及实现结果分析.19结束语.19参考文献.20IP 电话实时通信的实现第一章 引言1第一章第一章引言引言1.1 课题背景及意义IP(Internet Protocol)电话是一种数字电话,是技术创新的一种通信服务业务。它把语音、压缩编码、打包分组、分配路由、存储交换、解包解压等交换处理在IP网或互联网上实现语音通信。它促进了网络资源利用,降低语音业务成本。因此在全球范围内得到了迅速的发展, 。IP电话的产
9、生Internet商业化以后,在全世界,特别是发达国家迅速发展起来。在一些国家(如美国)本地电话Internet接入采用包月制,不限时限量,因此Internet是近乎免费的(Free)的,人们都希望能通过这近乎免费的网络进行传统的电话和传真服务。1995年2月以色列VocalTec公司研制出可以通过Internet网打长途电话的软件产品Internet Phone。用户只要在多媒体PC机上安装该软件,就可以通过Internet网和任何地方安装同样软件的联机用户进行通话。这项技术上的突破引起全世界的瞩目,其背后的无限商机也使许多公司进行此项技术的研究,从而使IP电话技术得到迅速发展,人们把这种在
10、Internet上实现电话业务称为Internet电话,应该说是IP电话的雏形。经过五年的发展,IP电话成为信息技术进步带来的一项新型电话业务在全世界开展,并对传统电话业务形成越来越大的威胁。IP电话从当初的PC到PC发展到今天的PC到PC、PC电话、电话到电话等多种业务形式,但不论是现在还是将来,IP电话可以说是当今世界上发展最快、普及最快的一门应用服务技术之一,也是计算机网络界关注的热点之一。1.2 课题研究现状H.323是IP电话所遵循的标准,而H.323标准首选语音编码器是ITU-T G.729.A。ITU-T G.729.A标准采用一种称为共轭结构代数码本激励线性预测(Conjuga
11、te Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法来对语音信号进行编码。在开始编码之前,先要对输入的模拟信号进行电话带滤波,然后以8kHz频率对其进行采样,再将其转换为16位线性PCM码,作为编码器的输入。编码器处理语音的单位是帧,1帧为10毫秒语音,包括80个声音样本(采样频率为8kHz)。编码器对每一帧语音信号进行分析,抽取出其中的CPLD模型的参数(线性预测滤器参数),自适应和固定码本索引和IP 电话实时通信的实现第五章 详细设计2增益),对这些参数进行编码和传送。但是该编码器算法复杂,一帧语音处理延迟较大,
12、很大程度上影响了IP电话网关处理密度。 1.3 研究内容G.729 协议使用的算法是共轭结构的算术码本激励线性预测(CS-ACELP),它基于CELP 编码模型。由于 G.729 编解码器具有很高的语音质量和很低的延时,被广泛地应用在数据通信的各个领域,如 IP phone 和 H.323 网上多媒体通信系统等20 世纪 90 年代以来,以 Internet 为代表的计算机网络技术发展突飞猛进,促进了计算机网络在社会各个领域的广泛应用,而针对 G.729 的研究和优化一直从未停息。例如:为了提高 IP 电话网关的处理密度,在实现 ITU-T G.729.A 语音编解码器时,采用了目前性能最好的
13、 DSP,即 TMS320C6201;针对 TMS320C6201 并行性和流水等特点,归纳出了一系列减少编解码器处理延迟的优化方法本文是基于 G.729.A 协议,采用 C+语言实现实时通信,并未针对 G.729.A 协议进行有话改进,因为本人技术,只是领域达不到那么高的层次,在结果中会对本人基于G.729.A 实现的实时通信和从网络上找到的基于 TMS1.4 论文组织方式 首先,本论文从目前 IP 电话的产生开始,详细研究了本课题的背景以及意义,由于目前我国的通信分别掌控的移动,联通,电信三大巨头手中,而通信费用一直是国人所普遍关注的话题,虽然目前位置,通信费用有所改善,但依旧是一个令人无
14、奈的地方,所以本人想就这个现状,深入了解 IP 电话的实现原理,实现机制,能够在未来开发属于自己的网络电话,做到真正的零费用。其次,在对本论文的背景有所了解的情况下,对本课题所必须的 ITU-T G.729.A 编解码器实现的关键技术进行了介绍,主要是 G.729.A 协议编解码算法介绍,G.729.A 编解码器的实现。最后,在对所必须得基础知识有所了解的情况下,按照各模块的功能,分别详细介绍了各个功能的实现过程。第二章第二章G.729G.729 编解码器实现的关键技术编解码器实现的关键技术IP 电话实时通信的实现第五章 详细设计32.1 G.729 协议编解码算法介绍 2.1.1G.729
15、编码算法介绍电话线路上的模拟语音信号,经话路带宽滤波(符合 ITU-T G.712 建议)后,被 8kHz采样,量化成 16bit 线性 PCM 数字信号输入到编码器。该编码器是基于线性预测分析合成技术,尽量减少实际语音与合成语音之间经听觉加权后差分信号的能量为准则来进行编码的。编码器的结构主要部分有:线性预测分析和 LPC 系数的量化;开环基音周期估计;自适应码本搜索;固定码本搜索;码本增益量化。下面分别描述这五部分的主要技术。线性预测分析与 LPC 系数的量化首先对信号进行加线性预测分析窗,分析窗由两部分组成。第一部分是半个汉明窗,第二部分是四分之一个余弦信号。将加窗后的语音信号通过 Le
16、vinsonDurbin 算法获得线性预测滤波器系数 ai i=1.10。由于线谱对参数比线性预测系数具有更好的内插特性和量化特性,G.729 将 LPC 参数转换成相应的线谱对参数,最后对线谱对参数进行量化。开环基音分析为了减少自适应码本搜索的复杂度,需要计算开环基音 Top,使自适应码本搜索在开环基音值附近进行。基音值的范围在 18145 个样本点之间。自适应码本搜索G.729 对每个子帧进行闭环基音搜索,它通过最小化原始语音信号和重构语音信号的加权均方误差来进行闭环基音搜索。对子帧的闭环基音 T1 的搜索是局限在开环基音 Top的一个小范围内,对子帧的闭环基音 T2 的搜索是局限在闭环基
17、音的一个小范围内。这样可以减少基音搜索的复杂度。固定码本搜索IP 电话实时通信的实现第五章 详细设计4G.729 固定码本矢量含有四个非脉冲,每个脉冲的幅度要可以是+1 或-1。通过最小化加权语音信号和加权重构语音信号的均方误差来进行固定码本的搜索。增益量化G.729.A 对自适应码本增益和固定码本增益采用二级共轭结构码本进行矢量量化。在码本搜索时,采用预搜索策略,使得运算量只为全搜索算法的 1/4。 2.1.2 G.729解码算法介绍G.729 的解码也是按帧进行的,主要是对符合 G.729 协议的码流进行解码,得到相应的参数,根据语音产生的机理,合成语音。解码的方框图如图所示,其主要部分为
18、:参数解码;后滤波处理。G.729 解码过程如下。参数解码首先解码得到线谱对参数,并将线谱对参数转换为线性预测系数。然后解码出基音周期,获得自适应码本矢量 V(n)。解码出固定码本矢量的四个脉冲的位置和符号,计算出固定码本矢量 c(n)。解码出固定本预测增益 gc和固定码本增益,接着得到激励信号,n=039。最后将激励信号u(n)输入到线性预测合成滤波器中,计算出重构语音。后滤波处理后滤波处理主要是自适应后滤波。自适应后置滤波器是由三个滤波器级连而成:长时后置滤波器 Hp(z),短时后置滤波器 Hf(z),频谱倾斜补偿滤波器 Ht(z),后面接着进行一个自适应增益控制过程。后置 滤波器的系数每
19、一个子帧更新一次。后置滤波能够有效地改善合成出的语音质量。2.2 G.729 编解码器的实现关键技术 2.2.1 ITU-T G.729.A 编解码器实现的硬件平台 ITU-T G.729.A 编解码器实现平台是笔者开发的一种集成式 IP 电话网关。这种集成式IP 电话实时通信的实现第五章 详细设计5IP 电话网关的设计思想是以 PC 机为基础,集成了市场通用板卡,如 LSI/C6200DSP 资源卡、Dialogic 的语音卡和网关等,并以这些板卡为硬件平台,按照相关协议,开发出一套IP 网关软件。集成式 IP 电话网关的硬件基本结构如图 3 所示。其中 G.729.A 编解码器是由LSI/
20、C6200 资源卡上的 TMS320C6201 DSP 来实现。TMS320C6201 DSP 是美国 TEXAS INSTRUMENT 公司生产的目前处理速度最快的定点数字信号处理器,TMS320C6201 DSP 采用 VLIW(Very Long Instruction Word)体系结构,其工作频率最高可达 200MHz,内部有 1600MIPS4。另外,TMS320C6201 DSP 分别提供了 64KB 的内部程序 RAM 和数据 RAM,片外存储器可扩展到 4GB,可连接SDRAM、SBSRAM 和 Flash Memory。TMS320C6201 DSP 还提供了丰富的外围电路
21、接口,如:Scbus 语音总线、MVIP 语音总线、HOST 接口以及 JTAG 口等。 2.2.2 ITU-T G.729.A 软件模块的设计 G.729.A 编解码器运行的硬件平台是 TMS320C6201DSP,支持 SPOX。SPOX 是一种功能很强的实时操作系统。在 SPOX 操作系统的调度下,可对多路语音进行适时的语音压缩和解码。G.729.A 编解码器件主要由调度及命令解释模块、G.729.A 数据压缩与解压缩模块和接口模块三部分组成。 (1)调度及命令解释模块 该模块主要用于解释 HOST 发来的各种命令,如发送或接收编解码数据,查询编解码状态以及启动、停止编解码操作等,该模块
22、不直接与 HOST 打交道,而是以 SPOX 提供的服务方式,通过接口功能模块间接地实现与 HOST 之间数据交换。同时在 SPOX 的支持下,完成对多路语音编解码的适时调度。 (2)G.729.A 数据压缩与解压缩模块 该模块是 ITU-T G.729.A 编解码器的核心模块,在很大程序上影响编解码的性能。该模块实现了 ITU-T G.729.A 全部功能。该部分已单独形成一个 TMS320C6201 函数库,可与其他任何部分连接。 (3)接口模块IP 电话实时通信的实现第五章 详细设计6 该模块主要实现 TMS320C6201 与 HOST 以及与语音卡之间的数据交换,因此该模块分成两部分
23、。一部分主要负责 TMS320C6201 DSP 与语音卡之间的数据传输,它负责不断地将语音卡采取的语音数据通过语音总线(如 SCbus) ,采取等时通信方式送入到LSI/PCI6200 资源卡 RAM 中,或者是将编解码器解码后的数据经 SCbus 总线送给语音卡。另一部分主要负责 TMS320C6201 DSP 与 HOST 之间的数据交换,一方面要将压缩后的语音信号由 PCI 总线送往 HOST;另一方面将 HOST 解包的码流分类后读入编解码器。编解码器与 HOST 之间的数据交换采用中断方式进行同步。 2.2.3 ITU-T G.729.A 标准在 TMS320C6201 上实现的关
24、键技术 处理密度是衡量 IP 电话网关性能好坏的一个重要指标。而一个 IP 电话网你在硬件平台确定的情况下,其处理密度主要取决于它所采用的编解码器的语音编码处理延迟,即代码的执行速度。如何提高 G.729.A 语音编码的执行速度是 G.729.A 编解码器实现的关键技术问题之一。这此,归纳出一系列编程技巧和优优方法,较好地解决了这一难题。 (1)G.729.A 标准中规定的算法都是基本算法。因此,在实现时,可以用快速算法。例如,相关系数的计算,在 G.729.A 标准中使用一种最基本的计算方法,如果采用快速的傅里叶变换技术或采用分解因子的计算方法,就可以加快计算速度。 (2)算法中有很多 FI
25、R 和 IIR 运算,如:共振峰滤波器、听觉加权滤波器、联合滤波器等,在设计这些滤波器时,使用较大数组来放滤波器的系数。这样,每计算一次输出,不需系数更新移位,从而可以减少内存操作次数,因此可以通过牺牲存储器空间来提高代码的执行速度。如:共振峰滤波器是十阶滤波器,常规的实现方法是设置一个长度为 10 元素的一维数组来保存最近的 10 个共振峰样本点。滤波器每输出一个样本点,该数组就需更新一次。对于一个子帧 40 个样本点,就需进行 40 次更新操作。如设置长度为 70 元素的一组数组,就可以免去更新操作。可以很大程度地操作代码的运行速度。 (3)多使用指针,尽量减少变量之间的反复拷贝操作。 (
26、4)用查询静态表的方法来代替动态的计算,从而减少计算延迟。例如,在设计 cos()函数时,程序在初始化时就生成一个 512 项的 cos()函数表。当需要计算 cos()函数值时,可以采用查表方式来代替动态计算。 (5)内存单元的合理分配。TMS320C6201 DS 的片内存储器有 64KB 数据存储器。由于 TMS320C6201 从片内存储器读入一个字比从片外存储器读入一个字快 14 倍,因此在编程时,尽量将经常使用的数据分配在片内存储器中。 (6)G.729.A 在 TMS320C6201 上定点实现时,数据精度也是一个关键问题。在定点信号处理芯片上实现某些浮点算法时,可以采取定点数来
27、表示浮点数,这样可以加快运行速度,但可能导致运算精度不够。解决的方法是在精度要求比较高的地方,可以将计算的中间变量用 32 位表示,甚至用 40 位表示。 (7)充分利用 TMS320C6201 的编译器和优化工具来优化 C 和线性汇编代码,并合理地选择优化参数。有关速度的优化参数是:-o3、-pm、-mt、mi 等。并尽量用TMS320C6201 的线性汇编或汇编语音来实现 G.729.A 编解码器的算法。 (8)充分利用 TMS320C6201 的特点来编写代码。如流水功能,8 个功能单元并行操作功能,32 位字读写功能以及 Intrinsics 的使用等,例如:对多重循环,如最内层循环次
28、数少而较简单,可把最内层循环展开,以便外循环做流水线;对一些简单循环而前后没有因果IP 电话实时通信的实现第五章 详细设计7关系,合并这些循环也有利于做流水线。第三章第三章需求分析需求分析3.1 功能需求随着个人计算机和互联网的普及,越来越多的人开始使用网络这个媒介来发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利,网络语音通信 IP 电话应运而生,主要分为三种:电话到电话,PC 到电话,PC 到 PC,本功能选取 PC 到电话为实现方案,即:实现 PC 到电话的网络语音通信。 系统用例图:能够实现公用交换电话网络(PSIN)中的普通电话相互通话(需要网络环境配合)或与其他的兼容 I
29、P 电话或应用程序通信。3.2 性能要求(1)拨打电话:要求用话机拨打电话,用下列任意一种方式呼叫提起话筒或按免提键,拨号盘上直接呼出按电话簿键选择号码呼出按 Redial 键选择呼出最近一次已拨打号码呼出(2)接听电话IP 电话实时通信的实现第五章 详细设计8响铃,显示号码或者 IP 地址提起话筒或者免提键接听可以拒绝接听(3)静音或者保留通话过程中按相应键IP 电话实时通信的实现第五章 详细设计9第四章第四章概要设计概要设计4.1 体系结构设计一个成功 IP 电话的实现是个复杂的过程,我只针对 G.729 实现通信,其主要的体系结构如下图: 其中用了一个 tcp 连接,表示双方连通没有,用
30、 udp 发送语音数据,发送端表明了发送顺序,接收端重排了顺序。4.2 数据结构设计1. TCP包结构TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在TCP协议之上的。TCP首部的各字段如图4.2所示4。IP 电话实时通信的实现第五章 详细设计10图 4.2 TCP 数据在 IP 数据报中的封装TCP协议头部信息如下:(1)源端口:发送端TCP端口号;(2)目的端口:接收端TCP端口号;(3)序号:指出段中数据在发送端数据流中的位置;(4)确认号:指出本机希望下一个接收的字节的序号;(5)头标长度:以32bit为单位的段头标长度,是针对变长的“选项”域设计的;(6)码位:指出
31、段的目的与内容,不同的各码位置位有不同的含义;(7)窗口:用于通告接收端接收缓冲区的大小;(8)校验和:这是可选域,置0表示未选,全1表示校验和为伍;(9)紧急指针:当码位的URG置位时,指出紧急指针的序号。 2. UDP 包结构UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
32、UDP数据报各域的意义与TCP段中相应的域相同。只有校验和有些不同,除UDP数据报本身外,它还覆盖一个附加的“伪头标”。这个伪头标来自于IP报头,包括:源IP地址、信宿IP地址、协议类型、UDP长度及填充域。UDP首部的各字段图4.3所示。IP 电话实时通信的实现第五章 详细设计11图 4.3 UDP 首部UDP协议头部信息如下:(1)源端口:发送端UDP端口号;(2)目的端口:接收端UDP端口号;(3)头标校验和:用于保证头标数据的完整性。第五章第五章详细设计详细设计5.1 系统功能模块设计通过前面的叙述可以知道,这款软件唯一的功能就是基于网络实现语音通信。本系统包括三个基本模块,音频的输入
33、输出,接收与发送,数据压缩与排序而这三个模块整合起来就是网关。网关是通过 IP 网络提供 PC-to-Phone、Phone-to-PC、Phone-to-Phone 语音通信的关键设备,是 IP 网络和 PSTN/ISDN/PBX 网络之间的接口设备,应具有下列功能: a 具有 IP 网络接口和与 PSTN/ISDN/PBX 交换机互联的接口; b 完成实时语音压缩,将 64kbit/s 的语音信号压缩成低码率语音信号; c 完成寻址和呼叫控制。下面我给出借口的部分代码:连接和启动的借口:IP 电话实时通信的实现第五章 详细设计125.1.1 音频输入输出的实现下面给出其主要过程:音频的输入
34、描述封装 wavein api 只使用了 pcm 方式 只使用 函数回调方式所有的设置属性的函数只应在录音前使用,否者会在下次录音时才生效应该重载 virtual void GetData(char *pBuffer,int iLen); 注意对于 StartRecord 中的 PerPareBuffer() OpenRecord()是乎应该同时调用,要么就都不调用,其原因好象是 waveInAddBuffer 之后必须 使用 saveInStart否则好象不能关闭设备局域网抓包软件的设计与实现第五章 详细设计13SIZE_AUDIO_FRAME 是 160 倍数SIZE_AUDIO_PACK
35、ED 是 对应的输出 为 SIZE_AUDIO_FRAME / 160 * 10关闭的时候注意,在 closerecord 后有可能线程中还有数据到来,导致关闭不正确,所以关闭的时候 sleep(1000),详细原因我也不太清楚 依赖性 Winmm.lib 主要代码中的方法:如线程创建音频的输出: 描述封装 waveout api只使用了 pcm 方式 注意PLAY_DELAY 10 /播放时候的延迟,大于它,说明有 PLAY_DELAY 个包没有播放完成,后面的包不应再播放IP 电话实时通信的实现第五章 详细设计14 依赖性 Winmm.lib 主要代码中的方法:如线程创建5.1.2 数据的
36、压缩与排序依据流程图我们可知,在数据压缩之后会有发送,经过一系列转化后另一方接收,最后是排序。这里我把压缩和排序放在一起音频压缩:部分代码局域网抓包软件的设计与实现第五章 详细设计15排序数据:部分代码IP 电话实时通信的实现第五章 详细设计165.1.3 传送和接收 1音频的传送 在压缩之后进入发送接收 发送的客服端: 部分代码局域网抓包软件的设计与实现第五章 详细设计17IP 电话实时通信的实现第五章 详细设计185.2 用户界面设计用户界面第一行为对方 IP 地址,发送按钮第二行连接按钮,断开按钮,接收按钮第三行为信息提示,如图所示:局域网抓包软件的设计与实现第五章 详细设计19第六章第六章测试及实现结果分析测试及实现结果分析采用二种测试工具对 G.729.A 编解码器的处理延迟作了测试。第一种测试工具是 C6X Simulator(TMS320C6201 的仿真软件),测试条件是假设所有代码装在 TMS320C6201 片同的程序存储器中;因此,称之为 Non cache 测试模式。另外一种测试方式是采用 TI 公司的C6X 的 EVM 卡(评估卡),测试条件是将 TMS320C6201 片内 64KB RAM 作为 Cache 使用;因此称之为 cache 模式。二种测试模式的测试结果如下所示。测试项目C6 仿真器(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资产担保合同协议范本
- 临床试验数据管理服务合同
- 政府采购水质监测站设备合同
- 补充协议对按揭业务的规范
- 皮鞋购销合同乙方权益
- 货款折扣补充协议的注意事项
- 保密协议在劳动合同中的角色
- 有机化肥特许购销协议
- 安全儿童游乐场玩具购销协议
- 瓷砖采购合同范本案例
- 政府机关干部法律知识讲座
- 《高山流水志家园》
- 脐带脱垂培训演示课件
- 2024年肿瘤科工作计划及总结报告
- 集合与常用逻辑用语-大单元作业设计
- 肌肉能量技术及相关理论
- 砂石材料询价表
- 23秋国家开放大学《企业法务》形考任务1-4参考答案
- 维修方案范文
- 子宫内膜异位症诊疗指南完整PPT
- 中钢集团马鞍山矿院新材料科技有限公司300吨-年碳气凝胶新材料建设项目环境影响报告书
评论
0/150
提交评论