採用FPGA實現音訊模數轉換器

2022-03-31 18:17:58 字數 2014 閱讀 6003

1 ∑一△adc原理

∑一△adc的核心是∑一△調製器和數字濾波器。∑一△調製原理在半個多世紀前已經提出,但在20世紀90年代才廣泛應用到adc設計中。∑一△adc的模型如圖1所示。

從圖中可以看到,乏一△架構的adc主要由左邊方框內模擬∑一△調製器和右邊的數字濾波器組成。∑-△調製器包含1個積分器、1個adc和1個構成反饋環路的dac。其中積分器用離散時間表示,以方便採用z變換分析。e(n)是ad量化器的量化雜訊。假設量化雜訊是加性雜訊,反饋環路中dac是理想的,其傳輸函式是固定增益。採用線性系統分析方法,先令e(n)=o,考察積分器的差分方程:

由公式(7)可以看出,在z變換域,調製器對訊號只是延遲,而對雜訊進行差分處理。因為差分器具有高通濾波器特性,因此雜訊被高通濾波,調製器對應的時域輸出為:

剩餘的雜訊則由後續的數字濾波器濾除。

2 lvds收發器標準及其原理

lvds是一種低壓低功耗的高速序列差分資料傳輸標準,在高速資料互聯和資料通訊領域得到廣泛的應用,主流的fpga器件都整合了高速的lvds收發器。lvds收發傳輸框圖如圖2所示。

在圖2中,lvds傳送端的4個開關管交叉控制3.5ma電流源在接收端的流向。電流在100ω電阻上建立約350 mv的電壓差,接收器通過比較電壓的極性來判決是邏輯「1」還是邏輯「0」。lvds驅動器是電流型,對電源波動不敏感,功耗很低,1路lvds傳輸功耗為35 ma×350 mv=1.2 mw。由於採用差分傳輸方式,lvds收發器可以很好地消除共模干擾,提高系統電磁相容效能。利用fpga整合的lvds接收器,配合少量外圍器件,即可在fpga內部實現adc。

3 用fpga整合的lvds接收器實現adc

參考第2部分的∑一△架構的adc原理,在fpga內部實現adc的框圖如圖3所示。

在圖3中,虛線框內表示在fpga內部實現。外部僅需要1個1 kω的電阻和1個1 nf的電容作為模擬積分器,輸入訊號和積分器輸出值在lvds接收器進行比較,比較結果被量化成資料位元流,經過暫存器後輸出到cic(cascaded integrated comb)濾波器及其後續的數字濾波模組,同時通過1個fpga引腳作為1位的dac,輸出到外部的積分器。在數字濾波模組裡面,cic濾波器累加量化的位元流並恢復成18位數的量化值,同時通過大倍數的抽取,把資料率降低;ciccomp是15階fir濾波器,用於補償cic濾波器幅頻響應。抽取器是31階fir低通濾波器,降低資料率並進一步濾除帶外的雜訊。整個系統執行於49.152 mhz時鐘下,取樣資料經過cic進行512倍抽取後,資料率降為96 khz,最後經過低通濾波器進行2倍抽取,資料率降為48 khz。用fpga實現adc,包括lvds接收器部分,全部採用veriloghdl語言編寫,實現簡單,可移植性較好。

圖4上半部分波形是輸入的訊號和頻譜,下半部分波形是經過adc取樣後通過dac輸出的波形和頻譜。從圖中可以看到,儘管受限於板載dac的位數,dac後面也沒有抗混疊濾波器,僅將adc的18位量化值高8位輸出,但波形和頻譜完全沒有失真。輸出波形上疊加的高頻雜訊是dac轉換引入的,可以通過濾波器濾除。訊號源產生20 hz~20 khz的音訊訊號,adc輸出的波形和頻譜均沒有失真,fpga在3.3 v的i/o電壓下,adc最大輸入訊號的峰值電壓約o.8 v,輸出訊號snr約為50 db。

結語fpga實現adc的模型,僅需要極少數外圍元器件,核心模組均採用fpga資源實現,明顯降低板上面積,同時邏輯可重配置,具備強大的擴充套件性。通過適當改進和優化,該方法可以應用到語音通訊,溫度、電壓監控,水壓檢測,壓力感測等諸多領域。

數模 模數轉換器

基準電壓 數碼暫存器 n位模擬開關 數碼網路 求和電路 基準電壓 數碼暫存器 n位模擬開關 數碼網路 求和電路 基準電壓 數碼暫存器 n位模擬開關 數碼網路 求和電路 基準電壓 數碼暫存器 n位模擬開關 數碼網路 求和電路 由於數字電子技術的迅速發展,使其在數字測量儀表 數字通訊等方面得到廣泛應用,...

ADS7844E模數轉換器

ads7844是一款8通道,12位取樣模數轉換器 adc 具有同步序列介面。在200khz吞吐速率和 5v電源下,典型功耗為3mw。參考電壓 vref 可在100mv和vcc之間變化,提供0v至vref的相應輸入電壓範圍。該器件具有關斷模式,可將功耗降至1 w以下。ads7844保證低至2.7v工作...

DSP8335 模數轉換器ADC

adc模組一共分為16個取樣通道。adc模組框圖如下圖所示 雖然adc模組具有多個輸入通道,但他內部只有乙個轉換器,也就是說同一時刻只能對一路輸入訊號進行轉換,當有多路訊號需要轉換時,adc模組通過前端模擬多路復用器進行控制,使得同一時刻只允許一路訊號輸入至adc轉換器中。如何才能讓adc按照使用者...