版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、总结:小波即小区域的波,是一种特殊的长度有限、平均 值为零的波形。它有两个特点:一是“小”,即在时域具有 紧支集或近似紧支集;二是正负交替的“波动性”,也即支 流分量为零。傅立叶分析是将信号分解成一系列不同频率的 正弦波的叠加,同样小波分析是将信号分解为一系列小波函 数的叠加,而这些小波函数都是由一个母小波函数经过平移 和尺度伸缩得来的。小波分析优于傅立叶分析的地方是,它在时域和频域 同时具有良好的局部化性质。而且由于对高频成分采 用逐渐精细的时域或频域取样步长,从而可以聚焦到 对象的任何细节,所以被称为“数学显微镜”。小波 分析广泛应用与信号处理、图像处理、语音识别等领 域。可以这样璋解小波
2、变换的含义:打个比喻,我们 用镜头观察目标信号/"代表镜头所起的所用。 b相当于使镜头相对于目标平行移动,a的所用相当于 镜头向目标推进或远离。由此W见,小波变换有以下 特点:度/多分辨的特点,可以山粗及细地处理信号; 可以看成用基本频率特性为乳口)的带通滤波器在不 同尺度a下对信号做滤波。A适当地选择小波,使y”)在时域上为有限支撑,火口) 在频域上也比较集中,就可以使WT在时、频域都具 有表征信号局部特征的能力。小波运算的基本步骤:(1) 选择一个小波函数,并将这个小波与要分析的信 号起始点对齐;(2) 计算在这一时刻要分析的信号与小波函数的逼近 程度,即计算小波变换系数C, C
3、越大,就意味若此 刻信号与所选择的小波函数波形越相近,如图所示。Wavelet(3) 将小波函数沿时间轴向右移动一个单位时间,然后 重复步骤(1)、(2)戏此时的小波变换系数C,宜到覆 盖完整个信号长度,如图所示;WaveletSignal(4)将所选择的小波函数尺度伸缩个单位,然后重复 步骤(1)、(2)、(3),如图所示:C = 0.2247(5)对所有的尺度伸缩重复步骤、(2)、(3)、(4)。小波的应用主要是信号的处理,其中最典型的应用是 小波图象压缩。另外,小波在诸如信号去噪、特征提 取等多方面均有成功的应用。下面以图象去噪为例说 明小波应用策略。小波的各种应用均可分为以下三步:1)
4、对原始信号作小波变换,将信号由空域变换到频域2)对小波系数做相应处理;"3)对处理后的小波系数做小波逆变换,还原原信号。600 ; 900小波变换是克服其他信号处理技术缺陷的一种分析信号的方法。小波由一族小波基函数 构成,它可以描述信号时间(空间)和频率(尺度)域的局部特性。采用小波分析最大优点 是可对信号进行实施局部分析,可在任意的时间或空间域中分析信号。小波分析具有发现其他信号分析方法所不能识别的、隐藏于数据之中的表现结构特性的信息,而这些特性对机械故障和材料的损伤等识别是尤为重要的。如何选择小波基函数目前还没有一个理论标准,常用的小波函数有 Haar、Daubechies(db
5、N)、Morlet、Meryer、Symlet、Coiflet > Biorthogonal 小 波等15种。但是小波变换的小波系数为如何选择小波基函数提供了依据。小波变换后的系数比较大,就表明了小波和信号的波形相似程度较大;反之则比较小。另外还要根据信号处理的目的来决定尺度的大小。如果小波变换仅仅反映信号整体的近似特征,往往选用较 大的尺度;反映信号细节的变换则选用尺度不大的小波。由于小波函数家族成员较多,进行小波变换目的各异,目前没有一个通用的标准。根据实际运用的经验,Morlet小波应用领域较广,可以用于信号表示和分类、图像识别特征提取;墨西哥草帽小波用于系统识别;样条小波用于材料
6、探伤;Shannon正交基用于差分方程求解。现在对小波分解层数与尺度的关系作如下解释:是不是小波以一个尺度分解一次就是小波进行一层的分解?比如:C,L=wavedec(X,N,'wname')中,N为尺度,若为1,就是进行单尺度分解,也就 是分解一层。但是 W=CWT(X,2:2:128,'wname','plot')的分解尺度又是从 2128以2为步进的,这里的“分解尺度”跟上面那个“尺度”的意思一样吗?C,L=wavedec(X,N,'wname')中的N为分解层数,不是尺度,'以wname'是DB小波为例,
7、如DB4, 4为消失矩,则一般滤波器长度为 8,阶数为7.wavedec针对于离散,CWT是连续的。多尺度又是怎么理解的呢?多尺度的理解:如将0-pi定义为空间V0,经过一级分解之后 V0被分成0-pi/2的低频子 空间V1和pi/2-pi的高频子空间 W1,然后一直分下去.得到VJ+WJ+.W2+W1. 因为 VJ和WJ是正交的空间,且各 W子空间也是相互正交的.所以分解得到了是相互不包含的 多个频域区间,这就是多分辩率分析,即多尺度分析.当然多分辨率分析是有严格数学定义的,但完全可以从数字滤波器角度理解它.当然,你的泛函学的不错,也可以从函数空间角度理解.是不是说分解到 W3、W2、W1、
8、V3就是三尺度分解?简单的说尺度就是频率,不过是反比的关系.确定尺度关键还要考虑你要分析信号的采样频率大小,因为根据采样频率大小才能确定你的分析频率是多少.(采样定理).然后再确定你到底分多少层.假如我这有一个10hz和50hz的正弦混合信号,采样频率是500hz,是不是就可以推断出10hz和50hz各自对应的尺度了呢?我的意思是,是不是有一个频率和尺度的换算公式?实际频率=小波中心频率X采样频率/尺度在小波分解中,若将信号中的最高频率成分看作是1,则各层小波小波分解便是带通或低通滤波器,且各层所占的具体频带为(三层分解)a1:00.5 d1: 0.51; a2:00.25 d2:0.250.
9、5; a3: 00.125; d3:0.1250.25可以这样理解吗?如果我要得到频率为0.1250.25的信号信息,是不是直接对 d3的分解系数直接重构之后就是时域信息了?这样感觉把多层分解纯粹当作滤波器来用了,又怎么是多分辨分析? ?怎样把时频信息同时表达出来?这个问题非常好,我刚开始的时候也是被这个问题困惑住了,咱们确实是把它当成了滤波器来用了,也就是说我们只看重了小波分析的频域局部化的特性。但是很多人都忽略其时域局部化特性,因为小波是变时频分析的方法,根据测不准原理如果带宽大,则时窗宽度就要小。那么也就意味着如果我们要利用其时域局部化特性就得在时宽小的分解层数下研究, 也就是低尺度下。
10、这样我们就可以更容易看出信号在该段时间内的细微变化,但是就产生一个问题,这一段的频率带很宽,频率局部化就体现不出来了。对d3进行单支重构就可以得到0.125 0.25的信号了,当然频域信息可能保存的比较好,但如果小波基不是对称的话,其相位信息会失真。小波变换主要也是用在高频特征提取上。层数不是尺度,小波包分解中,N应该是层数,个人理解对应尺度应该是2AN小波分解的尺度为 a,分解层次为j。 如果是连续小波分解尺度即为 a。离散小波分解 尺度严格意义上来说为 a= 2Aj,在很多书上就直接将j称为尺度,因为一个j就对应者一个尺 度a。其实两者是统一的。小波基:一般从线性相位,消失矩,相似性,紧支
11、撑等来选择。Daubechies小波基的构造%此程序实现构造小波基% periodic_wavelet.mfunction ss=periodic_wavelet;clear;clc;% global MOMENT; % 消失矩阶数% global LEFT_SCALET; % 尺度函数左支撑区间% global RIGHT_SCALET; % 尺度函数右支撑区间% global LEFT_BASIS; % 小波基函数左支撑区间% global RIGHT_BASIS; % 小波基函数右支撑区间% global MIN_STEP; % 最小离散步长% global LEVEL; %计算需要的层
12、数(离散精度)% global MAX_LEVEL; % 周期小波最大计算层数s2,h=scale_integer;test,h=scalet_stretch(s2,h);wave_base=wavelet(test,h);ss=periodic_waveletbasis(wave_base);function s2,h=scale_integer;%本函数实现求解小波尺度函数离散整数点的值% sacle_integer.mMOMENT=10; %消失矩阶数LEFT_SCALET=0; %尺度函数左支撑区间RIGHT_SCALET=2*MOMENT-1; %尺度函数右支撑区间LEFT_BASI
13、S=1-MOMENT;%小波基函数左支撑区间RIGHT_BASIS=MOMENT;%小波基函数右支撑区间MIN_STEP=1/512;% 最小离散步长LEVEL=-log2(MIN_STEP); %计算需要的层数(离散精度) MAX_LEVEL=8; %周期小波最大计算层数 h=wfilters('db10','r'); % 滤波器系数 h=h*sqrt(2); % FI(T)=SQRT(2)*SUM(H(N)*FI(2T-N) N=0:2*MOMENT-1; for i=LEFT_SCALET+1:RIGHT_SCALET-1for j=LEFT_SCALET
14、+1:RIGHT_SCALET-1k=2*i-j+1;if (k>=1&k<=RIGHT_SCALET+1)a(i,j)=h(k); %矩阵系数矩阵elsea(i,j)=0;endendends,w=eig(a); %求特征向量,解的基 s1=s(:,1);s2=0;s1/sum(s1);0; % 根据条件 SUM(FI(T)=1,求解;%本函数实现尺度函数经伸缩后的离散值% scalet_stretch.mfunction s2,h=scalet_stretch(s2,h);MOMENT=10; %消失矩阶数LEFT_SCALET=0; %尺度函数左支撑区间RIGHT_S
15、CALET=2*MOMENT-1; %尺度函数右支撑区间LEFT_BASIS=1-MOMENT; %小波基函数左支撑区间RIGHT_BASIS=MOMENT; %小波基函数右支撑区间MIN_STEP=1/512;% 最小离散步长LEVEL=-log2(MIN_STEP); %计算需要的层数(离散精度)MAX_LEVEL=8; %周期小波最大计算层数for j=1:LEVEL % 需要计算到尺度函数的层数t=0;for i=1:2:2*length(s2)-3% 需要计算的离散点取值(0, 1, 2, 3 -> 1/2, 3/2, 5/2)t=t+1;fi(t)=0;for n=LEFT_
16、SCALET:RIGHT_SCALET; %低通滤波器冲击响应紧支撑判断if (i/2A(j-1)-n)>=LEFT_SCALET&(i/2A(j-1)-n)<=RIGHT_SCALET)% 小波尺度函数紧支撑判断fi(t)=fi(t)+h(n+1)*s2(i-n*2A(j-1)+1);% 反复应用双尺度方程求解endendendclear sn1=length(s2);n2=length(fi);for i=1:length(s2)+length(fi) % 变换后的矩阵长度if (mod(i,2)=1)s(i)=s2(i+1)/2);%矩阵奇数下标为小波上一层(0,1,
17、2,3)离散值elses(i)=fi(i/2);%矩阵偶数下标为小波下一层(1/2,3/2,5/2)(经过伸缩变换后)的离散值endends2=s;end%采用双尺度方程求解小波基函数PSI(T)% wavelet.m function wave_base=wavelet(test,h); MOMENT=10; %消失矩阶数 LEFT_SCALET=0; %尺度函数左支撑区间 RIGHT_SCALET=2*MOMENT-1; %尺度函数右支撑区间 LEFT_BASIS=1-MOMENT; %小波基函数左支撑区间 RIGHT_BASIS=MOMENT; %小波基函数右支撑区间 MIN_STEP=
18、1/512;% 最小离散步长LEVEL=-log2(MIN_STEP); %计算需要的层数(离散精度) MAX_LEVEL=8; %周期小波最大计算层数 i=0; for t=LEFT_BASIS:MIN_STEP:RIGHT_BASIS; % 小波基支撑长度 s=0; for n=1-RIGHT_SCALET:1-LEFT_SCALET % g(n)取值范围 if(2*t-n)>=LEFT_SCALET&(2*t-n)<=RIGHT_SCALET) % 尺度函数判断 s=s+h(1-n+1)*(-1)1n)*test(2*t-n)/MIN_STEP+1);% 计算任意精度
19、的小波基函数值end end i=i+1; wave_base(i)=s; end一维数字滤波器filter():Y=filter(B, A, X) 由传递函数模型向量 B、A描述的滤波器对向量X中的元素进行滤波,并将结果数据存放在向量Y中。Y, Zf=filter(B, A, X, Zi)给出了滤波器延时的初始和终止条件Zf和Zi。例子:人体心电信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后, 才能判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在试验中以x(n)作为输入序列,滤除其中的干扰成分。( x(n) = -4,-2,0,-4
20、,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4, -2,-4,8,12,12,10,6,6,4,0,0,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0Matlab程序设计如下:X=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8, 12,12,10,6,6,4,0,0,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0;figure;plot(
21、X);xlabel('时间');ylabel('幅值');wp=40; ws=50; rp=0.5; rs=40; Fs=200;N, Wn = buttord(wp/(Fs/2), ws/(Fs/2), rp, rs);b, a=butter(N, Wn);figure;H, W=freqz(b, a);plot(W*Fs/(2*pi), abs(H); grid;xlabel('频率 /Hz');ylabel('幅值');Y=filter(b,a,X);figureplot(Y)xlabel('时间');yla
22、bel('幅值');figurepsd(X, ,200);figurepsd(Y, ,200);end;分析这段程序可知包括以下几部分:(1) 首先绘制原始数据的图形;(2) 设计一个Butterworth低通滤波器并绘制出它的幅频响应曲线;(3) 用设计的滤波器对原数据进行滤波;(4) 绘制滤波以后的数据图形;(5) 绘制原数据功率谱图形;(6) 绘制滤波以后数据功率谱图形。滤波器的主要目的是按照设计者的目的,突出或抑制一些频段。 在本程序中,设计了一个低通滤波器,主要是抑制高频段突出低频段;在心电图信号分析中, 要滤除工业高频干扰,突出低频部分.有时某些信号容易受到噪声污染
23、,导致无法直接辨别信号的发展趋势。由于信号的发展趋势往往代表信号的低频部分,因此通过信号的多尺度分解,在分解的低频系数中可以观察到 信号的发展趋势。由于噪声的污染,从原始信号x中无法观察信号的发展趋势。通过进行五尺度的小波分解,在小波分解的低频系数重构中可以明显地看到原始信号的发展趋势。这是因为信号的发展趋势往往是信号的低频成分,在小波变换中对应着最大尺度小波变换的低频系数。此外还可以在低频中理解它,在进行低频成分的尺度分解时,随着分解层数的增加,它所含的高频成分会随之减少,因此随着尺度的增加,更多高频的信号被滤掉,可以看到信号的发展趋势。1. 监测信号的自相似性直观上讲,小波分解系数表示了信
24、号与小波之间的“相似指数”,如果相似程度越高,则相似指数越大。因此如果一个信号的不同的尺度之间相似,则小波系数在不同的尺度上也应该相似。因此可以通过小波分解检测信号的自相似性,即检测信号的分形特征。实践表明,通过小波分解可以很好地研究信号或图像的分形特征。下面通过一个简单的例子来说明小波分析在检测信号自相似性中的应用,待检测的信号是经过反复迭代生成的信号,因此具有自相似性。程序代码如下:load vonkoch;x=vonkoch;subplot(211);plot(x);title('原始信号');subplot(212);%进行一维连续小波变换f=cwt(x,2:2:128
25、,'coif3','plot');从图中可以看出分解后的小波系数在许多尺度上看上去都非常相似。2. 信号的奇异性检测信号的突变点和奇异点等不规则部分通常包含重要信息。一般信号的奇异性分为两种情况:(1)信号在某一时刻其幅值发生突变,引起信号的非连续,这种类型的突变称为第一类型的间断点;(2)信号在外观上很光滑,幅值没有发生突变,但是信号的一阶微分有突变发生且一阶微分不连续,这种类型的突变称为第二类型的间断点。应用小波分析可以检测出信号中的突变点的位置、类型以及变化的幅度。下面介绍小波分析在信号奇异性检测中的应用。(1)第一类型间断点的检测下面举例说明小波分析用于
26、检测第一类型的间断点。在本例中,信号的不连续是由于低频特征的正弦信号在后半部分突然有高频特征的正弦信号加入,首先利用傅里叶变换分析对信号在频域进行分析,发现无检测突变点,接着利用小波分析进行分析,结果证明它能够准确地检测出了信号幅值突变的位置,即高频信号加入的时间点。程序代码如下:load freqbrk;x=freqbrk;%对信号进行傅里叶变换f=fft(x,1024);f=abs(f);figure;subplot(211);plot(x);subplot(212);plot(f);%使用db6小波进行6层分解c,l=wavedec(x,6,'db6');figure(2
27、);subplot(811);plot(x);ylabel('x');%对分解的第六层低频系数进行重构a=wrcoef('a',c,l,'db6',6);subplot(812);plot(a);ylabel('a6');for i=1:6%对分解的第6层到第1层的高频系数分别进行重构d=wrcoef('d',c,l,'db6',7-i);subplot(8,1,i+2);plot(d);ylabel('d',num2str(7-i);end300400600600700800900
28、1000gp300400500600700 BOO 9001000300 400500 600700 BOO 900 100000O20rt O unpkp 0.0.00JO20300400500600700800900 1000rLL o 2HU210102r*,骚土勺5八J秋八用顶却顷气几“泊EP & LPo o 0 0-0 rt -u 5D5D 20 onJI300400500600700SOO9001000300400500600700BOO9001000rt o rlrL o 5n5_ 5 0 5o2000T300 400500 600700 BOO 900 10001:1
29、2 on Ju3004006006007008009001000由图中可以看出,由于傅里叶变换不具有时间分辨力,因此无法检测信号的间断点。而在小波分析的图中,在信号的小波分解的第一层高频系数di和第二层高频系数 d2中,可以非常清楚地观察到信号的不连续点,用db1小波比用db6小波要好。这个例子也表明小波分析在检测信号的奇异点时具有傅里叶变换无法比拟的优越性,利用小波分析可以精确地检测出信号的突变点。在信号处理中,信号中通常都包含噪声, 而噪声的存在增加了辨别信号不连续点的难度。一般来说,如果信号小波分解的第一层能够估计出噪声的大体位置,则信号的间断点就能够在小波分解的更深层次上表现出来。卜面
30、通过例子说明如何应用小波分析识别某一频率区间上的信号在本例中,使用小波分析一个由三个不同频率的正弦信号叠加的信号,看是否能将这 三个正弦信号区分开来,结果证明小波分析可以很好地识别某一频率区间的信号。程序代码如下:load sumsin;x=sumsin;figure;subplot(611);plot(x);ylabel('x');title('原始信号以及各层近似信号');%使用db3小波进行5层分解c,l=wavedec(x,5,'db3');for i=1:5%对分解的第5层到第1层的低频系数分别进行重构a=wrcoef('a
31、39;,c,l,'db3',6-i);subplot(6,1,i+1);plot(a);ylabel('a',num2str(6-i);endfigure;subplot(611)plot(x);ylabel('x')for i=1:5%对分解的第5层到第1层的高频系数进行重构d=wrcoef('d',c,l,'db3',6-i);subplot(6,1,i+1);plot(d);ylabel('d',num2str(6-i);end分析:1,在本例中,该信号是由周期分别为200、20、2的信号组成
32、的,它们的采样周期均为为方便起见,在此分别称为低频、中频和高频的正弦信号。从图中可以看出,低频、中频和 高频信号分别对应于分解的近似信号a4、细节信号d4以及细节信号di。MATLAB小波函数总结2007-05-23 09:04:16| 分类: matlab 编程 |字号 订阅函数含义*:小波通用函数Allnodes计算树结点appcoef 提取一维小波变换低频系数appcoef2提取二维小波分解低频系数bestlevt计算完整最佳小波包树besttree计算最佳(优)树* biorfilt双正交样条小波滤波器组biorwavf 双正交样条小波滤波器* centfrq求小波中心频率cgauwa
33、vf Complex Gaussian 小波cmorwavf coiflets 小波滤波器cwt 一维连续小波变换dbaux Daubechies小波滤波器计算dbwavf Daubechies 小波滤波器 dbwavf(W) W='dbN' N=1,2,3,.,50ddencmp获取默认值阈值(软或硬)痼标准depo2ind将深度-位置结点形式转化成索引结点形式detcoef提取一维小波变换高频系数detcoef2提取二维小波分解高频系数disp 显示文本或矩阵drawtree画小波包分解树(GUI)dtree 构造 DTREE 类dwt单尺度一维离散小波变换dwt2单尺度二
34、维离散小波变换dwtmode离散小波变换拓展模式* dyaddown二元取样* dyadup二元插值entrupd 更新小波包的痼值fbspwavfB样条小波gauswavf Gaussian 小波get获取对象属性值idwt单尺度一维离散小波逆变换idwt2 单尺度二维离散小波逆变换ind2depo将索引结点形式转化成深度一位置结点形式* intwave积分小波数isnode 判断结点是否存在istnode判断结点是否是终结点并返回排列值iswt 一维逆 SWT(Stationary Wavelet Transform)变换iswt2 二维逆SWT变换leaves Determine ter
35、minal nodesmexihat 墨西哥帽小波meyer Meyer 小波meyeraux Meyer小波辅助函数morlet Morlet 小波nodease 计算上溯结点nodedesc计算下溯结点(子结点)nodejoin 重组结点nodepar 寻找父结点nodesplt 分割(分解)结点noleaves Determine nonterminal nodesntnode Number of terminal nodesntreeConstructor for the class NTREE* orthfilt正交小波滤波器组plot绘制向量或矩阵的图形* qmf 镜像二次滤波器rbiowavf Reverse biorthogonal spline wavelet filtersread 读取二进制数据readtree 读取小波包分解树* scal2frq Scale to frequencysetshanwavf Shannon waveletsswt 一维 SWT(Stationary Wavelet Transform) 变换swt2 二维SWT变换symaux Symlet wavelet filter computation.symwavf Symlets小波
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年一级造价师之建设工程技术与计量(交通)全真模拟考试试卷A卷含答案
- 淘宝商城入住协议书
- 方塘转让协议书
- 无偿租借房屋协议书
- 墙纸店展示架与样板间创新创业项目商业计划书
- 多功能厨房油污清洁剂创新创业项目商业计划书
- 《大学生心理健康教育》试题题库(附答案)
- (2025年)社会工作者初级考试试题(+答案)
- 2024年江苏南京鼓楼区属国企集团人员招聘真题
- 2024年温州市瓯海旅游投资集团有限公司招聘真题
- 起重设备安装人员岗位责任划分方案
- 《工程造价鉴定意见书示范文本》
- 数控机床质量检验规定
- 信创基础知识培训课件
- (完整版)路面拆除施工方案
- 国家事业单位招聘2025中国工艺美术馆招聘拟聘人员笔试历年参考题库附带答案详解
- 2025年关于宗教干部教育整顿工作的自查报告
- 关于生命线的讲解
- 全国大学生职业规划大赛《机电一体化技术》专业生涯发展展示【高职(专科)】
- 绿色能源5万吨年生物质颗粒燃料生产线可行性研究报告
- 水尺施工方案
评论
0/150
提交评论