<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于MSP430的FM音頻頻譜分析儀的設(shè)計(jì)方案

          一種基于MSP430的FM音頻頻譜分析儀的設(shè)計(jì)方案

          作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏

          圖6表示的是FFT運(yùn)算的流程圖,整個(gè)FFT程序包含在一個(gè)迭代的過程中,最后一層計(jì)算總是2-FFT蝶形運(yùn)算,下面是蝶形運(yùn)算和FFT計(jì)算的主程序段:

          當(dāng)數(shù)據(jù)經(jīng)過FFT處理完畢以后,最后一步就是直觀地把數(shù)據(jù)顯示出來了,在這里我們采用了TFT液晶HD66772.

          結(jié)合HD66772的操作時(shí)序圖,利用指令對(duì)其進(jìn)行讀寫操作,可以對(duì)液晶的讀寫進(jìn)行編程。MSP430F149與液晶HD66772模塊之間的連接分為控制總線和數(shù)據(jù)總線。在液晶屏上正確顯示信息,必須對(duì)液晶進(jìn)行兩個(gè)基本操作:第一,寫入指令代碼;第二,寫入顯示數(shù)據(jù)。

          4.系統(tǒng)調(diào)試與運(yùn)行

          因?yàn)镸SP430F149的主時(shí)鐘采用8MHz晶振,雖然系統(tǒng)的單條指令的執(zhí)行時(shí)間僅為0.125μs,但是加上處理FFT的運(yùn)算、ADC12采樣頻率和液晶的寫入時(shí)間等影響,液晶的實(shí)際刷新頻率低于25Hz,產(chǎn)生嚴(yán)重的閃爍感。為了提高刷新頻率,將實(shí)心柱圖改為空心線條,每隔兩個(gè)空心細(xì)線條寫入一個(gè)實(shí)心線條,這樣液晶的寫入時(shí)間減少了2/3,既能保證顯示的結(jié)果的準(zhǔn)確性,也不犧牲系統(tǒng)的寫入HD66772液晶的GRAM的時(shí)間。解決了信號(hào)閃爍的問題。圖7為輸入音頻信號(hào)后TFT液晶顯示的頻譜圖。

          圖7中將輸入信號(hào)30Hz-15KHz的音頻信號(hào)在頻域進(jìn)行了16等分,每一個(gè)柱子表示1KHz的頻率帶寬。從圖中可以看到一般音頻信號(hào)的能量集中在低頻段,隨著頻率的升高音頻能量也越來越弱,這也是調(diào)頻廣播采用加權(quán)技術(shù)來提高性噪比的原因了。

          4.結(jié)論

          本方案通過ADC采樣輸入的音頻信號(hào),ADC采樣完成以后,將數(shù)據(jù)進(jìn)行倒序排列并進(jìn)行FFT運(yùn)算,結(jié)果通過TFT液晶顯示出來。由于采用的處理器的處理能力的原因,不能做到很高的采樣頻率和很精細(xì)的頻率分辨率,要提高系統(tǒng)的頻率分辨率,就需要增加采樣點(diǎn)數(shù)??梢越柚鶳C的強(qiáng)大處理能力,將采樣的數(shù)據(jù)通過預(yù)留的串口傳送給PC,在PC上完成FFT運(yùn)算以及顯示,這就是虛擬儀器的方式,實(shí)際工作中應(yīng)用前景也非常大。


          上一頁 1 2 下一頁

          關(guān)鍵詞: MSP430FM音頻頻譜分析

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();