摘 要: 詳細(xì)介紹了一種基于ARM的音頻頻譜顯示系統(tǒng)的實(shí)現(xiàn),,整個音頻顯示系統(tǒng)包括音頻信號采集,、音頻信號處理以及音頻信號轉(zhuǎn)換后的顯示等功能。在設(shè)計(jì)中綜合了聲音采集,、ARM技術(shù)及FFT算法,,構(gòu)建了一個實(shí)時采集的頻譜顯示系統(tǒng),可以應(yīng)用于各種需要對聲音進(jìn)行采集和分析的場合,。其中,,硬件系統(tǒng)主要包括聲音信號的采集與處理,、最小系統(tǒng)、電源和顯示模塊,;而軟件系統(tǒng)則是將ADC轉(zhuǎn)換的數(shù)據(jù)通過FFT算法后顯示在LCM12864顯示器上,。測試結(jié)果表明,該系統(tǒng)具有較好的實(shí)時性和準(zhǔn)確性,。
關(guān)鍵詞: 音頻,;頻譜顯示;FFT,;ARM
本文設(shè)計(jì)了基于SONiX公司的ARM Cortex-M0 SN32F700的音頻頻譜顯示器,,采用性價(jià)比較高的Cortex-M0 SN32F700實(shí)現(xiàn)對音頻頻譜的分析處理,取代了傳統(tǒng)使用純硬件濾波器或?qū)S脭?shù)字處理芯片DSP來實(shí)現(xiàn)的方法,,具有較高的實(shí)用價(jià)值,。本文采用ARM作為控制核心[1-3],充分發(fā)揮了其功耗超低,、精度較高等優(yōu)勢,,其他各部分電路設(shè)計(jì)也充分考慮了簡單、可靠,、經(jīng)濟(jì)等因素,,為實(shí)際應(yīng)用提供了一定的參考價(jià)值。
1 系統(tǒng)總體設(shè)計(jì)方案
1.1 系統(tǒng)控制芯片選擇
本系統(tǒng)以SONiX公司的ARM Cortex-M0 SN32F700芯片為控制核心,,SN32F700的主時鐘的速率為50 MHz,,采用三級流水線結(jié)構(gòu)且片上資源豐富,能夠很好地實(shí)現(xiàn)系統(tǒng)的控制和算法,,甚至能簡化一些復(fù)雜的硬件電路,。相比于普通的單片機(jī),采用ARM作主控芯片的方案具有靈活性,、可擴(kuò)展性,、通用性的優(yōu)點(diǎn),而且還可以根據(jù)市場的需求組合,,價(jià)格上也有一定的優(yōu)勢,,本系統(tǒng)最終選擇ARM的芯片方案來構(gòu)建音視頻處理平臺。
1.2 音頻頻譜顯示方案
方案一 利用硬件濾波器和A/D轉(zhuǎn)換器,,并用DDS芯片配合FIFO對信號進(jìn)行采集,,通過DDS集成芯片產(chǎn)生一個頻率穩(wěn)定度和精度相當(dāng)高的信號作為FIFO的時鐘,然后由FIFO對A/D轉(zhuǎn)換的結(jié)果進(jìn)行采集和存儲,,最后送入MCU進(jìn)行處理,。
方案二 直接由32位MCU的定時中斷進(jìn)行信號的采集,然后對信號進(jìn)行分析,。因?yàn)?2位MCU是50 MHz的單指令周期處理器,,所以其定時精確度為20.0 ns,,已經(jīng)遠(yuǎn)遠(yuǎn)可以實(shí)現(xiàn)本文期望的采樣率,而且控制方成本較低,,因此選擇由MCU直接采樣,。
方案一實(shí)現(xiàn)簡單,但硬件成本高,,方案二軟件和硬件實(shí)現(xiàn)都較簡單,。而這里針對ARM資源多、運(yùn)算速度快的特點(diǎn),,提出一種切實(shí)可行的快速傅里葉變換算法實(shí)現(xiàn)頻譜顯示,。因此選取方案二作為音頻頻譜顯示計(jì)方案。
1.3 系統(tǒng)控制方案選擇
在整個音頻處理系統(tǒng)中,,采用順序,、循環(huán)掃描和定時輸出顯示的方式來對整個系統(tǒng)控制[4]。軟件系統(tǒng)中的各個子程序逐步實(shí)現(xiàn),,最后再將所需要的子程序合并,,這樣就具有編寫代碼容易、易于移植,、維護(hù)及開發(fā)周期短等特點(diǎn),。最重要的是實(shí)現(xiàn)了程序中數(shù)據(jù)的快速處理輸出,使得將來的擴(kuò)展更加方便,。因此選用的主控芯片是SN32F700,。
在上述硬件電路設(shè)計(jì)中,主要著眼于音頻信號預(yù)處理電路的設(shè)計(jì),。在實(shí)際應(yīng)用中,音頻信號主要來源是咪頭,、麥克風(fēng)輸入信號或者是播放器輸出信號,,圖3所示是一段電腦播放音樂時聲卡輸出的音頻波形。
從圖3可以看到,,電腦上的聲音信號的電壓有正,、負(fù)兩種狀態(tài),當(dāng)直接從電腦上取聲音信號時,,需要對其進(jìn)行處理,,使采集的電壓全為正。下面介紹如何對信號進(jìn)行處理,,可以直接從電腦上取出聲音信號,,也可以通過采集電路采集外界的聲音信號。
2.3 音頻預(yù)處理放大電路
由于在實(shí)際的音頻運(yùn)用中,,音頻信號會出現(xiàn)電壓為負(fù)值的現(xiàn)象,,而單片機(jī)只能識別0和1,,對負(fù)電平不能處理,因此要對音頻信號進(jìn)行處理,,使得音頻信號最后的輸入達(dá)到單片機(jī)的電壓變換范圍,,即在AVREFH和AVREFL之間,以便于MCU進(jìn)行ADC轉(zhuǎn)換,。
由于是對聲音信號處理,,因此選擇了對于音頻信號具有很低失真率的LM358運(yùn)算放大器。根據(jù)以上分析,,設(shè)計(jì)出的音頻預(yù)處理電路如圖4所示,。
圖4中電阻R5、R6更具運(yùn)算放大器中虛短與虛斷的特性,,即反相端2和同相端3兩個輸入口的電壓和電流相等,,R5、R6組成的是一個運(yùn)算放大電路,,(1+R5/R6)是其放大倍數(shù),。將輸入的負(fù)電壓信號變成正的電壓信號,其原理是串聯(lián)電阻分壓和RC組成的低通濾波器根據(jù)輸入電壓的高低對輸入信號進(jìn)行充放電,,使輸入信號的電壓得到升高,。
2.4 音頻顯示電路
本設(shè)計(jì)所選用的顯示屏LCM是JDL12864G-04。JDL12864G-04模塊是點(diǎn)陣液晶顯示模塊,,它主要由行驅(qū)動器,、列驅(qū)動器以及128×64全點(diǎn)陣液晶顯示器組成,可以完成圖形和8×4個漢字(16×16點(diǎn)陣),。
LCM向用戶提供一個標(biāo)準(zhǔn)的LCD顯示驅(qū)動接口(有4位,、8位和VGA等不同類型),用戶按照接口要求進(jìn)行操作來控制LCD正確顯示,。相比玻璃LCM是一種更高集成度的LCD產(chǎn)品,,對小尺寸LCD顯示,LCM可以比較方便地與各種微控制器(比如單片機(jī))連接,。由于SN32F700的時鐘頻率是50 MHz,,則每秒鐘對LCM的可刷新次數(shù)為50 M/(128×64×8)=762次,完全滿足頻譜刷新的頻率,。LCM12864顯示電路如圖5所示,。
3 系統(tǒng)的軟件設(shè)計(jì)與調(diào)試
系統(tǒng)的調(diào)試包括硬件平臺的調(diào)試與系統(tǒng)程序的調(diào)試。在每一個工程中,,調(diào)試都是一個非常重要且十分復(fù)雜的環(huán)節(jié),。
3.1 系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)軟件程序設(shè)計(jì)中包含了初始化部分、音頻采集部分,、FFT運(yùn)算部分,、幅值計(jì)算部分及頻譜顯示部分,。每個部分可以清晰地了解程序的流程,使得程序的結(jié)構(gòu)更加簡單,,對于以后相應(yīng)的開發(fā)可以很好地進(jìn)行移植[5-6],。
3.2 系統(tǒng)的測試
系統(tǒng)的測試電路是將1 kHz的正弦波作為聲音信號輸入到電路中,圖6是聲音信號經(jīng)過聲音采集電路后的顯示,。其中,,信號1是輸出,信號2是輸入,??梢悦黠@看出,信號1與信號2的波形是相反的,,相位相差180°,。
1 kHz的正弦波輸入經(jīng)過音頻采集電路和音頻預(yù)處理電路后的顯示如圖7所示。其中,,信號線1為輸入,,信號2為輸出,輸入與輸出方向相同,,相位無差別,。
本文介紹了基于ARM的音頻頻譜顯示器的設(shè)計(jì)方法,完成了音頻頻譜顯示器的設(shè)計(jì)和制作,,并對其進(jìn)行了性能測試,。測試結(jié)果表明,整個系統(tǒng)能夠順利采集音頻信號并進(jìn)行處理,,最終在LCD上顯示所采集的頻譜圖,,達(dá)到一個較好的性能,實(shí)現(xiàn)了預(yù)期的效果,。
參考文獻(xiàn)
[1] 周林,,殷俠.?dāng)?shù)據(jù)采集與分析技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.
[2] 周立功,,王祖麟,陳明計(jì),,等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,,2008.
[3] 田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005.
[4] 李明明,,李宏,,王晨波.基于FPGA與單片機(jī)的音頻頻譜分析系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013(1):101-102.
[5] 王春菊.數(shù)字式頻譜分析儀原理分析[J].標(biāo)準(zhǔn),、檢測與儀器,,2001(12):95-96.
[6] 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,,2004.