国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32實現(xiàn)雙音多頻信號(DTMF)的檢測與識別

2012-11-05 06:43:16郭永剛趙高院
電子測試 2012年9期
關(guān)鍵詞:雙音音頻運算

王 勉, 郭永剛, 趙高院

(陜西烽火通信技術(shù)有限公司,西安 710075)

0 引言

雙音多頻信號(Double Tone Multi Frequency)是指電話撥號中脈沖信號和音頻信號中音頻信號的撥號方式。也就是電話撥號時,每按一個鍵,有兩個音頻頻率疊加成一個雙音信號。雙音多頻信號(DTMF)檢測與識別在市場上有著很多成熟的芯片,能夠可靠地完成這一功能;但是隨著設(shè)備體積的縮小,以及對設(shè)備功耗的進一步要求。我們越來越傾向于使用軟件來代替這個芯片。STM32系列屬于ARM CortexTM-M3,是一款高性能、低成本、低功耗的32位RISC處理器?,F(xiàn)如今被廣泛地用于移動設(shè)備的主控制器系統(tǒng)。使用這款芯片來完成DTMF檢測的功能,可以不增加任何成本和功耗。

1 音頻信號采樣

1.1 典型主控系統(tǒng)介紹

隨著集成度的不斷提高,MCU的功能在不斷增強,如圖1所示。單片STM32F1系列芯片可以完成諸如液晶顯示、鍵盤掃描、與系統(tǒng)信道通訊,通過USB或者 USART與PC交互數(shù)據(jù),甚至通過以太網(wǎng)物理層PHY芯片,接入Internet。

圖1 中為典型主控示意圖

現(xiàn)如今大多數(shù)主控芯片都集成 ADC,DAC這樣的外設(shè),這使得我們在不用增加任何外圍電路情況下,就能很方便地進行數(shù)據(jù)采集。STM32的AD分辨率是12位的,在CPU主頻56 MHz時。轉(zhuǎn)換時間為1 μs,也就是1MHz的采樣率。

1.2 DTMF手柄引腳定義圖

為了減少連線的數(shù)目,MIC和DTMF信號線是復用,兩者的復用是非常合理的,因為音頻信號也要經(jīng)過采樣,然后音頻編碼(俗稱聲碼化)。兩個信號也不會同時有效。這樣一來,也節(jié)省了AD的數(shù)目。但是 MIC產(chǎn)生的音頻信號,有可能會干擾DTMF,造成誤判斷。

圖2 DTMF手柄引腳定義圖

人的語音可以分為清音、濁音兩種。清音的頻譜接近白噪聲,不會對我們的檢測造成影響;濁音從發(fā)聲過程來講是聲帶的震動,通過鼻腔和口腔的共鳴腔形成,有明顯的周期性,在頻譜上有明顯的雙音特性,影響我們的判斷;與DTMF明顯的區(qū)別在于,濁音有明顯的二次諧波分量,因此對二次諧波的判斷,可以幫我區(qū)分話音和DTMF信號。

1.3 硬件采樣電路

采樣電路如圖3所示。

圖3 低通濾波器硬件電路

A:因為STM32的引腳的最小電壓輸入為 VSS-0.3 V,音頻信號輸入均值為零,必須為這個信號疊加直流信號,以免造成信號的失真和芯片的損壞;

B:電容C221, C220,電阻 R147, R148組成了簡單的抗混疊濾波器。濾波器只有信號頻率超過了500 kHz時,才能起到很好的抗混疊作用。因為產(chǎn)品中的發(fā)射頻率工作在800 MHz,對發(fā)射主頻能起到很好的抗混疊作用。對于500 kHz以下的干擾信號,和發(fā)射頻率交叉調(diào)制帶來的干擾就無能為力。為了進一步提高可靠性, DTMF手柄與機器的連線必須使用屏蔽線,手柄的地線采用獨立接地來減少ADC采樣前端的干擾。

1.4 采樣頻率的選擇:

采樣的語音信號帶寬為300 Hz-3 kHz,為了滿足奈奎斯特采樣法則,我們選擇采樣頻率Fs =8 kHz。這個頻率在u_PCM編碼中也被廣泛采用。

1.5 STM32芯片的配置

系統(tǒng)采樣率Fs =8kHz,我們要求它的頻率穩(wěn)定度一般為100ppm;而程序運行時間的長短不容易控制,產(chǎn)品中我們采用定時器TIM2,ADC1,DMA1三個外設(shè)協(xié)同工作來完成,從而保證頻率穩(wěn)定度。數(shù)據(jù)采樣流程圖如圖4所示。

圖4 數(shù)據(jù)采樣流程圖

在連續(xù)采樣中,使用這種方法的好處是,不需要CPU的參與,所有的采樣工作都是在硬件上實現(xiàn)了,可靠性好,能夠準確的保證8 kHz的采樣率。缺點是程序移植困難。有些芯片上不支持DMA,就無法實現(xiàn)了;好在現(xiàn)在芯片大多數(shù)都支持這些外設(shè)。

2 戈澤爾算法介紹

Goertzel算法俗稱戈澤爾算法。它的原理是利用2個極點的IIR濾波器計算離散傅里葉變換,能夠高效地提取頻譜信息。戈澤爾算法描述如下:

(a)從n= 0,…,N遞歸計算

Min(Fr -Fc)= 73Hz

所以Δf<73;

當 Fs=8 kHz;

N>110。

在戈澤爾算法中,雖然N必須取整數(shù),但是對 k的取值沒有限制,而且我們所需要的是:

我們在MATLAB上計算得到 8個頻率所對應(yīng)的CONSTAT_VALUE,因為CPU支持定點運算,存儲類型為 INT16,歸一化處理如下:

3 N值的選擇

3.1 N值的物理意義

在程序計算過程中,N為每次運算的采樣點數(shù)。N值的選擇決定了最小頻率關(guān)系。從上一節(jié)中我們得出:

N>110。

3.2 N值選擇受限于檢測按鍵的時間長短和人們的操作習慣

根據(jù)人們的按鍵習慣,每次按鍵的時間大約在60-200 ms左右,機械操作抖動是不可避免的,所以需要去抖動。如果以每采到2次相同按鍵來去抖動,每次的檢測時間不應(yīng)該大于30 ms。

3.3 N值選擇受限于CPU硬件因素

在實際應(yīng)用中,因為使用的是定點運算,所以N 的選擇還要考慮到計算過程中的精度和溢出。戈澤爾算法是DFT的一種快速實現(xiàn),所以DFT的溢出問題在戈澤爾算法中同樣存在。根據(jù)帕塞瓦爾定理:

X(k)2的均方值是x(n)2均方值的N倍,因此如果不采取有效措施,溢出是不可避免的;不僅如此,因為我們要選取的是單音信號,所以有如下公式成立:

這個公式對工程運算十分重要,它直接決定了我們的運算結(jié)果會不會溢出。給我們提供了自動增益控制穩(wěn)態(tài)值的選擇范圍。具體用法如下。

(a) 輸入信號x(t)=A*cos(t); A=3 V, AD的最大動態(tài)范圍

(b) Fs = 8000;

(c) 采樣信號為x(n)= B*cos(n/Fs);

(d) ADC采樣精度為12 bit,考慮到符號位所以B = 210;

(e) CPU的 加 法 器 為32bit,所 以MAX(X(K0)2) =231

利用公式 (13)得到

所以N=64,不滿足 N>110的要求。

為了滿足頻率分辨率的要求,我們只有通過自動增益控制來實現(xiàn)。

4 自動增益控制

我們使用的參考電壓VREF+為3 V。在輸入信號Vpp大于這個動態(tài)范圍時,就會產(chǎn)生溢出。經(jīng)過戈澤爾算法后出現(xiàn)諧波成分,造成誤判斷;當信號幅度過小,沒有足夠的信噪比時,會造成漏判斷。

在AD采樣前,通過硬件電路進行壓縮放大,防止信號超過最大動態(tài)范圍,造成AD溢出。

(1)硬件音頻放大Ssm2167 進行壓縮放大;

圖5 音頻壓縮放大硬件電路

ssm2167的輸入動態(tài)范圍可以達到50 dB,提高了設(shè)備的兼容性。

(2)軟件音頻壓縮,保證DFT運算不溢出。

上一節(jié)中已經(jīng)仔細論證了軟件壓縮的重要性,在此給出程序流圖如圖6所示。

圖6 音頻壓放時序圖

5 實驗測試結(jié)果

工程測試中,采用 cr-cooledit軟件生成測試音頻文件。通PC耳機插孔接入目標板。測試文件包括:

(1) 標準DTMF測試文件 600 s,每組雙音持續(xù)時間為25 ms。相當于24000個DTMF信號。

(2) 非標準測試文件600 s,每組雙音持續(xù)時間為25ms。

(3) 音樂文件 600 s。

(4) 語音文件 600 s。

輸入動態(tài)范圍測試,音頻輸入1mvRMS—1VRMS,60dB動態(tài)范圍的情況下,標準測試文件能夠準確識別,識別率 100%。在同樣的動態(tài)范圍下,非標準文件,音樂文件,和語音文件的全部拒識,拒識率 100%。

[1] 陳亮,楊吉斌,張雄偉.信號處理算法的實時DSP實現(xiàn)[M].北京:電子工業(yè)出版社,2008.

[2] 金鑫春,旺一鳴.Goertzel 算法下DTMF信號檢測及參數(shù)優(yōu)化[J].現(xiàn)代電子技術(shù),2010(06):152-155.

[3] 弋今朝,張祿林,錢玉美.一種新的基于Goertzel算法的DTMF信號檢測方法[J].通信技術(shù),2002(9):16-18.

[4] International Telecommunication Union . ITU-T Recommendation Q23. Technical Features Of Push - Button Telephone Sets[R]. Switzerland:ITU-T. November 1988.

[5] 丁玉美,高西全.數(shù)字信號處理[M].2版.西安:西安電子科技大學出版社,1994.

[6] 胡廣書.數(shù)字信號處理理論、算法與實現(xiàn)[M].北京:清華大學出版社,2003.

[7] 傅豐林.電子線路基礎(chǔ)[M].西安:西安電子科技大學出版社,2001.

[8] Jean J.Labrosse.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].邵貝貝 譯.北京:北京航空航天大學出版社,2001.

猜你喜歡
雙音音頻運算
殷商編鐃的類型學與雙音性能研究
中國音樂(2022年3期)2022-06-10 06:27:46
重視運算與推理,解決數(shù)列求和題
有趣的運算
鄭樵“雙音并義不為假借”平議
必須了解的音頻基礎(chǔ)知識 家庭影院入門攻略:音頻認證與推薦標準篇
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
曾侯乙編鐘雙音原理解析
西夏語人稱呼應(yīng)類動詞的雙音化
西夏學(2018年1期)2018-04-29 09:08:24
音頻分析儀中低失真音頻信號的發(fā)生方法
電子制作(2017年9期)2017-04-17 03:00:46
“整式的乘法與因式分解”知識歸納
潜江市| 遵义县| 宁阳县| 新营市| 尚义县| 延川县| 新竹县| 陇西县| 天全县| 青阳县| 双柏县| 蒲江县| 平潭县| 田东县| 内丘县| 齐齐哈尔市| 晋中市| 淄博市| 五指山市| 阿克陶县| 汪清县| 新乐市| 特克斯县| 毕节市| 重庆市| 常宁市| 奉新县| 肥乡县| 孝昌县| 宁晋县| 电白县| 芮城县| 潮安县| 赣州市| 彭水| 龙川县| 黄陵县| 汽车| 罗城| 丰宁| 山东|