版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、DSP課程設(shè)計實 驗 報 告DTMF信號的產(chǎn)生及檢測院(系): 電子信息工程學(xué)院 設(shè)計人員:李俊青 07214068 尹征 07212081 成績:工程設(shè)計50報告20答辯30總分評語:指導(dǎo)教師簽字: 日期:北京交通大學(xué)電工電子教學(xué)基地2009年1月18日目 錄一、設(shè)計任務(wù)書1二、設(shè)計內(nèi)容5三、設(shè)計方案、算法原理說明10四、程序設(shè)計、調(diào)試與結(jié)果分析15 五、設(shè)計(安裝)與調(diào)試的體會25 六、參考文獻26DTMF信號的產(chǎn)生及檢測一、 設(shè)計任務(wù):雙音多頻DTMF(Dual Tone Multi Frequency)是在按鍵式電話機上得到廣泛應(yīng)用的音頻撥號信令,一個DTMF信號由兩個頻率的音頻信號疊
2、加構(gòu)成。這兩個音頻信號的頻率分別來自兩組預(yù)定義的頻率組:行頻組和列頻組。每組分別包括4個頻率,分別抽出一個頻率進行組合就可以組成16種DTMF編碼,分別記作09、*、#、A、B、C、D。如下圖1所示。圖1DTMF信令的編碼要用DSP產(chǎn)生DTMF信號,只要產(chǎn)生兩個正弦波疊加在一起即可;DTMF檢測時采用改進的Goertzel算法,從頻域搜索兩個正弦波的存在。設(shè)計要求及目標(biāo)基本部分:(1)使用C語言編寫DTMF信號的發(fā)生程序,要求循環(huán)產(chǎn)生09、*、#、A、B、C、D對應(yīng)的DTMF信號,并且符合CCITT對DTMF信號規(guī)定的指標(biāo)。(2)使用C語言編寫DTMF信號的檢測程序,檢測到的DTMF編碼在屏幕
3、上顯示。發(fā)揮部分:利用DTMF信號完成數(shù)據(jù)通訊的功能,并試改進DTMF信號的規(guī)定指標(biāo),使每秒內(nèi)傳送的DTMF編碼越多越好。二、設(shè)計內(nèi)容本實驗用C語言編寫程序,用軟件CCS5000編程實現(xiàn),并用兩塊TMS320C52X的DSP板連接實現(xiàn)DTMF信號的發(fā)生和檢測。三、設(shè)計方案及算法原理說明1、DTMF(雙音多頻)信號簡介雙音多頻DTMF(Dual Tone MultiFrequency)信令是音頻電話的撥號信號。由美國AT&T貝爾實驗室開發(fā)。這種撥號方法取代了脈沖撥號,DTMF編解碼器在編碼時將擊鍵或數(shù)字信息轉(zhuǎn)換成雙音信號(每一個號碼由兩個音頻信號組成,該雙音頻由按鍵所在的行和列對應(yīng)的頻率
4、決定)并發(fā)送,解碼時在收到的DTMF信號中檢測擊鍵或數(shù)字信息的存在性。電話中的雙音多頻信號(DTMF)有兩種作用:一是用于雙音多頻信號的撥號,去控制交換機接通被叫的用戶電話機;二是利用雙音多頻信號控制電話機各種動作,如播放留言、語言信箱等這些功能的實現(xiàn)離不開DTMF信號的正確產(chǎn)生和檢測,而本實驗所要實現(xiàn)的就是使用TMS320C52X來制作DTMF發(fā)生器和檢測器。頻率1209Hz1336Hz1477Hz1633Hz697Hz123A770Hz456B852Hz789C941Hz*0#D圖1 擊鍵相應(yīng)的DTMF信息2、發(fā)送部分原理DTMF編碼器基于兩個二階數(shù)字正弦波振蕩器(如圖2),一個用于產(chǎn)生行
5、頻,一個用于產(chǎn)生列頻。向DSP裝入相應(yīng)的系數(shù)和初始條件,就可以只用兩個振蕩器產(chǎn)生所需的八個音頻信號。典型的DTMF信號頻率范圍是7001700Hz,我們們在實驗中所選取的頻率(如圖(1)所示)最大頻率為1633HZ,為滿足抽樣不失真的條件,選取8000Hz作為采樣頻率。AA-1-1DTMF 輸出 +列頻率行頻率Z(-1)Z(-1)Z(-1)Z(-1)圖2 DTMF發(fā)生算法原理框圖由上圖數(shù)字振蕩器對的框圖,可以得到該二階系統(tǒng)函數(shù)的差分方程為:y(n)=-a1y(n-1)-a2y(n-2)其中al=-2cos0,a2=1,0=2*f0fS,fS為采樣頻率,0為歸一化數(shù)字頻率.f0為輸出正弦波的頻率
6、,A為輸出正弦波的幅度。該式初值為y(-1)=0,y(-2)=-Asin(0),其中需要根據(jù)不同頻率確定其初始化參數(shù)a1=-2cos0與y(-2)=-Asin0。下面以770Hz為例,詳細說明方程中系數(shù)的計算方法:f/fs=770/8000,0 =2*pi*f/fs cos,0 =0.8226,sin0=-0.5686。f/HZa1Y(-1)Y(-2)/A6970.853820-0.520477700.822630-0.568578520.784330-0.620339410.739110-0.6735812090.582060-0.8131413360.498200-0.8670614470
7、.399320-0.9168016330.284240-0.95874圖3 DTMF系數(shù)表為分辨出發(fā)送數(shù)字,數(shù)字之間必須有適當(dāng)長度的靜音,因此編碼器有兩個任務(wù),其一是音頻信號任務(wù),產(chǎn)生雙音樣本,其二是靜音任務(wù),產(chǎn)生靜音樣本。每個任務(wù)結(jié)束后,啟動下一個任務(wù)前(音頻信號任務(wù)或靜音任務(wù)),都必須復(fù)位決定其持續(xù)時間的定時器變量。在靜音任務(wù)結(jié)束后,DSP從數(shù)字緩存中調(diào)出下一個數(shù)字,判決該數(shù)字信號所對應(yīng)的行頻和列頻信號,并根據(jù)不同頻率確定其初始化參數(shù)a1=-2cos0 與y(-2)=-Asin0。另外,需要注意的是,由于本實驗需要用到DSK板上的CODEC模塊,因此在編寫的程序中還需要寫入ADDA轉(zhuǎn)換部分
8、。程序流程圖開始 DSK板初始化流水燈亮兩次初始化CODEC發(fā)送靜音信號循環(huán)取出0#,并查表得到行頻和列頻計算256點樣點值將樣點數(shù)轉(zhuǎn)換為Q15的數(shù)據(jù)格式如果D/A轉(zhuǎn)換器準(zhǔn)備好發(fā)送數(shù)據(jù),則將雙音頻樣點值寫到D/A轉(zhuǎn)換器DTMF樣點發(fā)送完否送完否Y用C語言編寫實現(xiàn)該流程。由該圖可知,編程時需要完成兩個任務(wù),即雙音任務(wù)和靜音任務(wù)。雙音任務(wù)的作用是產(chǎn)生雙音頻采樣值,靜音任務(wù)的作用是產(chǎn)生靜態(tài)采樣值。經(jīng)過一段時間后,兩個任務(wù)需要進行互換。整個程序與接收中斷服務(wù)同步。當(dāng)程序結(jié)束或暫停時,接收端同時停止工作。3、接收部分原理DTMF信號包含兩組音頻信號,解碼器的任務(wù)是通過數(shù)學(xué)變換把它從時域轉(zhuǎn)換到頻域,然后得
9、出對應(yīng)的數(shù)字信息由于DSP芯片處理的是數(shù)字信號,所以必須把輸入信號數(shù)字化,再用DSP芯片進行處理頻率檢測時,檢測出DTMF信號的基波及二次諧波,DTMF信號只在基波上有較高能量,而話音信號則在基波上疊加有較強的二次諧波,檢測二次諧波的作用是用來區(qū)分DTMF信號與語言和音樂信號,其中信號基波與二次諧波在N=205時系數(shù)如圖5。1st Harmonics(N=205) fs=8ksps2nd Harmonics(N=205) fs =8kspskfrequency(k/N)fs/Hzcoefficientcos(2pi k/N)kfrequency(k/N)fs/Hzcoefficientcos(
10、2pi k/N)187020.851623513930.45886207800.817933915520.34445228580.781154317110.22470249360.741424718710.101413112100.58157612428-0.329743413260.50442672667-0.500003814830.39505742945-0.676064216390.27972823264-0.83740 圖5 N=205時,基波與二次諧波對應(yīng)系數(shù)整個檢測過程分兩步:首先采用Goertzel算法在輸入信號中提取頻譜信息;接著作檢測結(jié)果的有效性檢查。(1)Goertzel
11、算法計算數(shù)字信號的頻譜可以采用DFT及其快速算法FFT,而在實現(xiàn)DTMF解碼時,采用Goertzel算法要比FFT更快。通過FFT可以計算得到信號所有譜線,了解信號整個頻域信息,而對于DTMF信號只用關(guān)心其8個行頻列頻及其二次諧波信息即可(二次諧波的信息用于將DTMF信號與聲音信號區(qū)別開)。Goertzel算法實質(zhì)是一個兩極點的IIR濾波器,離散傅立葉變換值,快速有效的提取輸入信號的頻譜信息,如圖6。yk(n)vk(-1)= vk(-2)=0x(n)x(N)=0-12cos(2k/N)-e(-j*2k/N)ZZ+vk(n)圖6 Goertzel算法原理框圖如圖可知,DFT計算可以等價為:Vk(
12、n)=x(n)+2cos(2k/N)Vk(n-1)-Vk(n-2), 0nN x(k)=yk(N)=Vk(N)-e-j2k/NVk(N-1) 由于在DTMF檢測中,輸入的信號是實數(shù)序列,并不需要檢測出8個行頻列頻的相位,只需要計算出其幅度平方即可。對于實序列x(n),Goertzel算法所需的內(nèi)部變量Vk(n)也為實數(shù)。因此計算/X(k)/2如下:|x(k)|2=|yk(N)|2=Vk2(n)+Vk2(n-1)-2cos(2k/N)Vk(N)Vk(N-1) 用上式的計算取代式(3)即可完全避免復(fù)數(shù)運算。(2)DTMF信號的有效性檢測得到了DTMF信號的基波及二次諧波的頻譜平方幅度信息后,需要通
13、過一系列檢測才能確定信號的有效性:a、DTMF信號的強度是否足夠大,行列頻率分量平方幅度和是否高于規(guī)定的門限值。b、如果DTMF信號存在,比較行列頻率的最大頻率分量差值,因為電話線具有低通特性,列頻比行頻衰減得要厲害,因此要設(shè)置一門限值。c、分別在行列頻率組比較頻譜分量,最強的譜線至少要比其他音頻信號高一個門限值。d、二次諧波分量是否小于某個值。e、判斷DTMF信號是否包含穩(wěn)定的數(shù)字信息,只有數(shù)字信息被連續(xù)檢測到兩次,才認為數(shù)字信息是穩(wěn)定的。f、最后要檢測數(shù)字信息之后是否有停頓狀態(tài),只有這樣才將當(dāng)前的數(shù)字作為有效數(shù)字。在每一個接收中斷到來時,表明采到一個新樣點。樣點值代入式,迭代計算8個行頻列
14、頻的中間變量v (n)(k為8個行頻列頻分別對應(yīng)的數(shù)字頻率),直到采到N=125個樣點(在8kHz采樣頻率下,約為15ms)。此時再按式計算8個行頻列頻的幅度平方|X(k)|2 。接下來將|X(k)|2與門限作比較,并作二次諧波檢測,判決出有效的音頻信號。將音頻信號映射為數(shù)字信號后,再與上一個檢測到的數(shù)字信號比較,最終判決出有效的數(shù)字信號,如圖7。 與發(fā)生部分原理相似,我們們也需要在檢測程序中加入AD/DA轉(zhuǎn)換部分。NNYYYNNY采樣開始采到新樣點?對8個行/列頻分別計算Vk (n)= x(n)+2cos(2k/N)Vk(n-1)-Vk(n-2)采到N個樣點?對8個行/列頻分別計算|x(k)
15、|2=|yk(N)|2=Vk2(n)+ Vk2(n-1)-2cos(2k/N)Vk(N)Vk(N-1)中間變量清零N樣點標(biāo)志=0幅度峰值大于門限?無二次諧波?成功檢測到數(shù)據(jù)返回并檢測靜音有靜音則進入下一次檢測圖7 DTMF檢測流程圖四、程序設(shè)計、調(diào)試與結(jié)果分析一程序設(shè)計1.發(fā)送程序#include <stdio.h>#include <math.h>#include <type.h> /數(shù)據(jù)類型頭文件 #include <board.h> /DSK板頭文件#include <codec.h> /AD50C頭文件 #include &l
16、t;mcbsp54.h> /多通道緩沖串口頭文件/子函數(shù)聲明void delay(int period);void send(int num);/全局變量定義HANDLE hHandset;/McBSP句柄s16 out_buffer256;float buffer256;/定義一個個的變量和緩沖數(shù)組 s16 n=0;int c=0,t=0,m=0,p=-1;char s;s16 tele_number16='0','1','2','3','4','5','6','7&
17、#39;,'8','9','A','B','C','D','*','#'/dtmf按鍵緩沖區(qū)float pi=3.1415926;void main() int cnt=2; if(brd_init(100) return;/DSK初始化失敗則返回 SWWSR=0X7249; /流水燈 while (cnt-)brd_led_toggle(BRD_LED0);/brd_delay_msec(500)delay(500);brd_led_toggle(BRD_LED1)
18、;/brd_delay_msec(500)delay(500);brd_led_toggle(BRD_LED2);/brd_delay_msec(500)delay(500);/初始化codec /* Open Handset Codec */ hHandset = codec_open(HANDSET_CODEC); /Acquire handle to codec /* Set codec parameters */ codec_dac_mode(hHandset,CODEC_DAC_15BIT); /DAC in 15-bit mode codec_adc_mode(hHandset,C
19、ODEC_ADC_15BIT); /ADC in 15-bit mode codec_ain_gain(hHandset,CODEC_AIN_6dB); /6dB gain on analog input to ADC codec_aout_gain(hHandset,CODEC_AOUT_MINUS_12dB); /-12dB gain on analog output from DAC codec_sample_rate(hHandset,SR_8000); /8KHz sampling rate send(n); fflush(stdin);/清空輸入緩沖區(qū),確保不影響后面的數(shù)據(jù)讀取vo
20、id send(int n)int k=0;int i;int pp;float f1,f2,ff; ff=2*pi/8000; i=k; while(1) while (!MCBSP_XRDY(HANDSET_CODEC) ;/等待接收handset處的采樣數(shù)據(jù) *(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=bufferi;/從handset處發(fā)送采樣數(shù)據(jù) i+; if(i=256) i=0; c+; if(c=15) pp=400; while(pp-) while (!MCBSP_XRDY(HANDSET_CODEC) ;/等待接收handset處的采
21、樣數(shù)據(jù) *(volatile u16*)DXR1_ADDR( HANDSET_CODEC)=0;/從handset處發(fā)送采樣數(shù)據(jù) fflush(stdin);/清空輸入緩沖區(qū),確保不影響后面的數(shù)據(jù)讀取 c=0; p+; s=tele_numberm; m+; if(m=16) m=0; switch (s) case '0' : f1=ff*941; f2=ff*1336; break; case '1' : f1=ff*697; f2=ff*1209; break; case '2' : f1=ff*697; f2=ff*1336; break
22、; case '3' : f1=ff*697; f2=ff*1477; break; case '4' : f1=ff*770; f2=ff*1209; break; case '5' : f1=ff*770; f2=ff*1336; break; case '6' : f1=ff*770; f2=ff*1477; break; case '7' : f1=ff*852; f2=ff*1209; break; case '8' : f1=ff*852; f2=ff*1336; break; case
23、 '9' : f1=ff*852; f2=ff*1477; break; case 'A' : f1=ff*697; f2=ff*1633; break; case 'B' : f1=ff*770; f2=ff*1633; break; case 'C' : f1=ff*852; f2=ff*1633; break; case 'D' : f1=ff*941; f2=ff*1633; break; case '*' : f1=ff*941; f2=ff*1209; break; case '
24、#' : f1=ff*941; f2=ff*1477; break; for(k=0;k<256;k+) bufferk=(0.65*sin(f1*k)+0.8*sin(f2*k)*16384;/定點處理,將數(shù)擴大16384=214且規(guī)定為Q15格式 out_bufferk=bufferk; /強制類型轉(zhuǎn)換 void delay(int period) int i, j; for(i=0; i<period; i+) for(j=0; j<period>>1; j+); 2.檢測程序#include <stdio.h>#include <
25、math.h>#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>HANDLE hHandset; float buffer205;/定義一個個的變量和緩沖數(shù)組 float pi=3.1415926; s16 test205; s16 dacdata; int k=0,l=0; int dtmf_flag=0; int result32=0;void delay(s16 period);/延時聲明void detect();u16 m=0,n=0,
26、c1=0;void main() s16 cnt=2; if(brd_init(100) return; SWWSR=0X7249; while ( cnt- )brd_led_toggle(BRD_LED0);/首先讓流水燈亮兩遍以示程序運行/* brd_delay_msec(500); */delay(500);brd_led_toggle(BRD_LED1);/* brd_delay_msec(500); */delay(500);brd_led_toggle(BRD_LED2);/* brd_delay_msec(500); */delay(500); /* 公式vk(n) = 2*c
27、oef*vk(n-1) - vk(n-2) + x(n) 基波系數(shù) 為 w8 x(n) 為 in buffer256 vk(n-2) 為 ai0 vk(n-1) 為 ai1 . vk(n) 為 ai2 */ hHandset = codec_open(HANDSET_CODEC); /* Acquire handle to codec */ codec_dac_mode(hHandset, CODEC_DAC_15BIT); /* DAC in 15-bit mode */ codec_adc_mode(hHandset, CODEC_ADC_15BIT); /* ADC in 15-bit
28、mode */ codec_ain_gain(hHandset, CODEC_AIN_6dB); /* 6dB gain on analog input to ADC */ codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); /* -6dB gain on analog output from DAC */ codec_sample_rate(hHandset,SR_8000); /* 8KHz sampling rate */ while(1) while (!MCBSP_RRDY(HANDSET_CODEC) ; /等待數(shù)據(jù)接受,判斷是不是有數(shù)
29、據(jù)來了 dacdata = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC);/接數(shù)據(jù) bufferk=dacdata/16384.0;/把接收到的數(shù)據(jù)賦值給緩沖數(shù)組 k+; if(k=205)/取205點 k=0; detect();/檢測收到的是什么數(shù)據(jù),進入檢測子程序 void detect() /檢測子程序 int i,j,x,y,c;char s;/定義變量 float w8,a83,amp8;/定義數(shù)組 w0=2*cos(2*pi*18/205);/分別把求方值的系數(shù)賦值給數(shù)組w1=2*cos(2*pi*20/205);w2=2*cos(2*pi*2
30、2/205);w3=2*cos(2*pi*24/205);w4=2*cos(2*pi*31/205);w5=2*cos(2*pi*34/205);w6=2*cos(2*pi*38/205);w7=2*cos(2*pi*42/205); for(i=0;i<8;i+)/利用格策爾算法的八重循環(huán),因為一共有八個基波系數(shù)ai0=0;ai1=0;for(j=1;j<=205;j+)/格策爾算法的一次諧波的樣點數(shù)ai2=wi*ai1-ai0+bufferj-1;/公式vk(n) = 2*coef*vk(n-1) - vk(n-2) + x(n)ai0=ai1;ai1=ai2;ampi=ai1
31、*ai1+ai0*ai0-wi*ai1*ai0;/計算收到的其平方值給數(shù)組 j=0; m=x; n=y; c1=10*m+n;for(i=0;i<8;i+) /此處循環(huán)只是為了記錄下面的檢測到的第一個頻率是第幾個頻率(一共八個) if(ampi>1500)/門限定義為1500,看信號的能量強弱,大于門限才算是能接收j+;if(j=1)/判斷門限后的基波(相當(dāng)于第一個頻率)否?有信號就一定會有第一個頻率x=i;else if(j=2)/判斷二次諧波的存在與否(相當(dāng)于第二個頻率)的到來y=i; c=x*10+y;s='/' if(dtmf_flag=0)if(j=2)/
32、如果是二次諧波存在就通過判斷接收的是什么信號,若不存在就返回。 if(c!=c1) m=x;n=y; c1=10*m+n; switch(c1)/;判斷收到的賦值c,通過x,y便能知道行頻多少和列頻多少,確定按鍵值 case 4:s='1'break; /八個頻率都是從小到大為0到7,0到3為x,4到7為y case 5:s='2'break; case 6:s='3'break; case 14:s='4'break; case 15:s='5'break; case 16:s='6'break;
33、 case 24:s='7'break; case 25:s='8'break; case 26:s='9'break; case 35:s='0'break; case 7:s='A'break; case 17:s='B'break; case 27:s='C'break; case 37:s='D'break; case 34:s='*'break; case 36:s='#'break; if(s!='/') r
34、esultl=s;l+; /printf("收到的數(shù)字為 %c.rn ",s);if(l=32) for(l=0;l<32;l+) printf("The number received is %c.rn ",resultl); l=0; dtmf_flag+; / dtmf_flag=0;else if (j=0)dtmf_flag=0; void delay(s16 period)/延時子程序 int i, j; for(i=0; i<period; i+) for(j=0; j<period>>1; j+); 二程序調(diào)
35、試,結(jié)果分析 1、編寫、編譯程序。(1)編寫程序在實驗中主要需要編寫的程序就是用C語言實現(xiàn)所需的公式,其他的如ADDA部分,CMD部分可以參考老師在課件中給的程序。(2)建立工程建立工程步驟如下:a、 創(chuàng)建一個新的工程:ProjectNew;b、 建立.c、.asm、.cmd程序:FileNewSource File;c、 添加庫文件:ProjectBuild Options;C程序運行支持庫: rts.lib,在C:tic5400cgtoolslib目錄下,將.h文件的路徑填入所示方框第一行。如圖8:圖8 DSK板庫文件: drv5402.lib和dsk5402.lib,在C:tic5400
36、dsk5402lib 目錄下。選擇Preprocessor這一項,在出現(xiàn)的界面中將頭文件的路徑添加在圖9所示界面的第一行。如圖9:圖9d、 建立鏈接命令文件.pjt:FileNewSource File;e、 添加有關(guān)文件到工程:ProjectAdd Files to Project;f、 編譯鏈接產(chǎn)生.out文件:ProjectRebuild All或點擊;g、 加載.out文件:FileLoad Program;h、 運行程序:DebugRun或點擊。2、程序運行結(jié)果顯示 (1)編譯成功后,選擇File菜單中的Load Program選項,將程序加載到DSK板中,為軟件仿真結(jié)果的觀測做準(zhǔn)備
37、。(2)圖形顯示參數(shù)設(shè)置:選擇View中的Graph的第一項,在如圖所示的對話框中修改相關(guān)參數(shù)以觀察輸出信號的時域(Single Time)和頻域(FFT Magnitude)波形圖。 圖10 圖形顯示參數(shù)設(shè)置(3)運行結(jié)果顯示:發(fā)送部分:時域(Single Time)波形圖:頻域(FFT Magnitude)波形圖:接收部分:頻域(FFT Magnitude)波形圖(收到1時):說明:可以看見在發(fā)送端的頻譜是很清晰的兩個尖峰,而接收端有很多雜質(zhì)信號,但是兩個峰值信號還是基本可以檢測到的。五、設(shè)計(安裝)與調(diào)試的體會在開始做DTMF的試驗時,我們?nèi)D書館借了幾本關(guān)于DSP的書,有很多關(guān)于DTMF信號產(chǎn)生與檢測的研究,通過閱讀這些書以及查閱了幾篇論文后,我們對DTMF信號有了大概的了解,所謂DTMF信號產(chǎn)生與檢測的過程,實際是由模擬信號的產(chǎn)生,抽樣產(chǎn)生數(shù)字信號并D/A變換成模擬信號傳輸,在接收端將模擬信號抽樣成數(shù)字信號,并檢測出所對應(yīng)的模擬頻率的過程,在開始,我們對整個信號處理的過程很迷茫,通過閱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16823:2025 EN Non-destructive testing - Ultrasonic testing - Through-transmission technique
- 2024年音視頻線供貨3篇
- 步行街花崗巖安裝協(xié)議
- 兒童玩具業(yè)務(wù)員招聘協(xié)議
- 汽車配件租賃合同
- 食品召回的企業(yè)文化塑造
- 通信保障臨時用電管理辦法
- 摩托車店大門地彈門施工合同
- 動物福利愛心基金管理辦法
- 室內(nèi)裝修安裝合同樣本
- 資產(chǎn)管理基礎(chǔ)知識
- 醫(yī)院采購遴選方案
- GB/T 7260.1-2023不間斷電源系統(tǒng)(UPS)第1部分:安全要求
- 對外開放與國際合作概述
- 2024屆四川省成都市高中數(shù)學(xué)高一下期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 2023年青協(xié)活動總結(jié)報告
- 提升供應(yīng)鏈效率:年度運營計劃
- 展覽館維修維護投標(biāo)方案
- 陳赫賈玲小品《歡喜密探》臺詞劇本
- 2023招聘專員個人年終總結(jié)
- 機房搬遷服務(wù)投標(biāo)方案(技術(shù)標(biāo))
評論
0/150
提交評論