在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-04-28 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 引言

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

2 系統(tǒng)整體設(shè)計及原理

該系統(tǒng)設(shè)計由單片機SST89V58RD2、音頻數(shù)據(jù)采樣電路、A/D轉(zhuǎn)換電路、頻譜顯示電路等部分組成。圖1為系統(tǒng)整體設(shè)計原理框圖。

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

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

3 音頻信號的采集和預(yù)處理

3.1 采樣頻率

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

3.2 樣本大小

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

3.3 音頻數(shù)據(jù)采集電路

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

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

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

4 音頻頻譜算法

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

4.1 倒位序及其優(yōu)化算法

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

4.2 蝶形運算及其優(yōu)化算法

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

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

蝶形運算公式的推導(dǎo)過程如下:

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

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

利用單片機實現(xiàn)實現(xiàn)頻譜顯示的快速傅里葉變換算法并進行優(yōu)化

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

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

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

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

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

5 頻譜值在VFD上的顯示

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

6 結(jié)束語

討論了單片機實現(xiàn)音響系統(tǒng)頻譜顯示的快速傅里葉變換算法,針對SST89V58RD2單片機進行算法優(yōu)化,并詳細論述系統(tǒng)的實現(xiàn)方法,結(jié)果證明該方法具有可行性。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44969

    瀏覽量

    649738
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9027

    瀏覽量

    151568
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17074

    瀏覽量

    183940
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    單片機實現(xiàn)音頻頻譜顯示快速算法研究

    方法實現(xiàn)音頻頻譜顯示:一是利用硬件濾波器和A/D轉(zhuǎn)換器;二是利用DSP處理頻譜
    發(fā)表于 03-02 23:59

    單片機實現(xiàn)fft變換分析信號頻譜

    本帖最后由 eehome 于 2013-1-5 09:46 編輯 求單片機實現(xiàn)fft變換分析信號頻譜 (1)用8位AD轉(zhuǎn)換芯片對信號實現(xiàn)
    發(fā)表于 12-14 12:51

    詳解快速傅里葉變換FFT算法

    詳解快速傅里葉變換FFT算法
    發(fā)表于 05-25 09:31

    快速傅里葉變換FFT算法及其應(yīng)用

    快速傅里葉變換FFT算法及其應(yīng)用
    發(fā)表于 05-28 09:13

    快速傅里葉變換C語言實現(xiàn)

    快速傅里葉變換C語言實現(xiàn) 模擬采樣進行頻譜分析FFT是DFT的快速算法用于分析確定信號(時間連續(xù)可積信號、不一定是周期信號)的頻率(或相位、
    發(fā)表于 07-20 06:01

    離散傅里葉變換及其快速算法

    離散傅里葉變換及其快速算法離散傅里葉變換 (Discrete Fourier Transform,DFT)是時間函數(shù)是離散的,而且頻譜函數(shù)也是離散的
    發(fā)表于 10-30 12:54 ?33次下載

    利用MAXQ2000微控制器實現(xiàn)快速傅里葉變換

    利用MAXQ2000微控制器實現(xiàn)快速傅里葉變換
    發(fā)表于 12-13 17:24 ?19次下載
    <b class='flag-5'>利用</b>MAXQ2000微控制器<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>快速</b><b class='flag-5'>傅里葉變換</b>

    單片機實現(xiàn)音頻頻譜顯示快速算法研究

    單片機實現(xiàn)音頻頻譜顯示快速算法研究 1 引言     在家庭影院、卡拉OK等音響系統(tǒng)中,實時
    發(fā)表于 12-10 10:26 ?4047次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>音頻<b class='flag-5'>頻譜</b><b class='flag-5'>顯示</b>的<b class='flag-5'>快速算法</b>研究

    單片機實現(xiàn)音頻頻譜顯示快速算法研究

    單片機實現(xiàn)音頻頻譜顯示快速算法研究單片機實現(xiàn)音頻
    發(fā)表于 05-20 16:50 ?12次下載

    利用快速傅里葉變換計算相關(guān)面

      快速傅里葉變換 (fast Fourier transform),即利用計算機計算離散傅里葉變換(DFT)的高效、快速計算方法的統(tǒng)稱,簡
    發(fā)表于 11-27 16:23 ?1744次閱讀

    傅里葉變換的介紹傅里葉變換有什么意義和應(yīng)用

    傅里葉變換是數(shù)字信號處理領(lǐng)城種很重要的算法。傅里葉表明:任何連續(xù)測量的時序或信號,都可以表示為不同頻率的正弦波信號的無限疊加。而根據(jù)該原理的傅里葉變換算法利用直接測量到的原始信號,以累加方式來計算該
    發(fā)表于 04-30 08:00 ?2次下載
    <b class='flag-5'>傅里葉變換</b>的介紹<b class='flag-5'>傅里葉變換</b>有什么意義和應(yīng)用

    利用FFT算法實現(xiàn)快速傅里葉變換

    簡 介: 利用FFT算法實現(xiàn)快速傅里葉變換, 在理論、工程中具有非常廣泛的應(yīng)用。除了能夠在合適的計算平臺完成FFT
    的頭像 發(fā)表于 07-10 09:07 ?3730次閱讀

    傅里葉變換實現(xiàn)方法

    傅里葉變換實現(xiàn)方法? 傅里葉變換是一種將信號在時間域和頻率域之間相互轉(zhuǎn)換的數(shù)學(xué)工具。它的實現(xiàn)方法有很多種,其中最常見的是離散傅里葉變換(D
    的頭像 發(fā)表于 09-07 16:47 ?1927次閱讀

    基于快速傅里葉變換快速算法

    電子發(fā)燒友網(wǎng)站提供《基于快速傅里葉變換快速算法.pdf》資料免費下載
    發(fā)表于 11-06 10:25 ?1次下載
    基于<b class='flag-5'>快速</b><b class='flag-5'>傅里葉變換</b>的<b class='flag-5'>快速算法</b>

    什么是實時頻譜分析儀呢?傅里葉變換(FFT)如何實現(xiàn)頻譜測量?

    分析儀廣泛應(yīng)用于無線通信、音頻處理、聲學(xué)研究等領(lǐng)域。 傅里葉變換(FFT)是實現(xiàn)頻譜測量的重要數(shù)學(xué)工具。FFT算法可以將時域信號轉(zhuǎn)換為頻域信號,并以圖形形式呈現(xiàn)出來。它是一種離散
    的頭像 發(fā)表于 01-19 15:50 ?4062次閱讀
    主站蜘蛛池模板: 在线免费成人 | 亚洲三级网 | 久久精品国产精品亚洲婷婷 | 丁香六月婷婷精品免费观看 | 玖玖在线| 丁香婷婷综合网 | 色多多福利网站老司机 | 37pao强力打造免费高速高清 | 特级片在线观看 | 深夜在线观看大尺度 | 国产一区二区三区免费大片天美 | 四虎中文| 天天天天天操 | 欧美线人一区二区三区 | 日本特黄a级高清免费酷网 日本特黄色大片 | 成人理伦 | 日本免费人成黄页网观看视频 | 三级在线免费 | 免费观看激色视频网站bd | 狠色网 | 亚洲va中文字幕 | 日日摸人人拍人人澡 | 一区视频在线播放 | 福利视频免费观看 | 深夜久久| 亚洲国产欧美日韩一区二区三区 | 免费一级欧美片在线观免看 | 性网站视频 | 韩国精品视频 | 欧美视频不卡一区二区三区 | 波多野吉衣一区二区三区在线观看 | 午夜影院亚洲 | 欧美黑人巨大日本人又爽又色 | 欧美激情亚洲色图 | 欧美大色网 | 在线亚洲欧美性天天影院 | 中文字幕欧美日韩 | 亚洲三级视频在线观看 | 日本巨黄视频 | 成人免费看黄页网址大全 | se97se成人亚洲网站在线观看 |