基于FPGA的FIR滤波器设计书.docx_第1页
基于FPGA的FIR滤波器设计书.docx_第2页
基于FPGA的FIR滤波器设计书.docx_第3页
基于FPGA的FIR滤波器设计书.docx_第4页
基于FPGA的FIR滤波器设计书.docx_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA的FIR滤波器设计书1 概述我们学生通过这次的课设深入理解和消化了基本理论、进一步提高综合 应用能力并且锻炼独立解决问题的能力,我们将数字信号处理、集成电路 原理与应用和FPGA 系统设计与应用几门课程融合在一起综合应用设计一 个实用的数字 FIR 滤波器。本报告中首先讲解了这次设计的具体内容,以及所要求的数字 FIR 滤波 器的技术指标。然后,数字滤波器的一些设计方法,并具体确定我这次设计所 用的设计方案。滤波器在 matlab 中的设计方法应用。通过 matlab 得到所需滤波器的具 体参数 h(n),然后用这些所设计的参数,通过 Quartus ii 工具编程具体实现 滤波器功能。这次滤波器实现过程中,用到以下小模块:延时器,加法器,乘法器,减法器。2 课程设计要求及注意事项1 设计过程以小组为单位,各组设一个组长,负责组织和协调本小组的 讨论、任务分工等;2 设计过程必须在本组内独立完成,不得跨组参考或抄袭,避免方案出 现雷同;3 设计书一律采用专用报告纸,用统一封面装订;4 课程设计原则上在 3 周内做完;5 最后一周周五进行优秀设计方案评选,在各组推选代表进行方案介绍 的基础上,推选出 2-3 个优秀设计方案。6 学有余力的学生在完成必做设计内容的基础上,可对内容进一步展开 设计,以提高综合应用能力,锻炼独立解决问题的能力。3 课程设计内容3.1 课程设计题目及要求3.1.1 设计题目:基于 FPGA 的 FIR 滤波器设计3.1.2 设计要求利用所学知识,采用 MATLAB 和 FPGA 相结合完成 FIR 滤波器的设计仿真。 采用直接法或分布式算法实现 FIR 数字滤波器,了解两种算法的优缺点,选择 其中一种算法,得出用它来实现 FIR 滤波器的硬件结构,对其实现方式进行研 究,分别采用合适的方法来设计,最后利用 FPGA 器件实现 FIR 数字滤波器的硬 件电路,并用 Matlab 对实现的结果进行仿真分析。设计指标:1)类型:FIR 低通2)系统采样频率:Fs=10KHz;3)输入序列位宽为 8 位的有符号数(最高位为符号位);4)输出结果保留 8 位5)窗口类型为 kaiser 窗,=0.5; 6)滤波器长度为 N=16;3.2 数字滤波器简介及结构3.2.1 简介 滤波器是用来进行频率选择或频率分辨操作的线性时不变系统的通称。数字滤波器通常都是应用于修正或改变时域或频域中信号的属性。最为普通的数 字滤波器就是线性时间不变量(1inear timeinvariant,LTI)滤波器。一个简 单的数字滤波系统如图 1-1 所示。图中,x(t)为模拟信号,经过 A/D 转换器后变为一个有着先后顺序的数字序列 x(n)。然后 x(n)通过数字滤波系统 H(z), 即得到数字滤波器的输出 y(n)。H(z)为该数字滤波系统的单位脉冲响应 h(n) 的 Z 变换H (z) =h(n)z -n n=-(3-1)若 h(n)为无限长序列,则得到的数字滤波器为 IIR 数字滤波器,又称递归 滤波器;反之,若 h(n)为有限长序列,则得到的数字滤波器为 FIR 滤波器,也 称非递归滤波器。一个线形时不变因果滤波器可表示为:N -1H (z) = h(n)z -n n=0(3-2)其中 N 为 h(n)的长度,即滤波器的长度。滤波器的阶数为 N-1。IIR 滤波器主要是基于对模拟滤波器如巴特沃斯滤波器、椭圆滤波器等的 幅频响应进行逼近,而其相频响应是非线性的。与 IIR 滤波器不同,FIR 滤波 器可以把相位特性设计成线性。这使得 FIR 数字滤波器在信号无失真传输、数 据通信、图像传输与处理、语音信号处理等有线性相位要求的领域应用广泛。 FIR 滤波器的优点是软硬件实现结构简单,不用考虑系统的稳定性问题;缺点 是实现较高性能的频率响应需要较高的滤波器阶数。3.2.2 结构FIR 滤波器的单位抽样响应为有限长度,一般采用非递归形式实现。通常 的 FIR 数字滤波器有横截性和级联型两种。FIR 滤波器实现的基本结构有:(1)FIR 滤波器的横截型结构 表示系统输入输出关系的差分方程可写作:N -1y(n) = h(m)x(n - m)m=0直接由差分方程得出的实现结构如图 2-2 所示:(3-3)图 3-1 横截型(直接型卷积型)若 h(n)呈现对称特性,即此 FIR 滤波器具有线性相位,则可以简化加横截 型结构,下面分情况讨论:图 3-2图 3-3图 3-2 N 为奇数时线性相位结构图图 3-3 N 为偶数时线性相位结构图(2)FIR 滤波器的级联型结构将 H(z)分解成实系数二阶因子的乘积形式:N -1 N 2 0k1k2kH (z) =N =0h(n)z- N =bk =1+ b z-1 + b z-2(3-4)这时 FIR 滤波器可用二阶节的级联结构来实现,每个二阶节用横截型结构 实现。如图所示:图 3-4FIR 滤波器的级联结构这种结构的每一节控制一对零点,因而在需要控制传输零点时可以采用这 种结构。3.3 设计方案的确定3.3.1 滤波器设计实现方法一般有线性相位 FIR 直接型结构和分布式算法的设计。 3.3.2 方案确定经过多种方案的比较,本次设计最终的方案是:直接型。利用 MATLAB 提供的 FDATOOL 滤波器设计工具,编写 VHDL 语言,从而实现 FIR 数字滤波器的设计。3.4 方案实现3.4.1 利用 FDATool 工具设计 FIR 数字滤波器FDATool(Filter Design & Analysis Tool)是 MATLAB 信号处理工具箱里专 用的滤波器设计分析工具,MATLAB6.0 以上的版本还专门增加了滤波器设计工 具箱(Filter Design Toolbox)。FDATool 可以设计几乎所有的基本的常规滤波 器,包括 FIR 和 IIR 的各种设计方法。它操作简单,方便灵活。FDATool 界面总共分两大部分,一部分是 Design Filter,在界面的下半部, 用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来 显示滤波器的各种特性。Design Filter 部分主要分为:Filter Type(滤波器类型)选项,包括 Lowpass(低通)、Highpass(高通)、 Bandpass(带通)、Bandstop(带阻)和特殊的 FIR 滤波器。Design Method(设计方法)选项,包括 IIR 滤波器的 Butterworth(巴特沃 思)法、Chebyshev Type I(切比雪夫 I 型)法、 Chebyshev Type II(切比雪夫 II 型) 法、Elliptic(椭圆滤波器)法和 FIR 滤波器的 Equiripple 法、Least-Squares(最小乘方)法、Window(窗函数)法。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括 Specify Order(指定阶数)和 Minimum Order(最小阶数)。在 Specify Order 中填入所要 设计的滤波器的阶数(N 阶滤波器,Specify OrderN-1),如果选择 Minimum Order 则 MATLAB 根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications 选项,可以详细定义频带的各参数,包括采 样频率 Fs 和频带的截止频率。它的具体选项由 Filter Type 选项和 Design Method 选项决定,例如 Bandpass(带通)滤波器需要定义 Fstop1(下阻带截止频 率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻 带截止频率),而 Lowpass(低通)滤波器只需要定义 Fstop1、Fpass1。采用窗函 数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要 定义通带截止频率,而不必定义阻带参数。Magnitude Specifications 选项,可以定义幅值衰减的情况。例如设计带 通滤波器时,可以定义 Wstop1(频率 Fstop1 处的幅值衰减)、Wpass(通带范围 内的幅值衰减)、Wstop2(频率 Fstop2 处的幅值衰减)。当采用窗函数设计时, 通带截止频率处的幅值衰减固定为 6db,所以不必定义。本次设计滤波器的系数就是采用 FDATool 工具设计的滤波器。在 MATLAB 命令窗口中,执行“FDATool”命令,就会启动 FDATool 滤波器设计与分析工具, 其图形界面如图 3-8 所示。图 3-5FDATool 界面选择窗函数法设计滤波器:直接使用 FDATool 工具进行滤波器设计。例如 首先滤波器 Response type 选择低通,选中 FIR 类型,首先根据滤波器技术指标, 选择窗函数 w(n) 的类型、长度、采样频率和截止频率。点击 DESIGN FILTER按键,即可得到设计的 FIR 滤波器的频率响应和滤波器的系数。保存并关闭滤 波器设计分析工具回到 matlab 主窗口,在命令编辑区输入 Num 可得到工具的 计算结果。对 FIR 滤波器的系数进行调整,做整数化操作,可得到滤波器整数 化的系数。FIR 滤波器设计系数的确定 窗函数法低通滤波器:阶数:15采样频率:10k截止频率:1k 滤波器类型:分布式fir滤波器滤波器幅频响应滤波器相频响应滤波器的冲击响应滤波器系数导出后的系数lp*(29),round(ans)求整3.4.2 FIR 数字滤波器的 FPGA 实现采用分布式算法设计 FIR 滤波器1)分布式算法基础分布式算法(Distributed Arithmetic,DA)是一项重要的 FPGA 技术,广 泛地应用于计算乘积和:N -1y = c(n) * x(n)n=0(3-1)这种算法可用于滤波器、卷积、相关、DFT 等凡是有乘累加运算的地方。 一个线性时不变网络的输出可用式(3-1)表示。假设 c(n) 为常量,x(n) 为变量。对于有符号 DA 系统, x(n) 可表示为:Bx(n) = -2B x(n) +B-1 xbb=0(n)2b(3-2)将式(3-2)代入式(3-1),得N -1N -1B-1by = -2B c(n)x(n) + c(n) xb(n)2bn=0n=0b-0= -2BN -1c(n)xB n=0B-1(n) + 2bb=0N -1c(n)xb (n)n=0= -2BB-1bf (c(n), xB (n) + 2f (c(n), xb (n)(3-3)b=0N -1其中 x(n) 为( B+1 )位, f (c(n), xb (n) = c(n)xb (n) 称为位乘积 , 其中 n=0b=0,B+1。函数 f (c(n), xb (n) 的实现方法是利用一个 LUT 实现映射,预先设 定程序的 LUT 接收一个 N 位的输入向量 xb = (xb (0), xb (1),.,xb (N -1) ,输出为f (c(n), xb (n) ,各个映射 f (c(n), xb (n) 都由相应的二次幂加权累加,最后得到 一次滤波的结果。由上分析可知,分布式算法是将乘法运算转换成基于查找表结构的移位相 加算法,从而实现多个乘法运算操作。在被乘数位数较少的情况下,相比直接 的乘法器结构,这种算法有明显的速度和算法优势。这种算法尤其是在乘法器 资源很少的 FPGA 器件中有很大的应用前景。2) 并行的分布式算法分布式算法有串行实现方式和并行实现方式。并行方式的算法结构如图 3-10 所示。图中 ROM 的输出和求和结果的输出都加上了虚线框,这些虚线框为 流水线寄存器。上下级流水线寄存器之间的数字电路按照时钟频率工作而不用考虑它们本身的延迟,这使得整个系统的工作频率增加,从而加快了运算速度。 但是这种并行结构增加了额外的 LUT、寄存器和加法器。当输入数据位宽较少 时,比如 4 到 8 位,这种实现方式会有令人满意的结果。3)本文采用并行分布式算法的实现方案图 3-6 并行 DA 结构x(图 3-7 并行分布式算法实现框图如图所示,各个模块的实现步骤如下:(1)输入数据预处理模块该模块用于将 A/D 转换器输出的 8 位有符号数据转换成二进制补码形式, 并进行锁存。由于在计算机中采用的数据形式是二进制补码,为了仿真方便, 在仿真时可以去掉这个模块。(2)并行延时模块 输入数据输送到并行延时模块,在每个时钟周期,把一组数据顺序时延,每经过 15 个时钟周期,就会有一个数据移出并行延时模块。这些并行时延模块 是有 15 组 D 触发器串联而成,并且共用一个时钟。(3)预相加模块由于线性相位 FIR 滤波器的系数具有对称性,因此可以通过将对称的 x(n) 进行相加,这样可以节省(N-1)/2 个乘法器,从而降低了硬件的规模。(4)查找表模块该模块用于对位乘积的寻址。一个 8 位的地址,可以产生 28 个数据。为了 节约 FPGA 资源,可以采用 LUT 分割技术,将一个 8 位地址的 LUT 分割成两个 4 位地址的 LUT。这样可以节省 224 个数据空间。因此,采用 LUT 分割技以节省大量硬件资源,避免了大容量 ROM 的使用。 根据分布式算法,查找表存储的是滤波器系数的各种组合相加的结果,由于滤波器系数通常为浮点数,我们需要将其化为定点整数。(5)加法器模块该模块用于将高 4 位 LUT 选中的数据和低 4 位 LUT 选中的数据进行相加, 然后送入移位累加器模块。为了保证结果正确性,在相加前,需要对相加的两 个有符号数进行符号位扩展。(6)移位累加器模块 各个位产生的位乘积在这个模块中乘以各自的权重,也即左移相应的位数,然后相加得到最终结果。(7)输出处理模块由于移位累加器输出的是 24 位二进制数,为了得到 16 位字长的数据,需要对输出数据进行截去低 8 位,同时进行锁存输出。如果有必要,还需将输出 的二进制补码转换为二进制原码。分布式结构的 FPGA 实现。顶层原理图如下:1 寄存器(延时器)原理图上标有 jicunqi的器件。输入 8 位数据,通过 yanshi 的 D 触发寄存器, 达到延时的作用。2 预相加数据通过 add889,就是 8 位数字输入,9 位数字输出加法器,完成第一级相 加运算,因为本设计是 16 阶 FIR 数字滤波器,它的滤波系数有对称的关系, 所以采用上面的第一级加法器,达到简化运算的效果。3 查找表该步骤分为地址生成表和系数查找表,地址生成表是用来为查找系数做准 备,以便尽快找到系数。4 移位根据 FIR 滤波器的结构式分布图,要实现系数乘以 20 到 28,在 VHDL 中 想乘就是向左移位。5 累加第四步骤得到移位后的结果,两两相加,利用相加器模块,得到相加结果。6 输出处理结果输出要求 8 位输出,但是 FPGA 的结果是 24 位,因此要对结果进行处理,以便达到设计要求,因为之前一直是进行符号位扩展,只要截取符号位 就能达到要求,用了一个 D 触发器和截取 8 位的原件图。D 触发器是用来暂存 24 输出结果的,以防造成延时,达到输出结果错乱。二,详细说明1 寄存器(延时器)设计中用一系列 D 触发器组成延时器,实现延时功能。实现功能:在 Clk 正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。源文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITYjicunqi ISPORT( clk : IN STD_LOGIC;D: INSTD_LOGIC_VECTOR(7 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END jicunqi;ARCHITECTURE hav OF jicunqi IS BEGINPROCESS(clk) BEGINIF(clkEVENT AND clk=1) THEN Q = D;END IF; END PROCESS;END hav;2预相加:实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算, 输出结果。源文件:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY add889 IS PORT(a,b: IN SIGNED(7 DOWNTO 0); clk: IN STD_LOGIC; s:OUT SIGNED(8 DOWNTO 0);END add889;ARCHITECTURE sum889 OF add889 ISBEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN s=(a(7)&a)+(b(7)&b); END IF; END PROCESS;END sum889;3 查找表生成系数地址,以便找到系数 源文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY address ISPORT( clk :INSTD_LOGIC;DIN0,DIN1,DIN2,DIN3 : INSTD_LOGIC_VECTOR(8 DOWNTO 0); s0,s1,s2,s3,s4,s5,s6,s7,s8 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END address;ARCHITECTURE a OF address IS BEGINPROCESS(clk ) BEGINIF(clkEVENT AND clk=1) THEN s0=(DIN3(0)&DIN2(0)&DIN1(0)&DIN0(0); s1=(DIN3(1)&DIN2(1)&DIN1(1)&DIN0(1); s2=(DIN3(2)&DIN2(2)&DIN1(2)&DIN0(2); s3=(DIN3(3)&DIN2(3)&DIN1(3)&DIN0(3); s4=(DIN3(4)&DIN2(4)&DIN1(4)&DIN0(4); s5=(DIN3(5)&DIN2(5)&DIN1(5)&DIN0(5); s6=(DIN3(6)&DIN2(6)&DIN1(6)&DIN0(6); s7=(DIN3(7)&DIN2(7)&DIN1(7)&DIN0(7); s8=(DIN3(8)&DIN2(8)&DIN1(8)&DIN0(8);END IF; END PROCESS;END 2)系数查找模块Mif文件生成4移位以 SHIFT4 为例源码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHIFT4 ISPORT( clk :INSTD_LOGIC;hn : INSTD_LOGIC_VECTOR(7 DOWNTO 0); Dout : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );END SHIFT4;ARCHITECTURE a OF SHIFT4 ISsignal aa: STD_LOGIC_VECTOR(11 DOWNTO 0); BEGINPROCESS(clk ) BEGINIF(clkEVENT AND clk=1) THENaa=hn&0000;END IF;Dout=aa(11)&aa(11)&aa(11)&aa(11)&aa(11 DOWNTO 0); END PROCESS;END a;5 累加15 位相加模块源 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL;ENTITY add16 isPORT(clk : IN STD_LOGIC;Din1,Din2 :IN signed (15 downto 0); Dout:OUT signed(16 downto 0);END add16;ARCHITECTURE a of add16 is SIGNAL s1: signed(16 downto 0);SIGNAL s2: signed(16 downto 0); BEGINs1=(Din1(15)&Din1); s2=(Din2(15)&Din2);PROCESS(Din1,Din2,clk) BEGINif (clkevent and clk=1) then Dout=s1+s2;END IF;END PROCESS;ENDa;16 位相加模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL;ENTITY add17 isPORT(clk : IN STD_LOGIC;Din1,Din2 :IN signed (16 downto 0); Dout:OUT signed(17 downto 0);END add17;ARCHITECTURE a of add17 is SIGNAL s1: signed(17 downto 0); SIGNAL s2: signed(17 downto 0); BEGINs1=(Din1(16)&Din1); s2=(Din2(16)&Din2);PROCESS(Din1,Din2,clk)BEGINif (clkevent and clk=1) then Dout=s1+s2;END IF;END PROCESS;ENDa;17 位相加模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL;ENTITY add18 isPORT(clk : IN STD_LOGIC;Din1,Din2 :IN signed (17 downto 0); Dout:OUT signed(18 downto 0);END add18;ARCHITECTURE a of add18 is SIGNAL s1: signed(18 downto 0); SIGNAL s2: signed(18 downto 0); BEGINs1=(Din1(17)&Din1); s2=(Din2(17)&Din2);PROCESS(Din1,Din2,clk) BEGINif (clkevent and clk=1) then Dout=s1+s2;END IF;END PROCESS;ENDa;18 位相加模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL;ENTITY add19 isPORT(clk : IN STD_LOGIC;Din1,Din2 :IN signed (18 downto 0); Dout:OUT signed(19 downto 0);END add19;ARCHITECTURE a of add19 is SIGNAL s1: signed(19 downto 0); SIGNAL s2: signed(19 downto 0); BEGINs1=(Din1(18)&Din1); s2=(Din2(18)&Din2);PROCESS(Din1,Din2,clk) BEGINif (clkevent and clk=1) then Dout=s1-s2;END IF;END PROCESS;ENDa;3.5 仿真测试与分析为了测试 15 阶等波纹 FIR 低通滤波器的滤波性能,本设计加入了输入x(t) = sin(500 * pi * t) + cos(10000 * pi * t)的信号,其中 xN (t) = cos(10000 * pi *t)是叠加在 xS (t) = sin(500 * pi *t) 上的噪声。如图 4-4 所示,假设抽样频率为 1000,则经过抽样的输入序列为:x(n) = sin(0.05 * pi * n) + cos(pi * n) ,取 n=0,139,由于 x(n) 为浮点数,本设计将 x(n) 扩大 29 倍,得到 xd (n) ,然后再取整。具 体如表 3-7 所示:表 3-7输入序列的处理nxd (n)取整nxd (n)取整nxd (n)取整nxd (n)取整016.00161032.00322016.001630001-13.49-1311-0.19021-18.50-1931-31.80-32220.94211231.21312211.0511320.7813-8.73-913-1.74-223-23.26-2333-30.25-30425.40251428.9429246.597343.0535-4.68-415-4.6-525-27.31-2735-27.31-27628.94291625.4025263.053366.577-1.74-217-8.7-927-30.25-3037-23.26-23831.21311820.9421280.7813811.05119-0.19019-13.49-1329-31.80-3239-18.50-19抽样,放大取整后的 40 个输入数据如下:Din=16,-13,21 ,-9, 25,-4,29, -2, 31,0,32, 0, 31, -2,29, -5,25, -9, 21,-13,16,-19,11,-23,7,-27,3,-30, 1, -32,0, -32,1,-30, 3,-27,7,-23,11,-19滤波系数:h=-3,-2,-1,1,5,8,11,13,13,11,8,5,1,-1,-2,-3 仿真结果如下如仿真图输出为:Dout=-320,-44,-317,74,-69,496,531,1313,1593,2612,3115,4314,4949,6171,6714,7708,8147,8384,8384,8147,7708,7194,6312,5371,4304,3147,1921,648,-648,-1921,-3147,-4304,-5371,-6312,-7094,-7708,-8147,-8384,-8147,-7388,-7050,-5995,-5445,-4235,-3643 Matlab 中卷积结果如下: y=round(conv(h,Din)/64) 仿真结果与 matlab 计算结果比较可知基本一样。在 matlab 中输出函数 x(t) = sin(0.05 * pi * t) + cos(pi * t) 如图:t=0:.1:39;y=sin(0.05*pi*t)+cos(pi*t); plot(t,y);抽样 40 点 x(n)如下:t = 0 : 1 : 39;y = sin(0.05*pi*t)+cos(pi*t);stem(t, y);在 MATLAB 中编程实现理想与 FPGA 编程实现的实际柱状图的比较 figure(1);subplot(1,2,1);din=16,-13,21,-9,25,-5,29,-2,31,0,32,0,31,-2,29,-5,25,-9,21,-13,16,-19,11,-23,7,-27,3,-30,1,-32,0,-32,1,-30,3,-27,7,-23,11,-19;hn=-3,-2,-1,1,5,8,11,13,13,11,8,5,1,-1,-2,-3;y=round(con

温馨提示

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

评论

0/150

提交评论