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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于LPC2148 ARM單片機(jī)的音頻分析儀設(shè)計(jì)

          基于LPC2148 ARM單片機(jī)的音頻分析儀設(shè)計(jì)

          作者: 時(shí)間:2011-12-05 來源:網(wǎng)絡(luò) 收藏

          0 引言

          隨著微電子和信息技術(shù)的快速發(fā)展,以單片機(jī)為代表的數(shù)字技術(shù)發(fā)展日新月異。單片機(jī)由于具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),而廣泛應(yīng)用于各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理。事實(shí)上,通過采用單片機(jī)來進(jìn)行控制,可以實(shí)現(xiàn)儀器儀表的數(shù)字化、智能化和微型化。本文通過對(duì)比選擇采用了芯片解決方案來實(shí)現(xiàn)的設(shè)計(jì)。

          1 系統(tǒng)分析與選擇

          1.1 信號(hào)處理原理分析

          在對(duì)音頻信號(hào)進(jìn)行分析的過程中,本文采用了快速傅立葉變換FFT算法,即首先對(duì)音頻信號(hào)進(jìn)行離散化處理,然后進(jìn)行FFT運(yùn)算,求出信號(hào)各個(gè)離散頻率點(diǎn)的功率數(shù)值,并得到離散化的功率譜,最后在頻域計(jì)算被測音頻信號(hào)的總功率。

          1.2 系統(tǒng)的選擇

          在處理器的選擇上,通常可以選擇8位、16位或者是32位的MCU。但是,由于在處理信號(hào)的過程中,通常會(huì)用到快速傅立葉變換FFF算法,所以需要進(jìn)行大量的浮點(diǎn)運(yùn)算,而且一個(gè)浮點(diǎn)要占用四個(gè)字節(jié),故在處理過程要占用大量的內(nèi)存,同時(shí)浮點(diǎn)運(yùn)算時(shí)間也很慢,所以采用普通的8位MCU和16位MCU一般難以在一定的時(shí)間內(nèi)完成運(yùn)算。綜合考慮系統(tǒng)內(nèi)存的大小以及運(yùn)算速度,本系統(tǒng)選用Philips公司的32位單片機(jī)。該芯片具有32 KB的RAM,而時(shí)鐘頻率高達(dá)60 MHz,所以,對(duì)于浮點(diǎn)運(yùn)算,不論是在速度上,還是在內(nèi)存上都能夠很快的處理。在信號(hào)采樣方式上,由于本系統(tǒng)所選用的32位MCU芯片是60 MHz的單指令周期處理器,定時(shí)精度為16.7 ns,可以實(shí)現(xiàn)40.96 kHz的采樣率,而且控制方便,成本便宜,所以,本設(shè)計(jì)由MCU進(jìn)行直接采樣,而不采用DDS芯片配合FIFO對(duì)信號(hào)進(jìn)行采集。

          2 系統(tǒng)設(shè)計(jì)

          2.1 總體設(shè)計(jì)

          在系統(tǒng)總體設(shè)計(jì)中,音頻信號(hào)的采樣過程非常關(guān)鍵。當(dāng)音頻信號(hào)經(jīng)過一個(gè)由運(yùn)放和電阻組成的匹配網(wǎng)絡(luò)進(jìn)行采樣時(shí),首先要由量程控制模塊對(duì)信號(hào)進(jìn)行處理,如果信號(hào)電壓在100 mV~5 V的范圍內(nèi)選擇直通,也就是不對(duì)信號(hào)進(jìn)行衰減或者放大控制,則可減少誤差。但是,當(dāng)信號(hào)強(qiáng)度太小時(shí),12位的A/D轉(zhuǎn)換器在2.5 V參考電壓下的最小分辨率為1 mV左右,這時(shí)如果選擇直通,其離散化處理的誤差將會(huì)非常大。因此,當(dāng)采集到信號(hào)后,若發(fā)現(xiàn)其強(qiáng)度太小,如在20~250 mV之間,這時(shí)就應(yīng)該將其認(rèn)定為弱信號(hào),故應(yīng)對(duì)其經(jīng)過增益放大器放大之后再進(jìn)行A/D采樣。

          經(jīng)過12位A/D轉(zhuǎn)換器ADS7819轉(zhuǎn)換后的數(shù)字信號(hào)可由32位LPC2148進(jìn)行FFT變換和處理,以分析其頻譜特性和各個(gè)頻率點(diǎn)的功率值,然后將這些值送到Atmega16進(jìn)行顯示控制。信號(hào)由32位LPC2148分析后,可判斷其周期性,可由Atme-gal6進(jìn)行測量,然后在LCD顯示屏上顯示,其功能框圖如圖1所示。

          2.2 放大電路設(shè)計(jì)

          當(dāng)信號(hào)輸入后,首先要根據(jù)信號(hào)強(qiáng)弱進(jìn)行放大處理,圖2所示是其放大電路原理圖。該放大電路通過R1和R2兩個(gè)電阻和一個(gè)高精度儀表運(yùn)放AD620實(shí)現(xiàn)跟隨功能,并在進(jìn)行阻抗匹配后。通過繼電器控制來決定是將信號(hào)直接送給AD轉(zhuǎn)換還是放大后再進(jìn)行AD轉(zhuǎn)換。

          由于需要對(duì)音頻信號(hào)的頻率及其功率進(jìn)行檢測,并且要測量正弦信號(hào)的失真度,因此要求在對(duì)小信號(hào)進(jìn)行放大時(shí),要盡可能少的引入信號(hào)的放大失真。正弦信號(hào)的理論計(jì)算失真度為0,對(duì)引入的信號(hào)失真非常靈敏,所以,本設(shè)計(jì)選擇了低噪聲、低失真的儀表放大器INA217,以將失真度控制在1 kHz頻率之內(nèi)。[next]

          2.3 AD轉(zhuǎn)換電路設(shè)計(jì)

          本系統(tǒng)采用12位AD轉(zhuǎn)換器ADS7819來對(duì)信號(hào)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)據(jù)送往32位控制器進(jìn)行處理,其轉(zhuǎn)換電路原理圖如圖3所示。

          3 軟件設(shè)計(jì)

          由于系統(tǒng)主控芯片LPC2148的處理速度比較快,所以,軟件設(shè)計(jì)采用C語言來進(jìn)行編程比較簡單快捷,其軟件設(shè)計(jì)流程圖如圖4所示。

          4 結(jié)果分析

          筆者對(duì)本系統(tǒng)的音頻信號(hào)進(jìn)行了測量,并得到了如表1所列的數(shù)據(jù)。由于實(shí)驗(yàn)室能夠模仿的音頻信號(hào)只有正弦信號(hào),所以,實(shí)驗(yàn)采用信號(hào)發(fā)生器來產(chǎn)生正弦信號(hào),然后對(duì)其進(jìn)行測量和誤差分析,根據(jù)時(shí)域和頻域的測量結(jié)果可以發(fā)現(xiàn),其測量誤差在5%的范圍之內(nèi),且沒有發(fā)現(xiàn)明顯失真,基本可以滿足實(shí)驗(yàn)的測量要求。

          5 結(jié)束語

          經(jīng)過實(shí)驗(yàn)檢驗(yàn),本系統(tǒng)架構(gòu)設(shè)計(jì)合理,功能電路較好,系統(tǒng)性能優(yōu)良、穩(wěn)定,系統(tǒng)設(shè)計(jì)基本可以滿足音頻分析的基本要求,且誤差較小。但是,由于音頻信號(hào)有多個(gè)頻點(diǎn),沒有一定的規(guī)律性,因而導(dǎo)致測量過程中音頻信號(hào)波動(dòng)較大,這一點(diǎn)在應(yīng)用過程中,還要對(duì)系統(tǒng)進(jìn)行進(jìn)一步的改進(jìn)和完善。



          關(guān)鍵詞: LPC2148 音頻分析儀

          評(píng)論


          相關(guān)推薦

          技術(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); })();