單片機實現(xiàn)音頻頻譜顯示的快速算法研究_第1頁
單片機實現(xiàn)音頻頻譜顯示的快速算法研究_第2頁
單片機實現(xiàn)音頻頻譜顯示的快速算法研究_第3頁
單片機實現(xiàn)音頻頻譜顯示的快速算法研究_第4頁
單片機實現(xiàn)音頻頻譜顯示的快速算法研究_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1引言在家庭影院、卡拉OK 等音響系統(tǒng)中,實時顯示音樂信號的頻譜將為音響系統(tǒng)增添不少色彩。目前實際生產(chǎn)的音響系統(tǒng)產(chǎn)品,大多采用以下兩種方法實現(xiàn)音頻頻譜顯示:一是利用硬件濾波器和A/D轉換器;二是利用DSP 處理頻譜顯示。前者實現(xiàn)簡單,但硬件成本高,后者軟件和硬件實現(xiàn)都較復雜。這里針對單片機RAM 資源少、運算速度慢的特點,提出一種切實可行的快速傅里葉變換算法實現(xiàn)頻譜顯示。2系統(tǒng)整體設計及原理該系統(tǒng)設計由單片機SST89V58RD2、音頻數(shù)據(jù)采樣電路、A/D轉換電路、頻譜顯示電路等部分組成。圖1為系統(tǒng)整體設計原理框圖。該系統(tǒng)從功能上可劃分成3部分:(1)音頻數(shù)據(jù)采集電路實現(xiàn)模擬音頻信號的采樣保持

2、和量化處理,包括音頻采樣電路和A/D轉換電路;(2)頻譜顯示電路實現(xiàn)模擬音頻信號頻譜的分段顯示,它將音頻信號頻譜劃分成14段,每段按照14級量化,由VFD 顯示器件顯示;(3)主控制器采用SST89V58RD2單片機, 在完成系統(tǒng)其他控制任務的前提下,充分利用單片機剩余計算資源,采用優(yōu)化FFT 算法計算音頻信號頻譜,并將計算結果輸出到頻譜顯示電路。3音頻信號的采集和預處理3.1采樣頻率根據(jù)香農采樣定理,一般采樣頻率至少應為所采樣音頻信號最高頻率的2倍。由于人耳能夠感受的頻率為20Hz20kHz ,所以理論上采樣頻率最高取40kHz 。目前工業(yè)上廣泛采用的采樣頻率大致有3種1:44kHz 、16

3、bit 的聲音稱作CD 音質;22kHz 、16bit 的聲音效果近似于立體聲廣播(FM Stereo ),稱作廣播音質;11kHz 、8bit 的聲音稱作電話音質。本文為提高頻譜計算的精度,擬采用40kHz 的采樣頻率和8Bit 的數(shù)據(jù)位長。3.2樣本大小采樣頻率確定后,還需確定樣本值,即完成一次FFT 運算所需的采樣點數(shù)。根據(jù)數(shù)字信號處理的基本原理2,假設采樣頻率為F s ,采樣點數(shù)為N ,則FFT 運算后,第n 點所表示的頻率為:F n =(n-1)×F s /N (1n N )。F n 若要精確到Hz ,則需采樣長度為(1/f )s 的信號。提高頻率分辨率,需增加采樣點數(shù),但

4、這在一些實際應用中是不現(xiàn)實的,則采用有頻率細分法,即采樣比較短時間的信號,然后在后面補充一定數(shù)量的0,使其長度達到所需的點數(shù),再作FFT ,這在一定程度上能夠提高頻率分辨率。由于該系統(tǒng)是將音頻信號頻譜劃分成14段顯示,因此采用16點FFT 運算,去掉第1點和第16點的結果即可。3.3音頻數(shù)據(jù)采集電路A/D轉換器選用TLC549,它具有8位轉換結果,差分基準電壓輸入,3線數(shù)據(jù)串行輸出接口,轉換時間最大達17s ,單片機實現(xiàn)音頻頻譜顯示的快速算法研究吳繼發(fā),陳特放(中南大學信息科學與工程學院,湖南長沙410083)摘要:基于單片機SST89V58RD2的特性,提出一種切實可行的快速傅里葉變換算法實

5、現(xiàn)音頻信號頻譜顯示的設計方案。該方案硬件電路設計簡單、成本低,并具有較高的實用價值。關鍵詞:頻譜顯示;音頻;單片機;快速傅里葉變換(FFT )中圖分類號:TP391文獻標識碼:A文件編號:1674-6236(2009)11-0070-02Fast algorithm research of audio spectrum display based onsingle -chip computerWU Ji -fa ,CHEN Te -fang(School of Information Science and Engineering ,Central South University ,Chan

6、gsha 410083,China )Abstract:A design scheme of practicable fast fourier transform algorithm for audio spectrum display based on SST89V58RD2single -chip computer is presented in this paper.This design scheme features simple hardware circuit de -sign ,low cost and it has a high practical value.Key wor

7、ds:spectrum display ;audio ;single -chip computer ;Fast Fourier Transform (FFT )收稿日期:2009-05-15稿件編號:200905039吳繼發(fā)(),男湖北黃岡人,。研究方向:。圖1系統(tǒng)整體設計原理框圖2009年11月Nov. 2009第17卷第11期Vol.17No.11電子設計工程Electronic Design Engineering 70每秒訪問和轉換次數(shù)達到40000次,全部非校準誤差為±0.5LSB ,低功耗,最大為15mW 。因此,該器件完全滿足系統(tǒng)40kHz 采樣頻率的要求。圖2為系統(tǒng)音

8、頻數(shù)據(jù)采集電路。音頻信號來源于CD 或DVD 碟機輸出的音樂信號,因而基本無噪音,考慮到音頻信號是交流信號,電壓范圍在±0.1V 之間,而TLC549的輸入必須是直流的,電壓范圍為05V ,所以還需整流和放大的預處理過程。A/D轉換后得到8位數(shù)字值音頻幅值的8位數(shù)字量。4音頻頻譜算法音頻頻譜值的計算采用快速傅里葉算法FFT (FastFourier Transform )3,為了提高顯示器的刷新頻率,系統(tǒng)每隔10ms 讀取16次A/D轉換值,得到16點實數(shù)序列,緊接著完成16點FFT 運算得到16點復數(shù)序列。4.1倒位序及其優(yōu)化算法基2-FFT 算法將原始數(shù)據(jù)倒位序存儲,但運算后的結

9、果則按正常順序輸出。原始采樣數(shù)據(jù)放在數(shù)組float dataIm16中,dataIm0存放第1次讀取的A/D轉換值,dataIm1存放第2次讀取的A/D轉換值,以此類推,可見第n (n =(b 3b 2b 1b 0)b )次讀取的A/D轉換值存放在dataImn 中。倒序操作后采樣數(shù)據(jù)存儲在float dataRe16中,原來第n 次讀取的A/D轉換值存放在dataImn (n =(b 0b 1b 2b 3)b )中。根據(jù)樣本大小在系統(tǒng)代碼段中建立倒序表數(shù)組,采用查表方式實現(xiàn)快速倒序操作,與移位操作等方法相比,可明顯提高運算速度。4.2蝶形運算及其優(yōu)化算法根據(jù)基2-FFT 算法4,N 點FFT

10、 運算可以分成log 2N 級,每一級都有N /2個蝶形運算,如圖3所示。蝶形運算公式的推導過程如下:X (k )=X (k )+X(k+b)W N P(1)X (k+b)=X (k )-X (k+b)W NP(2)式中,W N P=cos(2P/N)-j sin (2P/N)。將式(1)化簡成實部和虛部的形式,得到:X R (k )=X R (k )+X R (k+b)cos (2P/N)+X I (k+b)sin (2P/N)(3)X I (k )=X I (k )-X R (k+b)sin (2P/N)+XI (k+b)cos (2P/N)(4)同理,式(2)化簡得到:X R (k+b)

11、=X R (k )-X R (k+b)cos (2P/N)-X I (k+b)sin (2P/N)(5)X I (k+b)=XI (k )+XR (k+b)sin (2P/N)-X I (k+b)cos (2P/N)(6)可見每個蝶形運算的輸出都是由其輸入值與某一正弦函數(shù)和余弦函數(shù)的乘積累加得到的。由式(3)式(6)編制正弦和余弦表,每次做蝶形運算時可查表加快運算速度?;?-FFT 算法的基本思想是用3層循環(huán)完成全部N 點FFT 運算:(1)最里層循環(huán)處理單獨的一個蝶形運算,采用查表方法實現(xiàn)乘法運算;(2)中間層循環(huán)完成每一級的N /2個蝶形運算;(3)最外層循環(huán)完成log 2N 級蝶形運算。

12、由此可看出:在每一級中,最里層循環(huán)完成N /2L 個蝶形運算;中間層循環(huán)控制最里層循環(huán)進行2L -1次運算。因此,中間層循環(huán)完成時,共進行2L -1×N /2L =N /2個蝶形運算。實際上最里層和中間層循環(huán)完成了第L 級計算,最外層則最終完成log 2N 級蝶形運算。需要加以說明的數(shù)據(jù)是:(1)在第L 級中,每個蝶形的兩個輸入端相距b =2L -1個點;(2)同一乘數(shù)對應著相鄰間隔為2L個點的N /2L 個蝶形;(3)第L 級的2L -1個蝶形因子W N P中的P ,可表示為P =j ×25-L ,其中j =0,1,2,(2L -1-1)。完成16點FFT 運算的RAM

13、需求量是128字節(jié),而單片機SST89V58RD2的RAM 共1K 字節(jié);顯示器每10ms 刷新一次,而單片機SST89V58RD2的時鐘頻率是40MHz ,完成一次16點FFT 運算實際所需時間不到6ms ,因此該系統(tǒng)完全滿足FFT 運算的時間復雜度和空間復雜度要求。5頻譜值在VFD 上的顯示系統(tǒng)要求將音頻信號頻譜劃分成14段,每段按14級量化,再使用VFD 顯示器顯示,因此對于FFT 運算結果還要作一定轉換才能輸出到顯示器。第n 點的FFT 運算結果是復數(shù),實部是dataRen ,虛部是dataImi 。該點的模值除以2/N 就是對應該頻率下信號的幅度(對于第1個點則是除以N );該點的相

14、位即是對應該頻率下信號的相位。最后的結果保存在dataRei 中,因為音頻信號頻譜被劃分成14段,所以dataRe0和dataRe15的值應該舍去。同時,dataRei 可能不是整數(shù),而VFD 顯示器要求每個頻段按照14級量化,因此還需將dataRei 的值量化成014整數(shù),最后輸出到VFD 電路上顯示。6結束語討論了單片機實現(xiàn)音響系統(tǒng)頻譜顯示的快速傅里葉變換算法,針對SST89V58RD2單片機進行算法優(yōu)化,并詳細論述系統(tǒng)的實現(xiàn)方法,結果證明該方法具有可行性。參考文獻:1鄭君里. 信號與系統(tǒng)M.2版. 北京:高等教育出版社,20002程佩青. 數(shù)字信號處理教程M.北京:清華大學出版社,20013陳懷琛

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論