freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

dsp課程設(shè)計(jì)---dtmf信號(hào)的產(chǎn)生及檢測-全文預(yù)覽

2025-02-06 02:57 上一頁面

下一頁面
  

【正文】 b EXRAM PAGE 1 pm03tab EXRAM PAGE 1 costab EXRAM PAGE 1 V23 INRAM PAGE 1 FSK INRAM PAGE 1 hpibuff0 HPRAM0 PAGE 1 hpibuff1 HPRAM1 PAGE 1 hpibuff2 HPRAM2 PAGE 1 dma_buff DMARAM PAGE 1DTMF信號(hào)檢測程序發(fā)揮部分: 由于在做接收實(shí)驗(yàn)時(shí),發(fā)現(xiàn)發(fā)送端每發(fā)送一個(gè)DTMF信號(hào),接收端總會(huì)重復(fù)輸出幾次接收到的DTMF信號(hào)。 iperiod。 y==6) printf(The DTMF signal is \n)。amp。 else if(x==3 amp。 y==7) printf(The DTMF signal is B\n)。amp。 else if(x==2 amp。 y==4) i=7。amp。 else if(x==1 amp。 y==6) i=3。amp。 else if(x==0 amp。 if(j==2) //利用行頻信號(hào)的編號(hào)x和列頻信號(hào)的y確定接收到的字 //符,并將其輸出。i++) { if(result[i]1500) //判決門限設(shè)置為1500 { j++。 //對(duì)vk(n1)的值進(jìn)行更新 } result[i]=a[i][1]*a[i][1]+a[i][0]*a[i][0]w[i]*a[i][1]*a[i][0]。j205。i8。 //f=1209Hz,k=31w[5]=2*cos(2*pi*34/205)。 //f=697Hz,k=18 w[1]=2*cos(2*pi*20/205)。} //到的信號(hào)進(jìn)行判決 }}void DTMF_detect(void){ float w[8],a[8][3]。 test[k]=data。//設(shè)置輸出增益為6dB codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB)。 } // 打開codec,獲取ADC的句柄 hHandset = codec_open(HANDSET_CODEC)。 brd_led_toggle(BRD_LED1)。 //檢測子程序DTMF_detectvoid main() //主函數(shù)main{ int t=3。int detect_result[256]={0}。 //DTMF樣點(diǎn)緩沖區(qū),定義其容量為256float pi=。 jperiod1。 }}void delay(int period) //延時(shí)子程序delay,運(yùn)用了指令循環(huán)的原理,延時(shí){ //時(shí)間的長短由輸入period決定 int i, j。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 } } } } } void send(int j) //判決子程序send,輸入j的值,輸出num的值{ switch(telephonenumber[j]) { case 39。k++) { //前400個(gè)點(diǎn)為音頻信號(hào),存入buffer buffer[k]=(*sin(2*pi*y*k)+*sin(2*pi*x*k))*16384。 //調(diào)用send函數(shù),對(duì)發(fā)送的字符進(jìn)行判定,返回num x=freq[num][0]/fs。 if(count==20) //控制每一個(gè)數(shù)反復(fù)發(fā)送20次 { count=0。//等待D/A轉(zhuǎn)換器準(zhǔn)備好 //發(fā)送 *(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=buffer[i]。 out_buffer[k+400]=buffer[k]。k400。send(j)。 //模擬輸入增益為6dBcodec_aout_gain(hHandset, CODEC_AOUT_MINUS_12dB)。 //延時(shí)1000個(gè)時(shí)間單位 } // 打開codec,獲取DAC的句柄hHandset = codec_open(HANDSET_CODEC)。 //延時(shí)1000個(gè)時(shí)間單位 brd_led_toggle(BRD_LED1)。 void main() //主程序main { int t=3。 //定義x和y,用于存放發(fā)送的行頻和列頻float fs=8000。 //定義count,用于控制發(fā)送的次數(shù)int k=0。 //codec句柄變量s16 out_buffer[800]。四、 程序設(shè)計(jì)、調(diào)試與結(jié)果分析 :DTMF信號(hào)產(chǎn)生流程圖如圖41所示。門限的設(shè)定,應(yīng)該保證能夠檢測到DTMF發(fā)送信號(hào),同時(shí)應(yīng)該保證不產(chǎn)生誤判漏判的情況。其中k=f*N/fs,f為輸入信號(hào)的頻率,N為樣值的個(gè)數(shù),fs為抽樣頻率。圖32 Goertzel算法原理框圖 其傳遞函數(shù)為:DTMF檢測器的核心是Goertzel算法。計(jì)算數(shù)字信號(hào)的頻譜可以采用DFT 及其快速算法FFT,而在實(shí)現(xiàn)DTMF 解碼時(shí),采用Goertzel 算法要比FFT 更快。由于數(shù)據(jù)流是連續(xù)的,為了保證DTMF檢測的實(shí)時(shí)性,因此要求檢測過程必須是實(shí)時(shí)連續(xù)的。所以,需要設(shè)置800個(gè)點(diǎn)的緩存,其中400個(gè)點(diǎn)用于產(chǎn)生DTMF信號(hào)中的音頻信號(hào),另外400個(gè)點(diǎn)用于產(chǎn)生DTMF信號(hào)中的靜音信號(hào)。CCITT規(guī)定每秒傳送/接收10個(gè)數(shù)字,即每個(gè)數(shù)字持續(xù)100ms。同時(shí),由于使用方案二的方法產(chǎn)生正弦波,其當(dāng)前時(shí)刻的輸出序列只與當(dāng)前時(shí)刻行頻和列頻的輸入有關(guān),所以不會(huì)產(chǎn)生累積誤差,適合用來產(chǎn)生長時(shí)間連續(xù)的DTMF信號(hào)。在程序中實(shí)現(xiàn),就需要不斷對(duì)y(n1)和y(n2)的值進(jìn)行更新。 其中,上面一個(gè)數(shù)字振蕩器用于產(chǎn)生行頻,下面一個(gè)數(shù)字振蕩器用于產(chǎn)生列頻,將行頻信號(hào)和列頻信號(hào)通過加法器進(jìn)行疊加即可產(chǎn)生DTMF信號(hào)。典型的DTMF信號(hào)頻率范圍是700~1700Hz,選取8000Hz作為采樣頻率,即可滿足奈奎斯特定理。如圖21所示。發(fā)揮部分:利用DTMF信號(hào)完成數(shù)據(jù)通訊的功能,并試改進(jìn)DTMF信號(hào)的規(guī)定指標(biāo),使每秒內(nèi)傳送的DTMF編碼越多越好。(2)使用C語言編寫DTMF信號(hào)的檢測程序,檢測到的DT
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1