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

正文內(nèi)容

dsp課程設計---dtmf信號的產(chǎn)生及檢測-免費閱讀

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

下一頁面
  

【正文】 經(jīng)過反復測試,我們終于發(fā)現(xiàn)增大存放鍵入字符的數(shù)組telephonenumber的容量就可以解決這一問題。由實驗結果可知,兩個尖峰的頻率分別在950Hz和1500Hz左右,這與‘’的行頻和列頻是一致的。Buffer size 為需要觀察的樣點數(shù)目,在這里設為200,得實驗結果如下: 由于發(fā)送的DTMF信號是兩個正弦信號的疊加,實驗所得波形很好地驗證了這一點。這樣就能夠保證接收到相同信號時只進行一次輸出。 n++。 y==6) { num_1[m]=39。m++ 。amp。A39。amp。 y==6) { i=6。 } else if(x==1 amp。amp。 j++)。amp。 y==7) printf(The DTMF signal is C\n)。 else if(x==0 amp。amp。 y==4) i=4。 else if(x==0 amp。 //將列頻信號的編號賦給x } } i=2。 //對vk(n2)的值進行更新 a[i][1]=a[i][2]。 //f=1633Hz,k=42 for(i=0。 //k=f*N/fs,N為DFT數(shù)據(jù)塊的長度,這里取N=205,k的計算結果取整數(shù) w[0]=2*cos(2*pi*18/205)。//等待A/D轉換器輸出數(shù)據(jù)data=*(volatile u16*)DRR1_ADDR(HANDSET_CODEC)。 delay(1000)。 //延時子程序delayvoid DTMF_detect(void)。 //codec句柄變量float buffer[256]。break。break。break。break。break。break。break。break。 out_buffer[k+400]=buffer[k]。 send(j)。 while(1) { while (!MCBSP_XRDY(HANDSET_CODEC)) {}。//查表得列頻,并賦給y for(k=0。 //A/D工作在15bit模式 codec_ain_gain(hHandset, CODEC_AIN_6dB)。 //LED0亮 delay(1000)。f32 x,y。 //判決子程序sendHANDLE hHandset。 當?shù)玫筋l譜的幅度平方之后,將幅度平方與門限作比較。Goertzel 算法實質(zhì)是一個兩極點的IIR 濾波器,其算法原理框圖如圖32所示。2. DTMF信號的檢測DTMF檢測是對進入解碼端的信號進行檢測,并把雙音頻信號轉換成對應的數(shù)字信息。由于采樣頻率為8000Hz,所以DSP有足夠的計算時間,可以使用查詢模式通過D/A轉換器輸出DTMF信號。 將兩種方案進行比較后,我們認為,使用正弦振蕩器計算法這種方法計算時所需的計算量小,但是由于使用了迭代的方法產(chǎn)生樣點值,所以當前時刻的輸出序列需要反饋到輸入端。DSP只要裝載相應的系數(shù)和初始條件,就可以只用兩個振蕩器產(chǎn)生所需的八種音頻信號。(2)使用C語言編寫DTMF信號的檢測程序,檢測到的DTMF編碼在屏幕上顯示。如圖21所示。 其中,上面一個數(shù)字振蕩器用于產(chǎn)生行頻,下面一個數(shù)字振蕩器用于產(chǎn)生列頻,將行頻信號和列頻信號通過加法器進行疊加即可產(chǎn)生DTMF信號。同時,由于使用方案二的方法產(chǎn)生正弦波,其當前時刻的輸出序列只與當前時刻行頻和列頻的輸入有關,所以不會產(chǎn)生累積誤差,適合用來產(chǎn)生長時間連續(xù)的DTMF信號。所以,需要設置800個點的緩存,其中400個點用于產(chǎn)生DTMF信號中的音頻信號,另外400個點用于產(chǎn)生DTMF信號中的靜音信號。計算數(shù)字信號的頻譜可以采用DFT 及其快速算法FFT,而在實現(xiàn)DTMF 解碼時,采用Goertzel 算法要比FFT 更快。其中k=f*N/fs,f為輸入信號的頻率,N為樣值的個數(shù),fs為抽樣頻率。四、 程序設計、調(diào)試與結果分析 :DTMF信號產(chǎn)生流程圖如圖41所示。 //定義count,用于控制發(fā)送的次數(shù)int k=0。 void main() //主程序main { int t=3。 //延時1000個時間單位 } // 打開codec,獲取DAC的句柄hHandset = codec_open(HANDSET_CODEC)。send(j)。 out_buffer[k+400]=buffer[k]。 if(count==20) //控制每一個數(shù)反復發(fā)送20次 { count=0。k++) { //前400個點為音頻信號,存入buffer buffer[k]=(*sin(2*pi*y*k)+*sin(2*pi*x*k))*16384。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 jperiod1。int detect_result[256]={0}。 brd_led_toggle(BRD_LED1)。//設置輸出增益為6dB codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB)。} //到的信號進行判決 }}void DTMF_detect(void){ float w[8],a[8][3]。 //f=1209Hz,k=31w[5]=2*cos(2*pi*34/205)。j205。i++) { if(result[i]1500) //判決門限設置為1500 { j++。 else if(x==0 amp。 y==6) i=3。amp。 else if(x==2 amp。 y==7) printf(The DTMF signal is B\n)。amp。 iperiod。int m=0。 } else if(x==0 amp。 y==5) { i=5。amp。 } else if(x==0 amp。B39。amp。m++。 m++ 。n++) //將num_2中的元素輸出 { printf(The DTMF signal is %s.\r\n ,num_2[n])。之后,發(fā)送端電腦屏幕上出現(xiàn)如下所示的對話框,通過鍵盤輸入要發(fā)送的按鍵信號,注意不要超過16位。3.要觀測發(fā)送端信號的頻域波形,需要對CCS軟件的Graph Property Dialog的參數(shù)進行如下圖所示的設置。 五、 設計(安裝)與調(diào)試的體會在這次實驗的設計部分,我們先搞懂了DTMF的基本原理,然后又搞懂了書上的程序,然后取其精華,為我所用,搞出了自己的程序。又是經(jīng)過反復測試,我們發(fā)現(xiàn),先對第一個數(shù)進行判決,在將判決所得的值寫入D/A轉換器進行發(fā)送,這樣就能保證每次接收到的第一個值都為發(fā)送的第一個值,于是我們將發(fā)送程序改為先將發(fā)送的第一個數(shù)進行判決(send(0)),然后等待D/A轉化器發(fā)送,之后再對其他的數(shù)進行判決,再循環(huán)等待發(fā)送。::由實驗結果可知,兩個尖峰的所在的頻率分別約為500Hz和3500Hz。由于取樣點的個數(shù)取得較少,沒能觀察到靜音信號。(注意在進行DTMF雙機通信時,應該先運行接收程序,等待接收,
點擊復制文檔內(nèi)容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1