王 平,江華麗,王 毅,鄭孔華
摘 要:著重介紹音頻信號(hào)分析儀的軟硬件結(jié)構(gòu)、特征及其工作原理,設(shè)計(jì)采用DSPIC30F6014A單片機(jī)為主控制器,基于A/D轉(zhuǎn)換和快速傅里葉變換方法對(duì)采集的音頻信號(hào)進(jìn)行頻譜分析,能檢測(cè)20 Hz~10 kHz,100 mV~5 V的音頻輸入信號(hào),頻率分辨率達(dá)到20 Hz,檢測(cè)出的各頻率分量的功率之和不小于總功率值的95%,單個(gè)頻率功率誤差小于10%,因此在嵌入式系統(tǒng)方面具有較好的應(yīng)用價(jià)值。
關(guān)鍵詞:音頻信號(hào);DSP;FFT;DSPIC30F6014A
中圖分類號(hào):TH89文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)19-122-03
Design of Audio Frequency Analyzer Based on Single Chip Computer
WANG Ping,JIANG Huali,WANG Yi,ZHENG Konghua
(School of Physics and Optoelectronics Technology,Fujian Normal University,Fuzhou,350007,China)
Abstract:The audio frequency analyzer ′s software and hardware structure,the characteristics and the principle of work are introduced.This design uses DSPIC30F6014A monolithic integrated circuit as the controller,it bases on the A/D transformation and FFT transformation to analyze the audio frequency signal,which can examine 20 Hz~10 kHz and 100 mV~5 V audio frequency input signal,frequency distinguish can reach to 20Hz,the various frequency component's sum of power is not smaller than the total performance 95%,the single frequency power error is smaller than 10%,therefore it has good aspect in the embedded system′s application.
Keywords:audio frequency signal;DSP;FFT;DSPIC30F6014A
0 引 言
目前,大多數(shù)音頻信號(hào)處理儀不但體積大而且價(jià)格貴,在一些特殊方面難以普及使用,而嵌入式系統(tǒng)分析儀具有小巧可靠的特點(diǎn),所以開發(fā)基于特殊功能單片機(jī)的音頻分析儀器是語(yǔ)音識(shí)別的基礎(chǔ),具有很好的現(xiàn)實(shí)意義。
信號(hào)分析原理是將信號(hào)從時(shí)間域轉(zhuǎn)換成頻率域,使原始信號(hào)中不明顯特性變得明顯,便于分析處理。對(duì)于音頻信號(hào)來(lái)說(shuō),其主要特征參數(shù)為幅度譜、功率譜。該音頻信號(hào)分析儀的工作過(guò)程為:對(duì)音頻信號(hào)限幅放大、模數(shù)轉(zhuǎn)換、快速傅里葉變換(FFT,時(shí)域到頻域的轉(zhuǎn)換)、特征值提取;從到音頻信號(hào)的幅度譜,進(jìn)而得到音頻信號(hào)的功率譜[1]。
1 硬件設(shè)計(jì)
“智能家居”(Smart Home)也稱智能住宅。家居網(wǎng)絡(luò)智能控制系統(tǒng)就是利用先進(jìn)的計(jì)算機(jī)技術(shù)、通訊技術(shù)和嵌入式技術(shù),將家中的各種設(shè)備通過(guò)家庭網(wǎng)絡(luò)連接成系統(tǒng)。整個(gè)智能家居系統(tǒng)的構(gòu)成如圖1所示。在該系統(tǒng)中,對(duì)于某些家用電器設(shè)備的監(jiān)測(cè)與控制需要進(jìn)行音頻信號(hào)的分析[2]。
圖1 智能家居系統(tǒng)框圖
本設(shè)計(jì)選用Microchip公司的DSPIC30F6014A單片機(jī)為核心處理器,該芯片是MCU技術(shù)與DSP技術(shù)的結(jié)合,既包含了16位MCU的控制功能,又融合了DSP的高速運(yùn)算技術(shù),實(shí)際上就是數(shù)字微處理器、可方便地實(shí)現(xiàn)音頻信號(hào)分析的各種功能。音頻系統(tǒng)框圖如圖2所示,包括電源模塊、預(yù)制電路、A/D轉(zhuǎn)換模塊、DSP模塊、LCD顯示模塊等幾個(gè)部分。各模塊以及接口的具體設(shè)計(jì)和實(shí)現(xiàn)功能如下:
(1) 電源模塊:采用直流三端穩(wěn)壓電源設(shè)計(jì),220 V交流電經(jīng)降壓、整流、濾波和穩(wěn)壓后,轉(zhuǎn)換成系統(tǒng)需要的±5 V、±12 V電源電壓。
(2) 預(yù)制電路:為保證輸入頻寬在音頻范圍,前端直流偏置電路采用OP07放大器,第一級(jí)的加法器將輸入信號(hào)與2.5 V電壓值相加,第二級(jí)的反相器將信號(hào)轉(zhuǎn)移到A/D轉(zhuǎn)換能處理的0~5 V范圍。因輸入端50 Ω電阻的接地,故系統(tǒng)輸入阻抗近似為50 Ω[3]。
(3) A/D轉(zhuǎn)換模塊:因?yàn)橐纛l信號(hào)的輸入只有一路,所以在12位可配置的A/D模塊的16個(gè)模擬輸入引腳中只用到AN6,初始化時(shí),將該引腳配置為模擬輸入引腳,同時(shí),因?yàn)樘幚砗蟮囊纛l信號(hào)電壓為0~5 V,將A/D模塊的參考電壓設(shè)置為0 V,5 V。轉(zhuǎn)換輸出速率高達(dá)200 KSPS[4]。
(4) DSP模塊:該數(shù)字微處理器是改良的哈佛結(jié)構(gòu)設(shè)計(jì),可實(shí)時(shí)分析,具有很高的分辨率。通過(guò)Microchip公司的MPLAB C30 C編譯器調(diào)用DSP模塊,該編譯器中提供49個(gè)DSP處理函數(shù),可以完成全部的數(shù)字信號(hào)處理 [5]。
(5) LCD顯示模塊:用于直觀顯示頻譜波形。
(6) ICD2調(diào)試接口:選用 Microchip公司的ICD2在線調(diào)試器,為此預(yù)留了ICD2調(diào)試接口[6]。
(7) RC振蕩器:此單片機(jī)可工作在外部時(shí)鐘輸入、外部RC輸入、內(nèi)部快速RC振蕩器、內(nèi)部低功耗(RC)振蕩器四種模式,以及在低功耗時(shí)使用的后分頻器。本設(shè)計(jì)采用內(nèi)部快速RC振蕩器,它能提供7.37 MHz的時(shí)鐘,由于要實(shí)現(xiàn)對(duì)音頻信號(hào)實(shí)時(shí)處理,所以沒(méi)有用到后分頻器[7]。
圖2 音頻系統(tǒng)框圖
2 軟件設(shè)計(jì)
音頻系統(tǒng)主循環(huán)如圖3所示。
(1) 經(jīng)過(guò)采樣、A/D轉(zhuǎn)換完成后,清除A/D使能標(biāo)志,得到離散化的數(shù)字信號(hào)。
(2) 調(diào)用周期判定函數(shù),實(shí)現(xiàn)對(duì)信號(hào)周期性的分析。
(3) 調(diào)用FFT變換函數(shù),對(duì)離散信號(hào)的快速傅里葉變換,實(shí)現(xiàn)時(shí)域到頻域的變換。
(4) 顯示輸入信號(hào)的頻譜。
(5) 計(jì)算信號(hào)的功率譜及計(jì)算最大功率。
(6) 顯示信號(hào)的功率譜及最大功率。
圖3 主程序流程圖
2.1 A/D采樣
理論分析:因12位的A/D模塊,故量化單位為1/212,因頻率分辨率Δf=100 Hz、FFT的子樣本點(diǎn)數(shù)N=512,故采樣頻率fs=51 200 Hz(fs≤NΔf)、采樣周期Ts=1/51 200 s(采樣周期=采樣時(shí)間+轉(zhuǎn)換時(shí)間)。因振蕩頻率為7.37 MHz,故指令周期TCY=(1/7.37)× 4=0.5 μs。
實(shí)際控制:轉(zhuǎn)換時(shí)間為14個(gè)TAD(為正確A/D轉(zhuǎn)換,TAD=333.33 ns)。所以,配置A/D自動(dòng)采樣時(shí)間為6個(gè)TAD,A/D轉(zhuǎn)換時(shí)鐘為16TCY,則A/D轉(zhuǎn)換總時(shí)間為0.092 ms,采樣頻率為10.87 kHz。
A/D模塊工作在系統(tǒng)時(shí)鐘源、自動(dòng)轉(zhuǎn)換模式,每完成一次轉(zhuǎn)換進(jìn)入一次中斷。在程序中應(yīng)該定義一個(gè)采樣點(diǎn)數(shù)的結(jié)構(gòu)體,用于存放A/D采集到的數(shù)據(jù),每個(gè)結(jié)構(gòu)體內(nèi)包括一個(gè)實(shí)部和一個(gè)虛部。在中斷服務(wù)子程序中,由A/D模塊采集到的數(shù)字量存儲(chǔ)到結(jié)構(gòu)體的實(shí)部,共進(jìn)行采樣點(diǎn)數(shù)次轉(zhuǎn)換,中斷服務(wù)子程序的流程如圖4所示。
圖4 A/D中斷服務(wù)子程序流程圖
2.2 周期判定
音頻信號(hào)的頻率分量不但多,而且不具周期性。測(cè)量周期可以在時(shí)域也可以在頻域,但是由于頻域測(cè)量周期性時(shí)要求某些頻率點(diǎn)具有由規(guī)律的零點(diǎn)或接近零點(diǎn)出現(xiàn),所以對(duì)于較為復(fù)雜的、頻率分量較多且功率分布較均勻且低的信號(hào)就無(wú)法正確地分析其周期性。因此,對(duì)于信號(hào)的周期性判定,應(yīng)該在對(duì)信號(hào)進(jìn)行FFT變換之前,直接調(diào)用周期判斷函數(shù)[8]。周期性判定子程序流程圖如圖5所示。
圖5 周期性判定子函數(shù)流程圖
2.3 FFT變換
由于直接傅里葉變換的計(jì)算量與子樣本點(diǎn)數(shù)N的平方成正比,在N較大時(shí),計(jì)算量太大,不適合在資源有限的嵌入式系統(tǒng)中實(shí)現(xiàn)。所以最常用基2 FFT算法,其主要思想是將N點(diǎn)直接傅里葉變換分解成多個(gè)較短的直接傅里葉變換,再利用旋轉(zhuǎn)因子的周期性、對(duì)稱性,在很大程度上節(jié)省了系統(tǒng)資源。
MPLAB C30 C編譯器內(nèi)部提供了幾乎全部的數(shù)字信號(hào)處理軟件工具,通過(guò)DSPIC30F系列微處理器[9],只需調(diào)用Microchip公司提供的庫(kù)函數(shù),即可方便的實(shí)現(xiàn)數(shù)字信號(hào)處理。對(duì)于基2 FFT變換來(lái)說(shuō),其軟件流程圖如圖6所示。
圖6 FFT變換軟件流程圖
2.4 特征值提取
對(duì)頻域分析起決定作用的量包括采樣頻率、采樣點(diǎn)數(shù)。通過(guò)FFT[10]變換,得到離散化的幅度譜X(k),先將離散化的幅度值平方,再除于子樣本點(diǎn)數(shù)N,就可得到該頻率點(diǎn)對(duì)應(yīng)的功率值(功率=X(k)*X(k)/N)。
3 結(jié) 語(yǔ)
系統(tǒng)的主要性能指標(biāo)為:輸入阻抗50 Ω;輸入信號(hào)電壓范圍(峰-峰值)100 mV~5 V;輸入信號(hào)包含的頻率成分范圍為200 Hz~10 kHz;頻率分辨力為100 Hz(可正確測(cè)量被測(cè)信號(hào)中,頻差不小于100 Hz的頻率分量的功率值);輸入信號(hào)的總功率和各頻率分量的功率,檢測(cè)出的各頻率分量的功率之和不小于總功率值的95%;各頻率分量功率測(cè)量的相對(duì)誤差的絕對(duì)值小于10%,總功率測(cè)量的相對(duì)誤差的絕對(duì)值小于5%;以5 s周期刷新分析數(shù)據(jù),信號(hào)各頻率分量應(yīng)按功率大小依次存儲(chǔ)并可回放顯示,同時(shí)實(shí)時(shí)顯示信號(hào)總功率和至少前兩個(gè)頻率分量的頻率值和功率值,并設(shè)暫停鍵保持顯示的數(shù)據(jù)。
基于DSP單片機(jī)技術(shù)的音頻信號(hào)分析具有性能穩(wěn)定、電路簡(jiǎn)單、速度快、成本低、體積小的特點(diǎn),適用于需要音頻信號(hào)分析的嵌入式系統(tǒng)中,可以在更多領(lǐng)域進(jìn)一步推廣和應(yīng)用,如環(huán)境監(jiān)測(cè)、語(yǔ)音識(shí)別、智能系統(tǒng)的控制等。
參考文獻(xiàn)
[1]胡航.語(yǔ)音信號(hào)處理[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2000.
[2]王平,程明傳.嵌入式無(wú)線家庭網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2008,24(29):53-56.
[3]夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2003.
[4]謝自美.電子線路設(shè)計(jì)?實(shí)驗(yàn)?測(cè)試[M].2版.武漢:華中科技大學(xué)出版社,2000.
[5]劉文波,張弓.混沌信號(hào)中隱含周期信號(hào)的一種識(shí)別方法[J].雷達(dá)與對(duì)抗,2001(1):46-49.
[6]楊素行.模擬電子技術(shù)基礎(chǔ)簡(jiǎn)明教程[M].北京:高等教育出版社,2006.
[7]何立民.單片機(jī)高級(jí)教程[M].北京:北京航空航天大學(xué)出版社,2001.
[8]丁玉美,高西全.數(shù)字信號(hào)處理[M].2版.西安:西安電子科技大學(xué)出版社,2006.
[9]代紅權(quán),陳海燕.基于Matlab的大學(xué)物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)[J].重慶工學(xué)院學(xué)報(bào):自然科學(xué)版,2007,21(3):32-34.
[10]梅海清,馮毅.數(shù)字變頻FFT在頻譜分析中的應(yīng)用[J].石油化工自動(dòng)化,2003(1): 57-58.