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

正文內(nèi)容

dsp課程設(shè)計(jì)---dtmf信號(hào)的產(chǎn)生及檢測(cè)-文庫(kù)吧

2025-01-01 02:57 本頁(yè)面


【正文】 根據(jù)num,查表得要發(fā)送的行頻列頻將要發(fā)送的音頻信號(hào)和400個(gè)點(diǎn)的靜音信號(hào)存入buffer采足樣點(diǎn)值后發(fā)送,將每個(gè)信號(hào)發(fā)送20次結(jié)束16個(gè)信號(hào)是否發(fā)完是否圖41 信號(hào)產(chǎn)生流程圖DTMF信號(hào)產(chǎn)生程序如下:include //程序頭文件include include include include include void delay(int period)。 //延時(shí)子程序delayvoid send(int j)。 //判決子程序sendHANDLE hHandset。 //codec句柄變量s16 out_buffer[800]。 //輸出緩沖區(qū),數(shù)據(jù)類型為S16 float buffer[800]。 //緩沖區(qū),數(shù)據(jù)類型為floats16 num=0。 //定義num,用于查詢頻率表int count=0。 //定義count,用于控制發(fā)送的次數(shù)int k=0。 //定義k,用于控制采樣點(diǎn)數(shù)int i。int j。f32 x,y。 //定義x和y,用于存放發(fā)送的行頻和列頻float fs=8000。 //定義fs為抽樣頻率8000Hzfloat pi=。 //定義PI的值char telephonenumber[18]。 //定義字符型數(shù)組telephonenumber//用于存放鍵入的字符float freq[16][2]={ 941,1336, //定義16行2列的二維數(shù)組,第一列用于 697,1209,//存放行頻,第二列用于存放列頻 697,1336, 697,1477, 770,1209, 770,1336, 770,1477, 852,1209, 852,1336, 852,1477, 697,1633, 770,1633, 852,1633, 941,1633, 941,1209, 941,1477 }。 void main() //主程序main { int t=3。 //t=3控制亮燈的次數(shù)為3次 if(brd_init(100)) //初始化DSK板 { return。 } while ( t ) { brd_led_toggle(BRD_LED0)。 //LED0亮 delay(1000)。 //延時(shí)1000個(gè)時(shí)間單位 brd_led_toggle(BRD_LED1)。//LED1亮 delay(1000)。 //延時(shí)1000個(gè)時(shí)間單位 brd_led_toggle(BRD_LED2)。//LED2亮 delay(1000)。 //延時(shí)1000個(gè)時(shí)間單位 } // 打開codec,獲取DAC的句柄hHandset = codec_open(HANDSET_CODEC)。 //設(shè)置DAC的工作參數(shù) codec_dac_mode(hHandset, CODEC_DAC_15BIT)。 //D/A工作在15bit模式codec_adc_mode(hHandset, CODEC_ADC_15BIT)。 //A/D工作在15bit模式 codec_ain_gain(hHandset, CODEC_AIN_6dB)。 //模擬輸入增益為6dBcodec_aout_gain(hHandset, CODEC_AOUT_MINUS_12dB)。 //模擬輸出增益為 //12dBcodec_sample_rate(hHandset,SR_8000)。 //D/A轉(zhuǎn)換頻率為8kHz gets(telephonenumber)。 //gets函數(shù),用于將鍵入的字符存入數(shù)組 j=0。send(j)。 //調(diào)用send函數(shù)對(duì)發(fā)送的第一個(gè)字符進(jìn)行判定 x=freq[num][0]/fs。//查表得行頻,并賦給x y=freq[num][1]/fs。//查表得列頻,并賦給y for(k=0。k400。k++) { //前400個(gè)點(diǎn)為音頻信號(hào),存入buffer buffer[k]=(*sin(2*pi*y*k)+*sin(2*pi*x*k))*16384。 out_buffer[k]=buffer[k]。//將float型強(qiáng)行轉(zhuǎn)化為s16型 //后400個(gè)點(diǎn)為靜音信號(hào),存入buffer buffer[k+400]=0。 out_buffer[k+400]=buffer[k]。 //將float型強(qiáng)行轉(zhuǎn)化為s16型 } i=0。 j=0。 while(1) { while (!MCBSP_XRDY(HANDSET_CODEC)) {}。//等待D/A轉(zhuǎn)換器準(zhǔn)備好 //發(fā)送 *(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=buffer[i]。 i++。 if(i==400) //采足400個(gè)樣值點(diǎn),完成第一次發(fā)送 { i=0。 count++。 if(count==20) //控制每一個(gè)數(shù)反復(fù)發(fā)送20次 { count=0。 j++。 if(j==16) //如果發(fā)送完16個(gè)字符,則返回 return。 send(j)。 //調(diào)用send函數(shù),對(duì)發(fā)送的字符進(jìn)行判定,返回num x=freq[num][0]/fs。 //查表得行頻,并賦給x y=freq[num][1]/fs。 //查表得列頻,并賦給y for(k=0。k400。k++) { //前400個(gè)點(diǎn)為音頻信號(hào),存入buffer buffer[k]=(*sin(2*pi*y*k)+*sin(2*pi*x*k))*16384。 out_buffer[k]=buffer[k]。 //后400個(gè)點(diǎn)為靜音信號(hào),存入buffer buffer[k+400]=0。 out_buffer[k+400]=buffer[k]。
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1