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

正文內(nèi)容

基于tms320vc5402的雙音多頻信號的檢測-資料下載頁

2024-11-17 21:45本頁面

【導(dǎo)讀】技術(shù)中的一種信號傳輸方法。近年來DTMF也應(yīng)用在交互式控制中,諸如語言菜單、語。言郵件、電話銀行和ATM終端等。通過軟件產(chǎn)生與檢測DTMF信令,是一項較有價值。本文介紹一種基于DSPTMS320C5402芯片的DTMF信號的檢測方法,使。得DTMF信號的檢測變得準(zhǔn)確、迅速和簡單。主要控制器,采用Goertzel算法來實(shí)現(xiàn)雙音多頻信號的檢測。它是一個雙極點(diǎn)濾波器,可以在噪聲信道中清。晰地檢測出音頻信號。之后才處理,可明顯地提高速度。Goertzel算法是DTMF信號檢測的核心,它利用二極。點(diǎn)的IIR濾波器計算離散傅立葉變換值,快速有效的提取輸入信號的頻譜信息。

  

【正文】 。 在 Goertzel 優(yōu)化算法中 每個采樣處理完全一樣,但處理的結(jié)果與 Goertzel 基本算法不同。在 Goertzel 基本算法中,通常需要計算信號的實(shí)部和虛部,然后將實(shí)部和虛部的計算結(jié)果轉(zhuǎn)換為相應(yīng)的幅度平方。而在優(yōu)化 Goertzel 算法中則不需計算實(shí)部和虛部,直接計算下式: c o e ffm a g n it u d e **2 212212 ??? 采用 Goertzel 基本算法能得出與常規(guī)離散傅立葉變換 (DFT)或 FFT 相同的頻率實(shí)部和虛部。如果需要的話,還可以從該頻率實(shí)部和虛部中算出幅度和相位信息。 Goertzel 優(yōu)化算法則比 Goertzel 基本算法更快也更簡單, 但 Goertzel 優(yōu)化算法并不給出頻率實(shí)部和虛部分量,它只能給出相關(guān)的幅度平方。如果需要幅度信息,可通過對該結(jié)果開方得到,但該方法無法得到相位信息。 ( 3) Goertzel 算法的證明 ]8[ ]10[ Goertzel 算法實(shí)質(zhì)是一個兩極點(diǎn)的 IIR 濾波器,簡要證明如下: 一個 N 點(diǎn)數(shù)據(jù)的 DFT 定義如下: ????? 102)()( Nmkmj NemxkX ? 式 () 方程 ()可以表為卷積形式。定義: )(102)()( mnkjnm ekNemxny ?????? 式 () 上式為如下兩個因序列卷積 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 19 ?????????NnnNnnxxe ,0,010),( 式 () 和 ????????0,00,2nneh knjkN? 式 () 式 ()中當(dāng) n=N 時,即有 yk (N)=X(k)。 對式 ()兩邊同時進(jìn)行 z 變換,可得到: 121)()(??? zezXkkNjezY ? 式 () 可以發(fā)現(xiàn)其分子 Xe (z) 正是 xe (n)的 z 變換,1211?? ze kNj ?正是 )(nhk 的 z 變換。并且從上式可以得到系統(tǒng)傳輸函數(shù): 1211)(??? zek kNjzH ? 式 () 其輸入為 x(n),并且當(dāng) n=N 時,輸出 yk (N)正是 X(k)。表示為差分方程形式如下: Nnnyenxny kkjk n ????? 0),1()()( 2 ? 式 () 分析上式,可以發(fā)現(xiàn)需要復(fù)數(shù)乘法,因此可改寫式 () 為: 2121212121212 )c os (211)1)(1(111)( ?? ???????? ?????????? zz zezezezezek N kkNjkNjkNjkNjkNjzH ?????? 式 () 由該系統(tǒng)函數(shù)可以得到如圖 修改的 Goertzel 算法原理圖。由圖 知, DFT 計算可以等價為: )2()1()c o s (2)()( 2 ????? nvnvnxnv kkN kk ?, Nn??0 式 () )1()()()( 2 ???? ? NveNvNykX kkjkk N? 式 () 另外,在 DTMF 檢測中,對于輸入的實(shí)數(shù)序列并不需要檢測出 8 個行頻 /列頻的相位,只需要計算出其幅度平方即可。如圖 所示,對于實(shí)序列 )(nx ,修改的 Goertzel 算法所需的內(nèi)部變量 )(nvk 也為實(shí)數(shù)。因此計算 2)(kX 如下: )1()()c os (2)1()()()( 22222 ?????? NvNvNvNvNykX kkN kkkk ? 式 () 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 20 用上式的 計算取代式 ()即可完全避免復(fù)數(shù)運(yùn)算 ]7[ 。 圖 修改的 Goertzel算法原理框圖 有效性檢查 一旦頻譜信息收集完畢,即計算出了 8 個行頻 /列頻及其二次諧波的幅度平方,接下來作一系列有效性檢測: ( 1) 確認(rèn)可能的 DTMF 信號對是否有足夠的強(qiáng)度。程序計算出的行頻 /列頻譜成分的幅度平方和如果高于組內(nèi)其他音頻信號成分一定的門限,則進(jìn)入下一步檢測。 ( 2) 檢測二次諧波強(qiáng)度,以便將 DTMF 信號與可能的聲音信號區(qū)分開。因?yàn)檎Z音信號總會含有明顯的 8 個行頻 /列頻的偶次諧波。如果程序計算出的行頻 /列頻成分二次諧波和基波成分之比低于一定門限,即可肯定檢測到了代表一個數(shù)字信息的有效 DTMF信號對。 ( 3) 靜音檢測,將檢測到的數(shù)字與前面最后一個數(shù)字比較,只有當(dāng)數(shù)字之間是一段靜音信號時,才可判決當(dāng)前的數(shù)字為有效數(shù)字,區(qū)分開兩次按鍵。 DTMF檢測流程及編程思想 檢測流程可參照圖 ,把檢測程序作為 DSP 接收中斷服務(wù)子程序,在每一個接收中斷到來時,表明采到了一個新樣點(diǎn)。樣點(diǎn)值代入式 (),迭代計算 8 個行頻 /列頻的中間變量 )(nvk ( k 為 8 個行頻 /列頻分別對應(yīng)的數(shù)字頻率),直到預(yù)分配的采樣點(diǎn)緩沖區(qū)滿。此時再按式 (11)計算 8 個行頻 /列頻的幅度平方 2)(kX 。接下來將 2)(kX 與門限作0)2()1( ???? kk vv y )(nk x ?)(Ne 0 kjNe ?2?? 2cos( Nk?2 ) 1 )(nvk xe (n) + + + z z 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 21 比較,并作二次諧波檢測,判決出有效的音頻信號。將音頻信號映射為數(shù)字信號后,再與上一個檢測到的數(shù)字信號比較,最終判決出有效的數(shù)字信號。 圖 DTMF 檢測流程 本章小結(jié) 本章 為全文的重點(diǎn), 主要介紹了采用 Goertzel 算法 來檢測 DTMF 信號的 基本 原理 、軟件 實(shí)現(xiàn) 的編程思想 和流程以及用軟件和硬件來實(shí)現(xiàn)雙音多頻信號檢測的 設(shè)計思想 。 分析 了 Goertzel 算法 以及 Goertzel 算法 比 FFT 算法在實(shí)現(xiàn) DTMF 信號檢測過程中的優(yōu)點(diǎn)。下一章節(jié)我將給出采用 Goertzel 算法 檢測 DTMF 信號的仿真結(jié)果,并對結(jié)果進(jìn)行分析。 No No Yes Yes No No Yes Yes 開始 采樣 采到新樣點(diǎn)? 新樣點(diǎn)標(biāo)志= 1? 對 8 個行頻 /列頻分別計算 )2()1()c o s (2)()( 2 ????? nvnvnxnv kkN kk ? Nn??0 對 8 個行頻 /列頻分別計算 )1()()c os (2)1()()()( 22222 ?????? NvNvNvNvNykX kkN kkkk ? 采到 N 個 樣點(diǎn)? N 樣點(diǎn)標(biāo)志= 1? 中間變量清零 N 樣點(diǎn)標(biāo)志= 0 中間變量清零 幅度峰值大于門限 ? 無二次諧波 ? 成功檢測到數(shù)字 返回 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 22 第四章 仿真結(jié)果 調(diào)試內(nèi)容與操作步驟 新建工程 ,從實(shí)驗(yàn)?zāi)夸浝锾砑颖匦璧墓こ涛募捍鎯ζ鞫ㄎ晃募?,中斷向量?,以及 。如圖 圖 新建工程窗口 文件完成整個流程控制,包括實(shí)驗(yàn)系統(tǒng)初始化系列函數(shù)、延時函數(shù)mydelay() 、鍵盤按鍵檢測函數(shù) get_key()和 is_getkey() 、 LCD 輸出打印控制函數(shù)lcd_printf()、 LCD 清屏函數(shù) lcd_clr()、 LED 顯示控制函數(shù) led_printf()、按鍵字符顯示函數(shù) key_shown()。 添加底層驅(qū)動 程序源文件: ,該文件包括了系統(tǒng)初始化子函數(shù) _init_start、 UART 串口驅(qū)動子程序 _mcu_uartint、鍵盤驅(qū)動 _key_input 與 LCD、 LED 顯示驅(qū)動子程序 _u_printf。 添加 DTMF 信號產(chǎn)生文件: 和 。 包括: ( 1) 函數(shù) gen_dtmf()介紹。完成持續(xù)時間變量 Now_Delay 復(fù)位,取出下一號碼放入當(dāng)前號碼變量 NowTel 后,號碼指針 NumIndex 加 1;并以當(dāng)前號碼 NowTel 作為內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 23 參數(shù)調(diào)用函數(shù) set_freq_coff(),初始化式 ()中的系數(shù); )2()1()( 21 ????? nyanyany 式 () 其初值 0s i n)2(0)1( ?Ayy ????? , ,令幅度 1?A ,得 0sin)2( ????y ,其中sff /2 00 ?? ? 。 開 始有 效 行 頻 ?F l o w ! = 1有 效 列 頻 ?F h i g h ! = 1檢 測 到 新 鍵I s N e w _ D T M F _ k e y = 1返 回有 效 列 頻 ?F h i g h ! = 1檢 測 到 新 鍵 ?I s N e w _ D T M F _ k e y = 1 ?有 效 數(shù) 字新 鍵 標(biāo) 志 復(fù) 位I s N e w _ D T M F _ k e y = 0查 表 打 印 數(shù) 字Y e sN oN oY e sY e sY e sN oN o 圖 有效數(shù)字 檢測流程 ( 2) 中斷服務(wù)子程序 interrupt transmit()介紹。完成任務(wù)判決并產(chǎn)生相應(yīng)音頻或靜音樣本。這里的任務(wù)判決使用的技巧是:將按鍵信號存入號碼數(shù)組 TelNum[]時,把每個按鍵值與一個“ 0xff”關(guān)鍵字一起存放,參見函數(shù) key_shown()中的語句: TelNum[NumIndex++]=4; /*號碼數(shù)字 */ TelNum[NumIndex++]=0xff; 這樣在任務(wù)判決時省卻任務(wù)標(biāo)志,遇到“ 0xff”直接發(fā)送靜音信號。另外,作為中斷服務(wù)子程序,每次中斷到來,通過判斷持續(xù)時間變 量“ Now_Delay ”是否為零來判內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計說明書(畢業(yè)論文) 24 斷持續(xù)時間是否達(dá)到 60ms(該值由變量 Now_Delay 與采樣頻率 sf 之比得到)。每當(dāng)每當(dāng) Now_Delay 為零,切換任務(wù), Now_Delay 復(fù)位( Now_Delay=Tel_Delay )。 調(diào)用子程序 _iir_to_dtmf 計算并通過串口發(fā)送一個音頻樣本,或直接發(fā)送 0 值得到靜音樣本,并作持續(xù)時間變量“ Now_Delay ”操作。 包括: ① 子程序 _start_ac01,完成 AD 及 DSP 的多通道緩沖串口( McBSP)初始化。 ② 子程序 _iir_to_dtmf,通過由函數(shù) set_freq_coff()初始化的系數(shù),分別迭代運(yùn)算產(chǎn)生行頻和列頻,該子程序計算出的兩個頻率信號樣本值分別放入累加器 a 和 b,相加之后作為新的一個音頻樣本發(fā)送。 ③ 初始化系數(shù)的計算:令 sffaA /2c o s2 01 ???? 12 ???? aB sffyC /2s in)2( 0????? 對 8 個行頻 /列頻分別計算出初值,在 set_freq_coff()函數(shù)里通過“ switch”語句賦值??梢钥吹剿凶兞烤艘?32768,目的是把浮點(diǎn)數(shù)轉(zhuǎn)換為 S1Q15 格式的 16 進(jìn)制小數(shù);所有變量均除以了 2,目的是避免中間運(yùn)算的溢出。因此在 _iir_to_dtmf 計算 音頻樣本時有語句“ ssbx frct”設(shè)置小數(shù)運(yùn)算和語句“ sfta b,1,b”補(bǔ)償初始化的除數(shù) 2。 添加 DTMF 信號檢測文件 。 該 文 件包括中斷服務(wù)子程序 interrupt receive(),接收來自 AD 的采樣值,每收到一個樣值,存入變量 dtmf_data,并置新樣點(diǎn)標(biāo)志 IsNew= 1;并檢測是否樣本緩沖區(qū)滿,若已收到 N 個樣本,則置 N 樣點(diǎn)標(biāo)志 IsNew_N= 1。 函數(shù) de_dtmf():把來自 dtmf_data 的新樣點(diǎn)代入式( ) Nnnvnvnxnv kkN kk ??????? 0)2()1()c o s (2)()( 2 ,? 式 () 分別對 8 個可能存在的行頻 /列頻進(jìn)行迭代計算,得到 8 個中間變量 )(nvk 。如果 N 樣點(diǎn)標(biāo)志 IsNew_N= 1,還要對
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1