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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 數(shù)字鎖相放大器的實現(xiàn)研究

          數(shù)字鎖相放大器的實現(xiàn)研究

          作者: 時間:2012-05-31 來源:網(wǎng)絡 收藏

          摘要:基于DSP設計了一種采樣頻率可控的。針對對低通濾波器性能的要求,采用CIC和降采樣的方法,實現(xiàn)了一種高效的窄帶低通濾波器。測試結果表明,在采樣頻率為500 kHz時,低通濾波器的通帶截止頻率可達0.5 Hz;當輸入信號幅度為5~150 mV時,系統(tǒng)測試的相對誤差小于0.5%;當輸入信號幅度為1~50μV時,系統(tǒng)測試的相對誤差小于2%;同時系統(tǒng)在1~120 kHz的工作范圍內,具有較好的一致性。
          關鍵詞:;采樣率;積分梳狀濾波器;降采樣

          0 引言
          弱信號檢測一直是測量領域的重點研究問題。鎖相放大器是一種能夠檢測微弱周期信號的精密儀器。它利用相關檢測的方法,能夠測量μV(甚至nV)量級信號的幅度和相位,并且具有極強的抗干擾能力,因而在很多測量領域(如電學、光學、熱學及生物學等)得到了廣泛的應用。早期的鎖相放大器都是基于模擬電路設計的。由于模擬器件在帶寬、溫漂、直流偏置以及器件老化等方面的限制,模擬鎖相放大器在測量精度、測量穩(wěn)定性和抗噪聲能力等方面均受到很大的限制;鎖相放大器通過數(shù)字信號處理器(Digital Signal Processor,DSP),將模擬信號轉換到數(shù)字域進行檢測和處理,具有動態(tài)范圍大,測量誤差小,不受運放溫漂和偏置影響等優(yōu)勢。近年來隨著數(shù)字信號處理器的飛速發(fā)展,模擬鎖相放大器逐漸被數(shù)字鎖相放大器所取代。本文對數(shù)字鎖相放大器的硬件結構和相關算法進行了研究,設計了一種采樣頻率可控的系統(tǒng)結構,并利用積分梳狀濾波器和降采樣的方法實現(xiàn)了高效的窄帶低通濾波器,滿足了系統(tǒng)實時性要求。測試結果表明,該系統(tǒng)能夠達到較高的測試精度。

          1 數(shù)字鎖相放大器的基本原理
          數(shù)字鎖相放大器利用輸入信號與參考信號的相關性、待測信號與噪聲的互不相關性來完成測量。其基本原理如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/186322.htm

          a.jpg


          將輸入信號定義為:
          X(t)=Asin(ωt+φ)+n(t) (1)
          式中:A為輸入信號的幅度;ω是輸入信號的角頻率;φ是輸入信號的相位;n(t)是輸入信號中混入的噪聲(噪聲強度可以遠大于信號強度)。參考信號由兩路相互正交的正弦信號構成。輸入信號和兩路正交的參考信號相乘之后,對應的輸出分別為:
          b.jpg
          c.jpg
          將兩路輸出信號各經過一個理想的低通濾波器后,二倍頻和噪聲成分都會被濾除,此時兩路的輸出分別為:
          d.jpg
          由以上分析可知,數(shù)字鎖相放大器實際上是利用一個低通濾波器,實現(xiàn)了中心頻率為ω的帶通濾波器。低通濾波器的帶寬越窄,相應地,帶通濾波器的帶寬也越窄,濾除噪聲的能力也越強。低通濾波器的截止頻率決定了系統(tǒng)的抗噪聲能力,通帶內波動決定了輸出的穩(wěn)定性。由于系統(tǒng)對線性相位的要求,濾波器需采用FIR型低通濾波器來實現(xiàn)。而采用傳統(tǒng)的單級FIR濾波器來實現(xiàn)窄帶低通濾波器需要很高的階數(shù),運算量較大,難以實時實現(xiàn),并且濾波性能易受濾波器系數(shù)的影響。低通濾波器的性能好壞,直接決定著數(shù)字鎖相放大器濾除噪聲的能力。如何設計和實現(xiàn)高性能的低通濾波,是影響數(shù)字鎖相放大器性能的關鍵。

          2 數(shù)字鎖相放大器的結構設計
          微控制器采用了德州儀器(Texas Instrument,TI)公司的MSP430F149,其主要功能包括系統(tǒng)控制和狀態(tài)檢測。待測的輸入信號經過放大、濾波后進入ADC。其中,ADC的采樣速度決定了系統(tǒng)能夠測試信號的最高頻率。本系統(tǒng)采用了TI公司的AD8329,這是一款16 b的高精度串行模/數(shù)轉換器,最高采樣速率可達1 MSPS。
          為了防止ADC的轉換數(shù)據(jù)丟失,系統(tǒng)必須對采集到的大量數(shù)據(jù)進行實時處理。數(shù)字鎖相放大器的實時性對數(shù)字信號處理器的速度提出了很高的要求。雖然目前市場上主流的定點和浮點DSP器件的數(shù)據(jù)處理速度相比以前有了很大提升,但是它仍然是制約數(shù)字鎖相放大器測量頻率范圍進一步增加的主要原因。為了降低系統(tǒng)對DSP處理速度的要求,提高檢測的最高頻率,一些系統(tǒng)甚至將DSP的部分功能通過外圍電路來實現(xiàn),比如采用中心頻率可控的模擬濾波器來濾除輸入信號的帶外噪聲,利用FIFO結合CPLD來緩沖ADC數(shù)據(jù)等。這些方法雖然減輕了DSP的運算負荷,但是也增加了系統(tǒng)的硬件成本和復雜度。
          本系統(tǒng)以TI公司的TMS320VC5502為核心,設計了一種采樣頻率可控的數(shù)字鎖相放大器,不僅滿足了系統(tǒng)實時性的要求,簡化了系統(tǒng)結構,而且具有較好的準確度和穩(wěn)定性。數(shù)字部分接口示意圖如圖2所示。

          e.jpg


          TMS320VC5502的片上定時器Timer0配置成輸出工作方式,產生頻率恒定的脈沖信號。此脈沖信號作為模/數(shù)轉換器采樣開始的控制信號。采樣頻率可由定時器產生脈沖的頻率來控制;多通道緩沖串口(Multichannel Buffered Serial Port,McBSP)被配置成SPI模式,用于控制命令的發(fā)送和采樣數(shù)據(jù)的接收。ADS8329的轉換結束信號作為DSP的外部中斷。采樣數(shù)據(jù)的接收和存儲、控制命令發(fā)送以及對ADC轉換結束的響應均采用DMA控制器來完成,這樣不但保證了采樣數(shù)據(jù)的完整性,而且DSP可以專注計算而不被外部事務頻繁中斷,極大地提高了DSP的運算效率。
          為了保持采樣數(shù)據(jù)的連續(xù)性,并防止原有數(shù)據(jù)被新數(shù)據(jù)覆蓋,系統(tǒng)在DSP內部開辟了兩塊長為1024×16 b的緩沖區(qū),用于暫時存放ADC的采樣數(shù)據(jù)。兩塊緩沖區(qū)交替存儲和計算,以保證系統(tǒng)的實時性。當ADC的轉換結果向緩沖區(qū)A存放時,系統(tǒng)處理緩沖區(qū)B中的數(shù)據(jù);當轉換結果向緩沖區(qū)B存放時,系統(tǒng)處理緩沖區(qū)A中數(shù)據(jù)。其數(shù)據(jù)流圖如圖3所示。

          f.jpg


          假設系統(tǒng)的采樣率為fs,每塊緩沖區(qū)的長度為N(本系統(tǒng)為1 024×16 b),處理每塊緩沖區(qū)數(shù)據(jù)所需的時間為TCAL。若三者滿足TCAL Nfs,則系統(tǒng)可以實現(xiàn)實時處理。測試證明,本系統(tǒng)最高采樣速率可達640 kHz。

          模擬信號相關文章:什么是模擬信號


          濾波器相關文章:濾波器原理


          濾波器相關文章:濾波器原理


          低通濾波器相關文章:低通濾波器原理


          電源濾波器相關文章:電源濾波器原理


          數(shù)字濾波器相關文章:數(shù)字濾波器原理
          鎖相放大器相關文章:鎖相放大器原理

          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();