




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、cdma 期 末 論 文基于matlab的is-95系統(tǒng)仿真 課程名稱 cdma蜂窩移動通信 姓 名 學 號 專 業(yè) 成 績 任課老師 上課學期 1 作業(yè)要求l 分析給出的源程序,逐行給出中文注釋,并分析仿真結果。l 按照如圖1所示的框圖設計一個cdma系統(tǒng),并進行仿真。信源卷積編碼交織編碼擴頻加擾碼調制awgn信道解調解擾碼信宿解卷積解交織解擴圖1 cdma系統(tǒng)框圖2 題目一2.1 源程序注釋2.1.1 主程序部分%main_cdma_forward.m%此函數(shù)用于is-95前向鏈路系統(tǒng)的仿真,包括擴%頻調制,匹配濾波,rake接收等相關通信模塊。%但沒有在頻帶上進行調制仿真。%仿真環(huán)境:
2、加性高斯白噪聲信道.%數(shù)據速率 = 9600 kbps% clear allclose allclc disp(-start-);% 定義通信仿真全局變量global zi zq zs show r gi gq% zi i支路擴頻pn序列生成器狀態(tài)% zq q支路擴頻pn序列生成器狀態(tài)% zs 擾碼pn序列生成器狀態(tài)% show 指示是否畫出仿真過程各部分產生的輸出% r 仿真時碼元寬度% gi i支路擴頻pn序列% gq q支路擴頻pn序列 clear j;show = 0;sd = 0; % 選擇軟/硬判決接收 %-主要的仿真參數(shù)設置-% 信道數(shù)據率為9600 bpsbitrate = 9
3、600;% 碼片速率為1.2288 mhzchiprate = 1228800;% 消息碼元個數(shù)n = 184;% 匹配濾波器類型-升余弦mftype = 1; r = 5; %+viterbi生成多項式+% 維特比譯碼器(譯卷積碼)g_vit = 1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1;% 生成矩陣的長度k = size(g_vit, 2);% 輸出碼片數(shù)l = size(g_vit, 1);%+ %+walsh矩陣+% 規(guī)定需要的walsh序列長度wlen = 64;% 生成 64 bit walsh序列1010.walsh = reshape(1;0*o
4、nes(1, wlen/2), wlen , 1);%walsh = zeros(wlen ,1);%+ %+擴頻調制pn碼的生成多項式+%gi = 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1;%gq = 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1; % i信道擴頻pn序列生成多項式gi_ind = 15, 13, 9, 8, 7, 5, 0;% i信道擴頻pn序列生成多項式gq_ind = 15, 12, 11, 10, 6, 5, 4, 3, 0;% 初始化序列gi(16 bit,全零)gi = zeros(16, 1);% 根據生成多項式gi_in
5、d將對應位置1gi(16-gi_ind) = ones(size(gi_ind);% 初始化i路信道pn碼生成器的初始狀態(tài)zi = zeros(length(gi)-1, 1); 1;% 初始化序列gi(16 bit,全零)gq = zeros(16, 1);% 根據生成多項式gq_ind將對應位置1,得到二進制生成多項式gq(16-gq_ind) = ones(size(gq_ind);% q路信道pn碼生成器的初始狀態(tài)zq = zeros(length(gq)-1, 1); 1;%+ %+擾碼生成多項式+% 擾碼序列生成多項式gs_ind = 42, 35, 33, 31, 27, 26,
6、 25, 22, 21, 19, 18, 17, 16, 10, 7, 6, 5, 3, 2, 1, 0;% 初始化序列gsgs = zeros(43, 1);% 根據生成多項式gs_ind將對應位置1,得到二進制生成多項式gs(43-gs_ind) = ones(size(gs_ind);% 長序列生成器的初始狀態(tài)zs = zeros(length(gs)-1, 1); 1;%+ %+awgn信道+% 擴頻增益ebec = 10*log10(chiprate/bitrate);%ebecvit = 10*log10(l);% 仿真信噪比范圍(db)% ebno = -2 : 0.5 : 6.
7、5;ebno = -2 : 0.5 : 4;%+ %- %-主程序- % 初始化向量errorsb = ; errorsc = ; nn = ;% errorsb% errorsc% nn% 輸出信息說明采用的維特比譯碼判決類型if (sd = 1) fprintf(n soft decision viterbi decodernn);else fprintf(n hard decision viterbi decodernn);end % 對信噪比范圍內每個數(shù)字進行仿真for i=1:length(ebno) % 輸出當前仿真信噪比 fprintf(nprocessing %1.1f (db
8、), ebno(i); iter = 0; % 仿真計數(shù)器 errb = 0; % 出錯的比特數(shù)(編碼前) errc = 0; % 出錯的子碼數(shù)(編碼后) while (errb 300) & (iter 0); % 輸出已編碼、交織并加擾的消息比特與所用到的擾碼 %(碼率:19.2 kbps) txchips, scrambler = packetbuilder(txdata, g_vit, gs); % 下面進行擴頻調制,調制后碼率為1.2288mcps x pn mf = modulator(txchips, mftype, walsh); %+ %+%信道產生高斯白噪聲 noise =
9、 1/sqrt(2)*sqrt(r/2)*( randn(size(x) + j*randn(size(x)*10(-(ebno(i) - ebec)/20); %j*randn(size(x)*10(-(ebno(i) - ebec)/20); %向已調信號中混入加性高斯白噪聲 r = x+noise; %+ %+接收機+ % 軟判決,輸出速率為19.2 kcps 經過卷積編碼的序列 rxsd = demodulator(r, pn, mf, walsh); % 對rake接收機解調后的信號進行過零比較 rxhd = (rxsd0); if (sd) % 如果選擇了軟判決則會進行軟判決, %
10、 并進行解擾、解交織維特比譯碼 rxdata metric= receiversd(rxsd, g_vit, scrambler); else % 進行硬判決,并進行解擾、解交織維特比譯碼 rxdata metric= receiverhd(rxhd, g_vit, scrambler); end %+ if(show) % 畫出軟判決輸出結果 subplot(311); plot(rxsd, -o); title(soft decisions); % 將判決結果與發(fā)送序列異或,顯示出錯碼(維特比譯碼前) subplot(312); plot(xor(txchips, rxhd), -o);
11、title(chip errors); % 將收發(fā)數(shù)據進行異或,顯示出錯碼 subplot(313); plot(xor(txdata, rxdata), -o); title(data bit errors. metric = , num2str(metric); pause; end if(mod(iter, 50)=0) % 如果已循環(huán)次數(shù)為50的倍數(shù)則打印.將變量保存 fprintf(.); % 將變量保存到硬盤 save tempresults errb errc n iter end % 計算編碼前,解碼后出錯的消息比特(9600 bps)數(shù)量 errb = errb + sum(
12、xor(rxdata, txdata); % 計算經過編碼出錯的子碼(19.2 kbps)數(shù) errc = errc + sum(xor(rxhd, txchips); % 循環(huán)次數(shù)加1 iter = iter+ 1; end % 生成誤比特數(shù)向量 errorsb = errorsb; errb; % 生成誤碼數(shù)向量 errorsc = errorsc; errc; % 計算本次共仿真的消息比特數(shù) nn = nn; n*iter; % 保存所有產生的數(shù)據 save simdata *end %+誤碼率計算+% 計算誤碼率(卷積編碼前的信號)perrb = errorsb./nn;% perrb
13、1 = errorsb1./nn1;% 計算誤碼率(卷積編碼后的信號)perrc = errorsc./nn;% bpsk調制理論誤碼率(無卷積編碼與擴頻)pbpsk= 1/2*erfc(sqrt(10.(ebno/10);% 有維特比譯碼但無擴頻的理論誤碼率pcvit= 1/2*erfc(sqrt(10.(ebno-ebecvit)/10);% 有擴頻但無維特比譯碼的理論誤碼率pc = 1/2*erfc(sqrt(10.(ebno-ebec)/10);%+ %+性能仿真顯示+figure;semilogy(ebno(1:length(perrb), perrb, b-*);hold on;%
14、 %semilogy(ebno(1:length(perrb1), perrb1, k-o);% hold on;semilogy(ebno(1:length(perrc), perrc, b-o);grid on;semilogy(ebno, pbpsk, b-.);semilogy(ebno, pcvit, k-.x);ylabel(ber);semilogy(ebno, pc, b-.x);xlabel(信噪比/db);ylabel(誤碼率);%+disp(-end-);%-2.1.2 packetbuilder函數(shù)用于信號傳輸之前的卷積編碼和交織編碼和加擾碼% *beginning o
15、f file*%packetbuilder.mfunction chipsout, scrambler = packetbuilder(databits, g, gs); % %此函數(shù)用于產生is-95前向鏈路系統(tǒng)的發(fā)送數(shù)據包 %+variables+% databits 發(fā)送數(shù)據(二進制形式)% g viterbi編碼生成多項式% gs 長序列生成多項式(擾碼生成多項式)% chipsout 輸入到調制器的碼序列(二進制形式)% scrambler 擾碼%+ % 全局變量global zs % 取得卷積碼的約束長度 k = 9k = size(g, 2); % 取得對于每一位消息碼編碼器的輸
16、出位數(shù) l = 2l = size(g, 1); % 計算擴頻后的子數(shù)%(原始比特:9.6 kbps- 卷積編碼后:19.2 kbps -擴頻后:1.2288 mbps) n = 64*l*(length(databits)+k-1);% 加入尾比特,并進行卷積編碼chips = vitenc(g, databits; zeros(k-1,1); % 交織編碼% 先將編碼器輸出轉為 24行16列矩陣interl = reshape(chips, 24, 16); % 再將轉置矩陣按串行輸出% 速率=19.2 kbps chips = reshape(interl, length(chips),
17、 1); % 產生擾碼 % pngen 用于產生1.2288 mc/s 的擾碼longseq zs = pngen(gs, zs, n); % 以下進行分頻,得到19.2 kbps 的擾碼scrambler = longseq(1:64:end); % 對編碼后的比特進行加擾(碼率; 19.2 kbps)chipsout = xor(chips, scrambler); %*end of file*2.1.3 modulator函數(shù)將信號進行擴頻和調制之后再發(fā)送%*beginningoffile*%vitenc.mfunction y = vitenc(g, x); % 此函數(shù)根據生成多項式進
18、行viterbi編碼 % %+variables+% g 生成多項式的矩陣% x 輸入數(shù)據(二進制形式) % y viterbi編碼輸出序列%+ % 取得對于每一位消息碼編碼器的輸出位數(shù)k = size(g, 1); % 取得消息比特長度l = length(x); % 進行二維卷積運算 yy = conv2(g, x); % 去除多余項yy = yy(:, 1:l); % 將輸出矩陣變?yōu)橐恍衴 = reshape(yy,k*l, 1); % 模2運算 y = mod(y, 2); %*endoffile*2.1.4 pngen函數(shù)根據pn序列的生成多項式產生pn序列2.1.5 vitenc函
19、數(shù)進行維比特編碼的函數(shù)%*beginningoffile*%pngen.mfunction y, z = pngen(g, zin, n);% 此函數(shù)是根據生成多項式和輸入狀態(tài)產生長度為n的偽隨機序列 %+variables+% g 生成多項式% zin 移位寄存器初始化% n pn序列長度% y 生成的pn碼序列% z 移位寄存器的輸出狀態(tài)%+ % 取得生成矩陣的長度l = length(g);% 移位寄存器的初始化z = zin;% 初始化輸出序列為全零y = zeros(n, 1);for i=1:n % 輸出最高位 y(i) = z(l); % 異或 z = xor(g*z(l), z
20、); % 移位 z = z(l); z(1:l-1);end%yy = filter(1, flipud(g), 1; zeros(n-1, 1);%yy = mod(yy, 2);%*end of file*2.1.6 函數(shù)demodulator對接收到的信號進行解調和解擴%*beginningoffile*%modulator.mfunction txout, pn, mf = modulator(chips, mftype, walsh);%此函數(shù)用于實現(xiàn)is-95前向鏈路系統(tǒng)的數(shù)據調制 %+variables+% chips 發(fā)送的初始數(shù)據% mftype 成型濾波器的類型選擇% wa
21、lsh walsh碼% txout 調制輸出信號序列% pn 用于擴頻調制的pn碼序列% mf 匹配濾波器參數(shù)%+ % 導入全局變量global zi zq show r gi gq % 計算輸出字碼數(shù)n = length(chips)*length(walsh); % 輸入速率 = 19.2 kbps, 輸出速率= 1.2288 mcps% 先將單極性歸二進制碼變換為雙極性碼% 再與walsh序列相乘,實現(xiàn)正交調制tmp = sign(walsh-1/2)*sign(chips-1/2);% 串并轉換chips = reshape(tmp, prod(size(tmp), 1);% 產生i支
22、路pn擴頻序列(1.2288mc/s)pni zi = pngen(gi, zi, n);% 產生q支路pn擴頻序列(1.2288mc/s)pnq zq = pngen(gq, zq, n);% 將i支路與q支路在復數(shù)域合并表示pn = sign(pni-1/2) + j*sign(pnq-1/2);% 同時對同相與正交分量進行擴頻擴頻chips_out = chips.*pn; % 對輸出序列進行0插值(加上信道中傳輸?shù)谋Wo間隔)chips = chips_out, zeros(n, r-1);chips = reshape(chips. , n*r, 1); %成型濾波器,以下代碼構造成型
23、濾波器switch (mftype) case 1 %升余弦濾波器(時域) l = 25; l_2 = floor(l/2); n = -l_2:l_2; b = 0.7; mf = sinc(n/r).*(cos(pi*b*n/r)./(1-(2*b*n/r).2); mf = mf/sqrt(sum(mf.2); case 2 %矩形濾波器 l = r; l_2 = floor(l/2); mf = ones(l, 1); mf = mf/sqrt(sum(mf.2); case 3 %漢明濾波器 l = r; l_2 = floor(l/2); mf = hamming(l); mf =
24、 mf/sqrt(sum(mf.2);end % 轉置mf = mf(:); % 利用卷積運算進行基帶濾波仿真txout = sqrt(r)*conv(mf, chips)/sqrt(2);% 去除冗余信息txout = txout(l_2+1: end - l_2); if (show) figure; % 畫出匹配濾波器的時域特性(沖擊響應) subplot(211); plot(mf, -o); title(matched filter); % 顯示網格 grid on; subplot(212); % 畫出功率譜 psd(txout, 1024, 1e3, 113); title(sp
25、ectrum);end%*endoffile*2.1.7 函數(shù)receiverhd接收機,硬判決,進行解擾、解卷積和解交織%*beginningoffile*%receiverhd.mfunction dataout, metric = receiverhd(hdchips, g, scrambler); % % 此函數(shù)用于實現(xiàn)基于viterbi譯碼的硬判決接收機 %+variables+% sdchips 硬判決rake接收機輸入符號% g viterbi編碼生成多項式矩陣% scrambler 擾碼序列% dataout 接收數(shù)據(二進制形式) % metric viterbi譯碼最佳度量
26、%+ % 如果輸入參數(shù)只有一個,則采用默認生成矩陣if (nargin = 1) g = 1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1; end % 速率=19.2 kbps % 解擾hdchips = xor(hdchips, scrambler); % 解交織interl = reshape(hdchips, 16, 24); hdchips = reshape(interl, length(hdchips), 1); % 維特比譯碼dataout metric = vitdec(g, hdchips, 1); %*endoffile*2.1.8 函數(shù)vitde
27、c硬判決的維比特譯碼%*beginningoffile*%vitdec.mfunction xx, bestmetric = vitdec(g, y, zerotail); % % 此函數(shù)是實現(xiàn)硬判決輸入的viterbi譯碼 %+variables+% g 生成多項式的矩陣% y 輸入的待譯碼序列 % zerotail 判斷是否包含0尾% xx viterbi譯碼輸出序列 % bestmetric 最后的最佳度量%+ % 輸出碼片數(shù) l = size(g, 1); % 生成多項式長度k= size(g, 2); % 狀態(tài)數(shù)n = 2(k-1); % 最大柵格深度t = length(y)/l;
28、 % 生成零矩陣 outmtrx = zeros(n, 2*l); for s = 1:n % 產生全1的矩陣與十進制轉成二進制的矩陣相乘 in0 = ones(l, 1)*0, (dec2bin(s-1), (k-1)-0); % 產生全1的矩陣與十進制轉成二進制的矩陣相乘 in1 = ones(l, 1)*1, (dec2bin(s-1), (k-1)-0); % 兩矩陣對應位置元素相乘之和對2求余 out0 = mod(sum(g.*in0), 2); % 兩矩陣對應位置元素相乘之和對2求余 out1 = mod(sum(g.*in1), 2); % 兩個矩陣合并 outmtrx(s,
29、:) = out0, out1; end % 初始狀態(tài) = 100 pathmet = 0; 100*ones(n-1), 1); % 取出第1列的元素pathmettemp = pathmet(:,1); % 生成零矩陣trellis = zeros(n, t); % 往矩陣第1列賦予0、1、2的遞增值trellis(:,1) = 0 : (n-1); % 矩陣變形 y = reshape(y, l, length(y)/l); for t = 1:t % 從1到t列逐列取出,并轉置 yy = y(:, t); for s = 0:n/2-1 % 對運算結果取最小值 b0 ind0 = mi
30、n( pathmet(1+2*s, 2*s+1) + sum(abs(outmtrx(1+2*s, 0+1:l) - yy).2); sum(abs(outmtrx(1+(2*s+1), 0+1:l) - yy).2) ); % 對運算結果取最小值 b1 ind1 = min( pathmet(1+2*s, 2*s+1) + sum(abs(outmtrx(1+2*s, l+1:l) - yy).2); sum(abs(outmtrx(1+(2*s+1), l+1:l) - yy).2) ); % 將b0與b1矩陣合并并賦值 pathmettemp(1+s, s+n/2) = b0; b1;
31、trellis(1+s, s+n/2, t+1) = 2*s+(ind0-1); 2*s + (ind1-1); end pathmet = pathmettemp; end %生成零矩陣 xx = zeros(t, 1); %如果包含零尾if (zerotail) %最佳標志位置1 bestind = 1; else %否則取矩陣最小值賦值 mycop, bestind = min(pathmet); end %最佳度量為矩陣被標志的位 bestmetric = pathmet(bestind); %將(bestind-1)/(n/2)結果向下取整%作為viterbi譯碼輸出序列最后一位xx
32、(t) = floor(bestind-1)/(n/2); %取數(shù)組元素賦nextstate初值nextstate = trellis(bestind, (t+1); for t=t:-1:2 %nextstate/(n/2)向下取整賦值給xx xx(t-1) = floor(nextstate/(n/2); %取數(shù)組元素賦值給nextstate nextstate = trellis( (nextstate+1), t); end %如果零尾if (zerotail) %取其中1到end-k+1位 xx = xx(1:end-k+1); end %*endoffile*2.1.9 函數(shù)rec
33、eiversd用于軟判決的接收機%*beginningoffile*%receiversd.mfunction dataout, metric = receiversd(sdchips, g, scrambler); % % 此函數(shù)用于實現(xiàn)基于viterbi譯碼的發(fā)送數(shù)據的恢復 %+variables+% sdchips 軟判決rake接收機輸入符號% g viterbi編碼生成多項式矩陣% scrambler 擾碼序列% dataout 接收數(shù)據(二進制形式) % metric viterbi譯碼最佳度量%+ if (nargin = 1) g = 1 1 1 1 0 1 0 1 1; 1
34、0 1 1 1 0 0 0 1; % 若只給出接收序列參數(shù),則重新定義生成多項式end % 速率=19.2 kbps sdchips = sdchips.*sign(1/2-scrambler); % 解擾384bit interl = reshape(sdchips, 16, 24); % 解交織 sdchips = reshape(interl, length(sdchips), 1); % 速率=19.2 kbps dataout metric = softvitdec(g, sdchips, 1); % 卷積解碼,判決%*endoffile* 2.1.10 函數(shù)softvitdec用于
35、軟判決的維比特譯碼%*beginningoffile*%softvitdec.mfunction xx, bestmetric = softvitdec(g, y, zerotail); % % 此函數(shù)是實現(xiàn)軟判決輸入的viterbi譯碼 %+variables+% g 生成多項式的矩陣% y 輸入的待譯碼序列 % zerotail 判斷是否包含0尾% xx viterbi譯碼輸出序列 % bestmetric 最后的最佳度量%+ l = size(g, 1); % 輸出碼片數(shù)k= size(g, 2); % 生成多項式的長度 n = 2(k-1); % 狀態(tài)數(shù) t = length(y)/l
36、; % 最大柵格深度 outmtrx = zeros(n, 2*l); % 存放256種移位寄存器狀態(tài)所對應的編碼for s = 1:n in0 = ones(l, 1)*0, (dec2bin(s-1), (k-1)-0); % 初始狀態(tài)為0時對應移位寄存器狀態(tài)in1 = ones(l, 1)*1, (dec2bin(s-1), (k-1)-0); % 初始狀態(tài)為1 out0 = mod(sum(g.*in0), 2); % 對應的編碼器輸出 out1 = mod(sum(g.*in1), 2); outmtrx(s, :) = out0, out1; % 存到編碼輸出狀態(tài)end outmt
37、rx = sign(outmtrx-1/2); % 轉換成雙極性碼 pathmet = 100; zeros(n-1), 1); % 初始狀態(tài) = 100 pathmettemp = pathmet(:,1); trellis = zeros(n, t); trellis(:,1) = 0 : (n-1); y = reshape(y, l, length(y)/l); % y為2*192矩陣for t = 1:t yy = y(:, t); % 取信碼,每兩個一組for s = 0:n/2-1 % 計算收到序列與所有可能發(fā)送序列的距離 b0 ind0 = max( pathmet(1+2*s, 2*s+1) + outmtrx(1+2*s, 0+1:l) * yy; outmtrx(1+(2*s+1), 0+1:l)*yy ); b1 ind1 = max( pathmet(1+2*s, 2*s+1) + outmtrx(1+2*s, l+1:l) * yy; outmtrx(1+(2*s+1), l+1:l) * yy ); p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河北省滄州市滄縣三下數(shù)學期末監(jiān)測模擬試題含解析
- 2025年02月萊陽市事業(yè)單位工作人員(171人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年02月浙江省對外交流服務中心編外人員公開招聘2人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 零件數(shù)據采集與逆向工程 課件全套 任務1-6 回轉體零件的逆向建模-注塑類零件的數(shù)據采集與逆向建模
- 課題開題報告:地方高等教育創(chuàng)新發(fā)展研究
- 課題開題報告:初中數(shù)學“綜合與實踐”領域教學實踐研究
- 錫企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 鈮礦企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 減肥產品成分透明度提升行業(yè)跨境出海戰(zhàn)略研究報告
- 阻燃劑企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 2018年版電工-國家職業(yè)技能標準
- 反強迫勞動反歧視反騷擾培訓課件
- 軟件工程導論課件(全)
- 水工-建筑物課件
- EBS-發(fā)運管理操作實例
- 中職生心理特征和常見心理問題
- 晉中信息學院基本信息登記表
- 旋挖樁施工工藝
- 護理安全警示教育ppt
- GB/T 5392-2004林業(yè)機械油鋸技術條件
- 食品安全 PPT課件7農獸藥化學性污染對食品安全性的影響
評論
0/150
提交評論