




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 MATLAB仿真OFDM系统举例10.1 系统模型10.1.1 自适应调制和MIMO自适应调制是一种重要的技术,与非自适应的未编码的方案相比增加了数据速率。信道自适应的内在假设是在发送端和接收端的信道特性是可以预知的。在这样的前提下,发送端和接收端可以使用协商好的调制方案。在本章中,我们考虑自适应比特和功率分配方案。也就是,我们预先假设所期望的比特数量是由一个单独的OFDM信号(由N个子载波构成,然后我们按照在整个传输过程中使用能量的最小最为判决方法来将这些比特分配到各个子载波上。除去采用自适应调制,MIMO是针对于SISO(单入单处)系统提高数据速率的有效的技术。比在SISO-OFDM系统中使用自适应调制,本章提出MIMO-OFDM系统中的自适应调制。一个很重要的概念是假设在发送端和接收端分别进行了合适的预编码和波形成型,每个信道矩阵能够被分解成一系列的平行的子信道,在这些子信道中数据是被单独传输的。10.1.2 OFDM系统的细节描述在本文中研究的OFDM的系统结构如图(10-1)所示。该系统将输入比特按不同的数量分配给每个子载波(在调制模块中),这些数量决定每个子载波的星座点。在每个频率范围的信噪比变换决定分配给每个子载波的比特数量。比特分配的最优化过程将在以下部分具体描述。在OFDM系统中采用的子载波数量N的选择是在邻近载波频偏和邻信道干扰间取一个折衷。越多的子载波意味着越少的邻信道干扰,但是对频偏更加敏感。图(10-1)FFT and IFFTOFDM系统的关键组成是发送端的IFFT和接收端的FFT。这个操作是在N个复杂数据和N个复杂的OFDM信号间进行可逆的线形映射。 对于一个N点的FFT只需要N logN个乘法器,胜于个直接计算。根据这个事实,OFDM系统较均衡器系统使用更少的计算器。使用FFT在频域传输数据,即进行有效的正交线形变换,在时域可以更有效的对抗ISI。信道模型和信道估计在整个工作中,我们假设信道是瑞利衰落信道,并且随着时间推移呈现时变散射特性。在MIMO信道下,信道的矩阵方程如下:这里是矢量,是矩阵。信道的延迟扩展等于L个符号周期。为了模拟信道的指数衰落分布,我们可以将每一个随机信道矩阵中所有元素的功率设成一个常数Ei。系数Ei随着变量i成几何级数衰落。在一个相关时间间隔内,所有的信道矩阵是一个常量;但是当信道不相关时,根据各自的pdf(功率密度函数)重新生成新的信道矩阵。为了简化运算,我们假设信道在一个OFDM符号传输周期内都是相关的,只在符号传输末端才变得不相关,需要重新生成信道矩阵。在每个子载波上,信道估计转化成对非频率选择性信道的估计。在一般的OFDM系统中,使用导频信号进行信道估计。在时变信道中,导频信号要频繁的被重复。在时域和频域的导频信号间隔依赖于固定的时间和带宽。在本文中,假设信道估计是完善的,并且能被发送机和接收机使用。在知道所有信道特性的前提下,收发信机可以知道信道的频率响应和在每个子载波上的OFDM符号的信道增益。在知道这些增益的前提下,可以应用自适应算法进行比特和功率分配。这个过程会在SECTION详细说明。循环前缀在OFDM信号中加入循环前缀是为了对抗多径效应。相邻的OFDM符号间的干扰可以这样避免,即插入一保护间隔使得在此期间通过多径扩展的传输信号已消逝,而下一个符号还未被传送。一种有效的简化接收机复杂度的方法是在保护时间内引入保护符号。特别是,这种保护符号被作为每个块的扩展前缀。这样做的目的是使信号和信道的线形卷积可以变换成循环卷积,因此使得循环卷积的信号和信道的FFT可以分解成对它们各自进行FFT。然而,为了是这项技术起作用,必须使保护间隔大于信道的时延扩展。因此,循环前缀的相对长度决定于信道时延扩展和OFDM符号持续时间的比值。调制与解调调制器根据信号星座中的某点将比特流转化成一复杂的数。在本论文中,假设采用自适应算法,调制器的输入是一串比特流和能量值,调制器的输出是根据输入的比特数量和所期望的能量输出的星座符号。调制器只能提供有限数量的可获得的速率,这就意味着可用于调制的星座是有限的。特别是,这些星座是从一组星座符号是2的幂的星座中选出来的。再则,为了能有效的对抗比特错误,格雷编码的星座图被每个可利用的调制所使用。格雷编码确保了如果符号发生错误,此时解调器选择了与发送机原本要解调的信号邻近的符号,则结果只会有单独的比特错误。许多解调技术可以被使用,包括最大似然估计,MMSE和迫零算法。在本文中,为了简化解调,在知道每个子信道是平坦性信道的前提下使用迫零算法来解调。自适应分配OFDM的优势是每个子载波相对窄带的并且是平坦衰落的。然而,某个子信道的低增益导致大的误码率。因此,利用相对好的特性的子信道是很有意义的;这就是自适应调制的动机。在交织的时变信道中,在每个频选信道在时间上是不相关的。因此每次信道不相关在自适应算法中应该被使用。在传输功率一定的情况下达到仙农容量的极限值的最优的自适应传输方案就是在频选信道下采用注水定理来分配功率。然而,当使用注水定理来实现最优方案时,估计比较困难,而且在星座大小的有限尺度内实现也是不太现实的。在本文中使用的自适应技术是在知道子信道增益条件下一种有效的完成功率和速率最优化的有效技术。只使用六种不同的MQAM信号星座;这个方案旨为有效接近的模拟使用非限制的星座。本文采用离散比特分配算法,我们得到一组N和函数,代表了在给定传输编码方案下达到期望的可能的误码率时在每个子信道下传送b比特所需要的能量值。我们假设 。用公式表示的分配问题如下:能量最小化问题为了初始化比特分配,方案2被采用。过程简述如下:算法初始化1.估计子信道信噪比 2.估计根据公式分配给第i路子信道的比特数量3.四舍五入到b(i)4.限制b(i)取值为0,1,2,4,6或8(与可利用的调制顺序一致)5.计算基于公式的分配给第i路初始化的比特数量下的能量6.形成一张每个子信道能量增量的表。 对于第i路子信道:考虑第k路信道。在知道信道增益和噪声功率谱密度的条件下,能量增加表会提供子信道传输0比特到1比特,1比特变为2比特,2比特变为3比特等等情况下所增加的能量。既然我们要求我们的比特最大传输8比特,那么在从8比特变为9比特时所需的能量增量就很大。而且,我们要求子信道只有0,1,2,4,6或8比特。那么就不支持奇数的比特。为了达到这个目标,能量增加表采用了很灵活的平方技术。以下的例子会很好的描述:假设在第n路子信道从2比特多传输一比特需要能量增加30个单元,从3比特增加一比特需要40个能量单元。那么,再分配能量增值为同一个值,即二者的平均。在本例中,为35个单元。这使我们相信如果单独分配一比特给一子信道使它从2比特增加到3比特,那么在下一次分配时需要相同的额外的最小能量增量来支持另外的比特意味着相同的子信道也会分配另一个比特。同样的平均过程在其他所有的可能比特传输中被重复着。当算法完成时使得子信道所有比特数量平坦的尾比特还未分配时,将会发生唯一的例外情况。 为了解决这种问题,我们采用1中建议的算法(解决尾比特的函数)。这部分会在下一章节讨论。注意到我们引进了一个新的术语,GAP。这个参数是一个有效的协调参数。不同的GAP的值取决于不同的的值,在给定的所期望的传输比特B下。这是因为GAP直接影响能量表上能量值的计算。.因此,协调值GAP允许我们表征系统BER的特性。在初始化比特分配条件下,以下是比特最优分配的算法1:最后,为了处理单独的违规的比特,我们采用解决尾比特的算法1.检查输入的比特分配至多包含一个比特受限的违规现象。2.如果存在单独的违规,(假设发生在子信道v),从有最大的用来补充子信道v的功率增量的比特分配中找出该比特。 3.找出一比特,该比特在其他只被分配0或1个比特的信道中有着最小的功率增量。 我们这样做的原因是其他的子信道都有2,4,6或8个比特,分配一单独比特给他们会破坏比特限制。 4.根据最小的E1和E2进行改变。有这三个算法,我们就有了一个在频选信道条件下完整的比特分配的过程。MIMO/OFDM 系统MIMO系统被定义成在收发信机使用多天线的点到点的通信链路。在收发机都使用多天线技术要比只在发送机或接收机单独使用多天线的分集系统要提供更强的性能。这个技术的意义在于在不增加传输功率和带宽的情况下增加无线系统的数据传输速率。增加速率的成本包括多配置天线所增加的成本,这些额外的天线所需要的空间和复用空间信号处理所增加的复杂度的要求。大量的研究机构已经投入到结合空间技术与OFDM系统的研究领域。这个系统同时具有增加数据速率和消除时延扩展的优点。MIMO/OFDM系统的功率控制在增强频谱和功率效率方面至关重要。希望没有任何干扰,优化传输的最佳功率控制是注水法。但是像先前讨论的那样,实际应用上并不可行,我们必须使用前面提到的自适应分配技术来描绘有单天线的OFDM系统的MIMO/OFDM系统的实际特性。分析MIMO-OFDM系统考虑一个使用多根发送天线和接收天线的MIMO系统。对于每个子载波,MIMO信道的频率响应可以表示为一个的矩阵,其中矩阵的每个元素表示从发送天线k到接收天线j的信道增益。如果我们知道在发送端和接收端信道特性理想,我们可以将MIMO信道在每个子载波处用奇异值分解(SVD)的办法分解为平行互不相干的SISO信道。让瞬时信道矩阵在第i路的奇异值分解(SVD)为:此处和 是归一化的复数,是奇异值矩阵 对角线上的元素,是对矩阵取逆。现在如果我们使用发送预编码滤波器和接收机的成形滤波器,将在IFFT和FFT模块之间的MIMO信道等价分解为平行的子信道。可以发现这样的子信道数等于非零的奇异值的个数。用表示这个值。同样的将这个操作应用于OFDM的每个子信道。总体来说,每个预编码器和成形矩阵对于每个子信道都是不同的。MIMO-OFDM的自适应调制根据上文提到的分解过程,自适应调制的MIMO-OFDM系统需要每个子信道都有相应的预编码器和成形矩阵。因此,我们获得M个有效的子信道:换句话说,MIMO-OFDM自适应调制的问题分解成在所有奇异值非零的子载波上的比特分配的问题。因此,要比SISO的问题复杂,但是采用了分解的办法使得我们对最优算法不要进行任何的变动。10.1.3仿真结果在给定参数下,仿真采用的数据是256个比特每个OFDM符号。比特分配为了显示比特分配,产生了一个作为范例的子信道,并建立最佳的比特分配。图 (10-2)显示了信道的频谱特性,每个信道的频谱分配和功率分配。图(10-2) 对于一个信道的能量比特分配就像期望的那样,当信道特性不好的时候,只分配很少的比特甚至没有分配比特。BER特性为了比较,我们仿真了固定速率的SISO,即总比特数被平均分配到每个子载波上。在图(10-3)中显示了自适应SISO,自适应的MIMO和固定速率的SISO。在所有仿真中,采用了双入双出的MIMO系统。可以看出,MIMO的性能最好,自适应的SISO次之,固定比特速率的SISO最差。对于三个系统,为了保证比较的公平性,每个OFDM符号的总比特数是一样的。图(10-3)10.2 程序功能说明MIMO OFDM 仿真器: OFDM.m: OFDM 仿真器 (外部功能) create_channel.m:产生频率选择性衰落的瑞利信道,参数由天线结构,OFDM系统的结构和功率时延结构来决定。 svd_decompose_channel.m:假设所有的信道特性都是知道,那么传输是通过平行奇异值模型。这个函数就是将信道分解成几个这样的模型。 BitLoad.m:应用比特装载(bitloading)算法根据当前的信道特性来达到所期望的比特和能量的分配。 ComputeSNR.m:假设子载波确定,这个简单的函数用来实现各个子信道的SNR值(每个单独的值是针对独立的信道)。 chow_algo.m:应用Chows算法来实现特别的比特和能量分配。 EnergyTableInit.m:根据SNR的值,针对每个信道产生一个能量增加的表。 campello_algo.m:应用Campellos算法根据给定的信道条件汇聚成最佳的比特和能量分配。 ResolvetheLastBit.m:一种末尾比特优化的比特装载需要一种特殊的最优化。 modulate.m:根据每个信道的比特分配调制随机输入数据流。 ENC2.mat: BPSK 调制器 ENC4.mat: 4-QAM 调制器 (格雷编码) ENC16.mat: 16-QAM调制器 (格雷编码) ENC64.mat: 64-QAM调制器 (格雷编码) ENC256.mat: 256-QAM调制器 (格雷编码) precode.m: 在用信道右矩阵过滤调制矢量时预编码传输矢量。 ifft_cp_tx_blk.m: OFDM系统的IFFT模块。 channel.m: 将信道应用于OFDM帧。 fft_cp_rx_blk.m: OFDM系统的FFT模块。 shape.m:用信道左矩阵过滤接收到的矢量 demodulate.m:在知道所使用的传输星座的条件下形成最近的临近搜索。10.3 程序OFDM.m:OFDM 仿真器 (外部功能) function TotEbNo, Errors=OFDM(Mt,Mr);% function TotEbNo, Errors=OFDM(Mt,Mr);%输入:% Mt -发送天线数% Mr - 接收天线数%输出: % TotEbNo 信噪比% Errors - 平均误比特率%load ENC2.matload ENC4.matload ENC16.matload ENC64.matload ENC256.matA = 1 1/exp(1) 1/exp(2); % 功率时延谱N = 64; % OFDM子载波数GI = 16; %保护间隔sig2 = 1e-3; % 噪声M = 8; %最大的星座比特数Mgap = 10.(1:(1.7/10):2.7); % 间隔Btot = 100*Mt; %每个OFDM符号总的比特数TransmitIter = 50; % 每个信道传输符号叠代次数ChannelIter = 100; % 随机信道叠代GapIter = length(Mgap);TotEbNo = ;Errors =;EbNo = ;for lGap = 1:GapIter gap = Mgap(lGap); totalErrors = 0; for lChan = 1:ChannelIter %创建信道 H h_f=create_channel(Mt, Mr, A, N+GI); % 在频域中分解每个子信道 U S V = svd_decompose_channel(Mt, Mr, h_f, N); % 比特分配 bits_alloc,energy_alloc = BitLoad(S,Btot,Mt*N,gap,sig2,M); %能量分配 for lTrans = 1:TransmitIter % 传输的比特 x = (randn(1,Btot)0); % 调制 x_mod = modu(x,bits_alloc,energy_alloc,s2,s4,s16,s64,s256); %调制信号预编码 x_pre = precode(Mt, x_mod, V, N); % ifft,含循环前缀 ofdm_symbol =; for i=1:Mt ofdm_symbol = ofdm_symbol; ifft_cp_tx_blk(x_pre(i:Mt:Mt*(N-1)+i),N,GI); end ofdm_symbol2 = reshape(ofdm_symbol,Mt*(N+GI),1); % 信道 y = transpose(channel(sig2, Mt, Mr, ofdm_symbol2, H, N+GI); % fft rec_symbol =; for i=1:Mt rec_symbol = rec_symbol; fft_cp_rx_blk(y(i:Mt:Mt*(N+GI-1)+i),N,GI); end rec_symbol2 = reshape(rec_symbol,1,Mt*N); % 接收信号成型 shaped_vals = shape(rec_symbol2, Mr, U, N); %解调 y_demod = demodulate(shaped_vals, bits_alloc, energy_alloc, S, s2,s4,s16,s64,s256, c2,c4,c16,c64,c256); % 比较 totalErrors = totalErrors + sum(xor(y_demod,x); end EbNo = EbNo sum(energy_alloc)/Btot/sig2; end Errors = Errors totalErrors/Btot/ChannelIter/TransmitIter; TotEbNo = TotEbNo mean(EbNo); EbNo = ;Endcreate_channel.m:产生频率选择性衰落的瑞利信道,参数由天线结构,OFDM系统的结构和功率时延结构来决定。function H, H_f=create_channel(Mt, Mr, A, N);% function H, H_f=create_channel(Mt, Mr, A, N);% A 功率时延谱矢量% Mt 发送天线数% Mr 接收天线数% N在一个OFDM符号发送天线端的矢量符号数% 例如在一个OFDM符号中有N个MIMO传输%频率选择性瑞利信道,假设复高斯过程在相位和幅度上是独立的。% 定义信道H_int = 1/sqrt(2)*(randn(Mr*length(A),Mt) + j*randn(Mr*length(A),Mt);H_int2=;for i = 1:length(A) H_int2 = H_int2;sqrt(A(i)*H_int(i-1)*Mr+1:i*Mr,:);endH_int2 = H_int2;zeros(N-length(A)*Mr,Mt);H_f = zeros(Mr,Mt*(N-16);for i = 1:Mt for jj = 1:Mr h_f = fft(H_int2(jj:Mr:(N-16-1)*Mr+jj,i); for k = 1:(N-16) H_f(jj,i+(k-1)*Mt) = h_f(k); end endendH=H_int2;for i = 1:N-1 H=H,zeros(Mr*i,Mt);H_int2(1:(N-i)*Mr,:);Endsvd_decompose_channel.m:假设所有的信道特性都是知道,那么传输是通过平行奇异值模型。这个函数就是将信道分解成几个这样的模型。function U, S, V = svd_decompose_channel(Mt, Mr, h_f, N);% U S V = svd_decompose_channel(Mt, Mr, h_f, N);% 将信道按奇异值分解% Mt 发送天线数% Mr 接收天线数% h_f MIMO冲击响应- Mr 行, Mt*L 列 ,其中L 是信道有效时间% N 子载波数U = ;S = ;V = ;for i = 1:N Utmp Stmp Vtmp = svd(h_f(:,(i-1)*Mt+1:i*Mt); U=U Utmp; V=V Vtmp; S=S Stmp;endS = sum(S,1);BitLoad.m:应用比特分配算法根据当前的信道特性来达到所期望的比特和能量的分配。function bits_alloc,energy_alloc = BitLoad(subchan_gains,total_bits,num_subc,gap,noise,M)% 比特分配算法% -%输入 :% subchan_gains : 子载波增益% total_bits : 比特总数 % num_subc :子载波数% gap : 系统间隔% noise : 噪声功率% M : 最大星座大小%输出:% bits_alloc : 分配给每个子信道的比特数% power_alloc : 分配的总功率% -% 计算每个信道的SNRSNR = ComputeSNR(subchan_gains,noise,gap);% 这个函数初始化系统,即根据Chow算法分配比特数和功率,这个算法要比Campello算% 法有效bits_alloc, energy_alloc = chow_algo(SNR,num_subc,M);%根据目前信道的增益形成能量增加表,以供Campello算法使用energytable = EnergyTableInit(SNR,M);%使用Campello算法bits_alloc,energy_alloc = campello_algo(bits_alloc,energy_alloc,energytable,total_bits,num_subc,M);ComputeSNR.m:假设子载波确定,这个简单的函数用来实现各个子信道的SNR值(每个单独的值是针对独立的信道)。function SNR = ComputeSNR(subcar_gains,noise,gap)SNR = abs(subcar_gains.2)./(noise*gap);chow_algo.m:应用Chows算法来实现特别的比特和能量分配。function bits_alloc, energy_alloc = chow_algo(SNR,num_subc,M)for i = 1:num_subc% 假设每个子信道都是平坦衰落信道% 初始化每个子信道的比特数 tempbits = log2(1 + abs(SNR(i); roundtempbits = round(tempbits); %取整 if (roundtempbits 8) %将比特数限制在215之间 roundtempbits = 8; end if (mod(roundtempbits,2)= 1 & roundtempbits = 1) roundtempbits = roundtempbits -1; end if roundtempbits 0 %计算每个子信道的功率 energy_alloc(i) = (2roundtempbits-1)/SNR(i) ; else energy_alloc(i) = 0; end bits_alloc(i) = roundtempbits; % 更新每个子信道的比特数 endEnergyTableInit.m:根据SNR的值,针对每个信道产生一个能量增加的表。function energytable = EnergyTableInit(SNR,M);%输入:% subcar_gains : 子载波增益% M : 最大星座大小% Gap :系统Gap% Noise : 噪声功率% 输出:% energytable : 能量表 %根据子载波增益,我们计算1,2,3,6,8比特给每个子载波传输所需要的能量energytable = abs(1./SNR)*(2.(1:M+1-1);%增加能量,从M增加到一个未分配的更高的值energytable(:,M+1) = Inf*ones(size(energytable(:,M+1);for i = 3:2:M energytable(:,i) = (energytable(:,i) +energytable(:,i+1)/2; energytable(:,i+1) = energytable(:,i);endcampello_algo.m:应用Campellos算法根据给定的信道条件汇聚成最佳的比特和能量分配。%根据campello算法分配最优的比特数和能量数function bits_alloc, energy_alloc = campello_algo (bits_alloc,energy_alloc,energytable,total_bits,num_subc,M) bt = sum(bits_alloc);% 不能传输大于M的比特数if total_bits M*num_subc total_bits = M*num_subc;endwhile (bt = total_bits) if (bt total_bits) max_val = 0; max_ind = ceil(rand(1)*num_subc); for i = 1:num_subc if bits_alloc(i) = 0 temp = energytable(i,bits_alloc(i) ; else temp = 0; end if (temp max_val) max_val = temp; max_ind = i; end end if (bits_alloc(max_ind) 0) bits_alloc(max_ind) = bits_alloc(max_ind) -1; energy_alloc(max_ind) = energy_alloc(max_ind) - max_val; bt = bt-1; end else min_val = Inf; min_ind = ceil(rand(1)*num_subc); for i = 1:num_subc if bits_alloc(i) =0 & bits_alloc(i) 9 temp = energytable(i,bits_alloc(i) + 1); else temp = Inf; end if (temp min_val) min_val = temp; min_ind = i; end end if (bits_alloc(min_ind) max_val) max_val = temp; max_ind = i; end endendmin_val = Inf;for i = 1:num_subc if (i= index & bits_alloc(i) = 1) if bits_alloc(i) =0 temp = energytable(i,bits_alloc(i) + 1); end if (temp min_val) min_val = temp; min_ind = i; end endendif (min_val length(ofdm_symbol) error( The guard interval is greater than the ofdm symbol duration );end% The guard symbol is the copy of the end of the ofdm symbol to the beginning% of the ofdm symbol.guard_symbol = ofdm_symbol(end-guard_interval+1:end);% Add the cyclic prefix to the ofdm symbolofdm_symbol = guard_symbol ofdm_symbol;channel.m: 将信道作用于OFDM帧。function y = channel(sig2, Mt, Mr, x, H, N);% function y = channel(sig2, Mt, Mr, x, H, N)%信道传输模型% 输入:% sig2 噪声% Mt 发射天线数% Mr 接收天线数% x 复数形式的输入信号(对于MIMO,输入时一个矩阵,每列都是某一时刻天线输出值)% H 频率选择性信道% N - OFDM帧中的符号数% 输出:% y 信道输出 (也是MIMO矩阵,与x矩阵类似)%产生噪声序列(每行代表不同天线, 列代表时间) 噪声是空间时间独立的高斯白噪声noise = sqrt(sig2)*1/sqrt(2)*(randn(Mt*N,1) + j*randn(Mt*N,1);y = H*x + noise;fft_cp_rx_blk.m: OFDM系统的FFT模块。function rec_symbol = fft_cp_rx_blk(ofdm_symbol,num_subc,guard_interval)%-%FFT和去除循环嵌缀% -% 输入 : % ofdm_symbol : 接收来自信道的OFDM符号% num_subc : 子载波数% guard_interval :保护间隔%输出 : % rec_symbol :移除循环嵌缀和经过FFT的接收信号在频域的形式% -if (guard_interval length(ofdm_symbol) error( The guard interval is greater than the ofdm symbol duration );end% The guard symbol (cyclic prefix) is removed from the ofdm symbolrec_time_symbol = ofdm_symbol(guard_interval+1:end);% The FFT of the time domain signal after the removal of cyclic prefixrec_symbol = fft(rec_time_symbol,num_subc);shape.m:通过用信道左矩阵过滤接收到的矢量function shaped_vals = sha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年夫妻共同财产分割离婚协议范本
- 2025年房屋抵押贷款与房地产评估服务合同样本
- 2025版外聘讲师企业执行力提升合作合同协议书
- 2025年度品牌形象广告设计与施工一体化合同
- 2025版三轮车车身涂装环保材料供应合同
- 2025版燃料油期货交易合同范本及风险控制细则
- 2025版新能源产业入股合同范本
- 2025版高效节水灌溉项目施工总承包合同范本
- 贵州省印江土家族苗族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版全新科技项目居间合作协议
- 保险核保岗位招聘笔试题与参考答案(某世界500强集团)2025年
- 《品类管理》教材正文
- 高职高考英语词汇表
- 必刷题2024七年级数学下册数据分析专项专题训练(含答案)
- GB/T 4706.19-2024家用和类似用途电器的安全第19部分:液体加热器的特殊要求
- 12D401-3 爆炸危险环境电气线路和电气设备安装
- DL∕T 796-2012 风力发电场安全规程
- DL∕ T 799.1-2010 电力行业劳动环境监测技术规范 第1部分:总则
- 江苏文化和旅游厅事业单位笔试真题2024
- 实验室生物安全管理手册
- 病理科实验室生物安全评估表
评论
0/150
提交评论