国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

單片機實現音頻頻譜顯示的快速算法研究

發布時間:2010-11-4 21:09    發布者:techshare
關鍵詞: 單片機 , 頻譜 , 算法 , 顯示 , 音頻
1 引言

在家庭影院、卡拉OK等音響系統中,實時顯示音樂信號的頻譜將為音響系統增添不少色彩。目前實際生產的音響系統產品,大多采用以下兩種方法實現音頻頻譜顯示:一是利用硬件濾波器和A/D轉換器;二是利用DSP處理頻譜顯示。前者實現簡單,但硬件成本高,后者軟件和硬件實現都較復雜。這里針對單片機RAM資源少、運算速度慢的特點,提出一種切實可行的快速傅里葉變換算法實現頻譜顯示。


2 系統整體設計及原理

該系統設計由單片機SST89V58RD2、音頻數據采樣電路、A/D轉換電路、頻譜顯示電路等部分組成。圖1為系統整體設計原理框圖。





該系統從功能上可劃分成3部分:(1)音頻數據采集電路實現模擬音頻信號的采樣保持和量化處理,包括音頻采樣電路和加轉換電路;(2)頻譜顯示電路實現模擬音頻信號頻譜的分段顯示,它將音頻信號頻譜劃分成14段,每段按照14級量化,由VFD顯示器件顯示;(3)主控制器采用SST89V58RD2單片機。在完成系統其他控制任務的前提下,充分利用單片機剩余計算資源,采用優化FFT算法計算音頻信號頻譜,并將計算結果輸出到頻譜顯示電路。

3 音頻信號的采集和預處理

3.1 采樣頻率

根據香農采樣定理,一般采樣頻率至少應為所采樣音頻信號最高頻率的2倍。由于人耳能夠感受的頻率為20 Hz"20 kHz,所以理論上采樣頻率最高取40 kHz。目前工業上廣泛采用的采樣頻率大致有3種:44 kHz、16 bit的聲音稱作CD音質:22 kHz、16 bit的聲音效果近似于立體聲廣播(FMStereo),稱作廣播音質;11 kHz、8 bit的聲音稱作電話音質。本文為提高頻譜計算的精度,擬采用40 kHz的采樣頻率和8Bit的數據位長。

3.2 樣本大小

采樣頻率確定后,還需確定樣本值,即完成一次FFT運算所需的采樣點數。根據數字信號處理的基本原理,假設采樣頻率為Fs,采樣點數為N,則FFT運算后,第n點所表示的頻率為:Fn=[(n-1)×Fs]/N(1≤n≤N)。Fn若要精確到Hz,則需采樣長度為(1/f)s的信號。提高頻率分辨率,需增加采樣點數,但這在一些實際應用中是不現實的,則采用有頻率細分法,即采樣比較短時間的信號,然后在后面補充一定數量的0,使其長度達到所需的點數,再作FFT,這在一定程度上能夠提高頻率分辨率。由于該系統是將音頻信號頻譜劃分成14段顯示,因此采用16點FFT運算,去掉第1點和第16點的結果即可。

3.3 音頻數據采集電路

A/D轉換器選用TLC549,它具有8位轉換結果,差分基準電壓輸入,3線數據串行輸出接口,轉換時間最大達17μs,每秒訪問和轉換次數達到40 000次,全部非校準誤差為±0.5LSB,低功耗,最大為15 mW。因此,該器件完全滿足系統40kHz采樣頻率的要求。

圖2為系統音頻數據采集電路。音頻信號來源于CD或DVD碟機輸出的音樂信號,因而基本無噪音,考慮到音頻信號是交流信號,電壓范圍在±0.1 V之間,而TLC549的輸入必須是直流的,電壓范圍為0~5 V,所以還需整流和放大的預處理過程。A/D轉換后得到8位數字值音頻幅值的8位數字量。





4 音頻頻譜算法

音頻頻譜值的計算采用快速傅里葉算法FFT(Fast Fourier Transform),為了提高顯示器的刷新頻率,系統每隔10 ms讀取16次A/D轉換值,得到16點實數序列,緊接著完成16點FFT運算得到16點復數序列。

4.1 倒位序及其優化算法

基2-FTT算法將原始數據倒位序存儲,但運算后的結果則按正常順序輸出。原始采樣數據放在數組float datalm[16]中,datalm[0]存放第1次讀取的A/D轉換值,datalm存放第2次讀取的A/D轉換值,以此類推,可見第n(n=(b3b2b1b0)b)次讀取的A/D轉換值存放在dataIm[n]中。倒序操作后采樣數據存儲在float dataRe[16]中,原來第n次讀取的A/D轉換值存放在datalm[n](n=(b0b1b2b3)b)中。根據樣本大小在系統代碼段中建立倒序表數組,采用查表方式實現快速倒序操作,與移位操作等方法相比,可明顯提高運算速度。

4.2 蝶形運算及其優化算法

根據基2-FFT算法,N點FFT運算可以分成log2N級,每一級都有N/2個蝶形運算,如圖3所示。







蝶形運算公式的推導過程如下:





將式(1)化簡成實部和虛部的形式,得到:





可見每個蝶形運算的輸出都是由其輸入值與某一正弦函數和余弦函數的乘積累加得到的。由式(3)"式(6)編制正弦和余弦表,每次做蝶形運算時可查表加快運算速度。

基2-FFT算法的基本思想是用3層循環完成全部N點FFT運算:(1)最里層循環處理單獨的一個蝶形運算,采用查表方法實現乘法運算;(2)中間層循環完成每一級的N/2個蝶形運算;(3)最外層循環完成log2N級蝶形運算。

由此可看出:在每一級中,最里層循環完成N/2L個蝶形運算;中間層循環控制最里層循環進行2L-1次運算。因此,中間層循環完成時,共進行2L-1xN/2L=N/2個蝶形運算。實際上最里層和中間層循環完成了第L級計算,最外層則最終完成log2N級蝶形運算。

需要加以說明的數據是:(1)在第L級中,每個蝶形的兩個輸入端相距b=2L-1一個點;(2)同一乘數對應著相鄰間隔為2L個點的N/2L個蝶形;(3)第L級的2L-1個蝶形因子WPN中的P,可表示為P=jx25-L,其中j=0,1,2,…(2L-1-1)。

完成16點FFT運算的RAM需求量是128字節,而單片機SST89V58RD2的RAM共1 K字節:顯示器每10 ms刷新一次,而單片機SST89V58RD2的時鐘頻率是40 MHz,完成一次16點FFT運算實際所需時間不到6 ms,因此該系統完全滿足FFT運算的時間復雜度和空間復雜度要求。

5 頻譜值在VFD上的顯示

系統要求將音頻信號頻譜劃分成14段,每段按14級量化,再使用VFD顯示器顯示,因此對于FFT運算結果還要作一定轉換才能輸出到顯示器。第n點的FFT運算結果是復數,實部是dataRe[n],虛部是datalm[ i]。該點的模值除以2/N就是對應該頻率下信號的幅度(對于第1個點則是除以N);該點的相位即是對應該頻率下信號的相位。最后的結果保存在dataRe[ i]中,因為音頻信號頻譜被劃分成14段,所以dataRe[0]和dataRe[15]的值應該舍去。同時,dataRe[ i]可能不是整數,而VFD顯示器要求每個頻段按照14級量化,因此還需將dataRe[ i]的值量化成0~14整數,最后輸出到VFD電路上顯示。

6 結束語

討論了單片機實現音響系統頻譜顯示的快速傅里葉變換算法,針對SST89V58RD2單片機進行算法優化,并詳細論述系統的實現方法,結果證明該方法具有可行性。
本文地址:http://m.qingdxww.cn/thread-36501-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产又色 | 久久福利小视频 | 六月婷婷网视频在线观看 | 亚洲精品精品 | 日韩高清一级毛片 | 成年女人在线观看片免费视频 | 2021国产精品自在拍在线播放 | h色视频在线 | 三级毛片在线免费观看 | 在线亚洲日产一区二区 | 致命弯道8在线观看高清免费观看 | 亚洲天堂视频在线观看免费 | 狠狠操社区 | 国产精品公开免费视频 | www.久草| 日韩一区二区三区在线播放 | 久久精品成人欧美大片免费 | 久久机热一这里只精品 | 韩国福利视频一区二区 | 一级aa毛片| 欧美成人免费网在线观看 | 亚洲欧美日韩伦中文 | 视频一区二区欧美日韩在线 | 欧美在线视频免费 | 91麻豆国产精品91久久久 | 男人的天堂在线观看视频不卡 | 亚洲高清成人欧美动作片 | 在线观看麻豆国产精品 | 亚洲视频在线一区 | 欧美成人午夜视频在线观看 | 免费在线视频成人 | 久久福利影院 | 香蕉网站视频高清在线观看 | 狠狠色丁香久久婷婷综合五月 | 国产一区系列在线观看 | 免费四虎永久在线精品 | 91精品国产9l久久久久 | 国产高清视频在线观看69 | 久久国产麻豆 | 99热在线免费播放 | 国产精品一级香蕉一区 |