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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 等效時間采樣原理及基于FPGA的實現(xiàn)

          等效時間采樣原理及基于FPGA的實現(xiàn)

          作者: 時間:2016-10-29 來源:網(wǎng)絡 收藏

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

          在現(xiàn)代電子測量、通訊系統(tǒng)以及生物醫(yī)學等領域,經(jīng)常涉及對進行數(shù)據(jù)采集和存儲,以便計算機進一步進行數(shù)據(jù)處理。為了對高速模擬信號進行不失真采集,根據(jù)奈奎斯特定理,采樣頻率必須為信號頻率的2倍以上,但在電阻抗多頻及參數(shù)成像技術中正交序列數(shù)字解調(diào)法的抗噪性能對信號每周期的采樣點數(shù)決定,采樣點數(shù)越多,抗噪性能越高。當采樣信號頻率很高時,為了在被采樣信號的一周期內(nèi)多采樣,就需要提高采樣時鐘的頻率,但是由于系統(tǒng)的ADC器件時鐘速率并不能達到要求的高頻速率或者存儲處理速度等不能滿足要求因此我們可以采用低速ADC器件通過來對進行數(shù)據(jù)采集從而使系統(tǒng)易于實現(xiàn)。

          1原理

          技術是把周期性或準周期性的高頻、快速信號變換為低頻的慢速信號。在電路上只對取樣前的電路具有高頻的要求,大大降低采樣變換后的信號處理、顯示電路對速度的要求,簡化了整個系統(tǒng)的設計難度。等效時間采樣分為順序采樣(sequential equivalent sampling)、隨機采樣(random equivalent sampling)以及結合這兩種方式的混合等效采樣(compound equivalent sampling)。在文獻[3]、[4]中分別介紹了兩種硬件實現(xiàn)的等效時間采樣中的順序采樣。

          下面我將介紹等效時間采樣中的混合時間采樣,對于周期性信號的等效時間采樣如圖1(a)所示。

          在第一周期中的橫軸(時間)的第2與第6處的時鐘上升沿對模擬信號進行采樣,圖中的箭頭表示采樣時刻。在一個周期中可以采集兩個點,緊接著在第二個周期橫軸的第11與第15處的時鐘上升沿對模擬信號進行采樣。為了方便觀察在此將第一至第五周期的波形縱向排列。可以看到第二周期比第一周的采樣點距離各自周期起始點的時間晚了一個時鐘周期。第三周期比第二周的采樣點距離第三周期起始點的時間晚了一個時鐘周期。在第四周期進行采樣時我們可以發(fā)現(xiàn)第二個采樣點已經(jīng)進入第五周期。如果我們在第五周期周試圖繼續(xù)用以上方式進行采樣即第五周期比第四周的采樣點距離起始點的時間晚一個時鐘周期,那么我們會發(fā)現(xiàn)在第五周期的采樣起始點采樣到的值重復了第一周期采樣到的數(shù)值。所以此時我們可以終止采樣那么我們就得到了如圖1中的第6個波形示意圖所表示的在一個周期的正弦波形中采到的8個數(shù)據(jù)點。

          在文獻[5]中給出了等效時間采樣中每個周期可以采集多個點時的理論依據(jù),在文獻[6]中給出了等效時間采樣中每個周期可以采集單個點時的理論依據(jù)。

          我們通過將高頻時鐘進行分頻已達到或者接近滿足處理速度時鐘要求。在圖1(b)中幅度最小的時鐘信號為采樣時鐘。由圖1(b)可以很清楚的看到分頻后的時鐘波形,分頻后的時鐘波形在時鐘的上升沿對信號進行采樣,那么就會得到如圖1(a)中所表示的等效時間采樣。

          圖1等效時間采樣示意圖

          2基于的等效時間采樣實現(xiàn)

          2.1系統(tǒng)硬件實現(xiàn)框圖

          系統(tǒng)的總體框圖如圖2,控制的等效采樣時鐘連接到ADC器件的時鐘部分,ADC器件在時鐘的控制下對進行采樣,采集到的數(shù)據(jù)傳送到 中的FIFO,F(xiàn)PGA再將FPGA中FIFO的數(shù)據(jù)傳遞到USB中的FIFO,然后USB將USB中FIFO數(shù)據(jù)推送到計算機,計算機對接收到的數(shù)據(jù)進行重構處理。對于信號周期的獲取,在電阻抗多頻及參數(shù)成像技術中采集信號的周期是由發(fā)送信號的周期決定,而對于其他復雜周期信號的周期獲得可以通過所采用的方法獲得。

          圖2系統(tǒng)方案框圖

          2.2等效時間采樣時鐘的程序?qū)崿F(xiàn)

          圖3展示了基于FPGA生成的等效時間采樣模塊的輸入端口與輸出端口。其中CLK表示高頻時鐘的輸入,RESET表示的是復位輸入端,F(xiàn)REN_CON表示的是分頻控制輸入用于控制高頻時鐘的分頻數(shù),SANM_CONT表示的是模擬信號的周期包含多少個高頻時鐘信號的波形,CLK_ADC_OUT表示的是輸出時鐘端口,此端口連接到模數(shù)轉(zhuǎn)換器件(ADC)的時鐘輸入端口。

          圖3等效時間采樣模塊圖

          以下是實現(xiàn)等效時間采樣所需時鐘的代碼:

          SIGNAL SAMP_CONTS:STD_LOGIC_VECTOR(11

          DOWNTO 0):=(OTHERS=>'0');

          SIGNAL ADC_CLK_BANK:STD_LOGIC_VECTOR(11

          DOWNTO 0):=(OTHERS=>'0');

          SIGNAL CLK_CNT :INTEGER RANGE 0 TO 5000:=0;

          SIGNAL CLK_TANK:STD_LOGIC:='0';

          SIGNAL EN :STD_LOGIC:='1';

          BEGIN

          PROCESS(CLK,RESET)

          BEGIN

          IF RESET='1' THEN EN'0');

          SAMP_CONTS'0');

          EN

          3波形仿真

          圖4中的波形仿真是以模擬信號的一周期等于8個CLK時鐘周期,CLK_ADC_OUT是對CLK進行4分頻且分頻后的時鐘占空比為50%為假設的。1號箭頭指向的時鐘上升沿標志著第一周期結束,上升沿之后進入第二周期。同理,2號箭頭所指時鐘的上升沿標志著第二周期的結束,上升沿之后標志著進入第三周期。

          圖4波形仿真

          在第一個周期中從CLK的第一個上升沿開始計時同時對CLK進行分頻可以得到CLK_ADC_OUT時鐘信號,在第一周期中在CLK的第二個上升沿 CLK_ADC_OUT電平翻轉(zhuǎn)(存在延時),在第二周期中在第三個上升沿CLK_ADC_OUT電平翻轉(zhuǎn),在第三個周期中在CLK的第四個上升沿 CLK_ADC_OUT電平翻轉(zhuǎn)??梢钥闯霾ㄐ畏抡鎴D是對圖1(a)、(b)兩圖表達時鐘的實現(xiàn)。在這里應該注意到,在第一周期中雖然也有8個CLK的上升沿,但是并沒有表示出如1號箭頭所指CLK時鐘上升沿之后與第二周期第一個CLK時鐘上升沿之間的波形。

          4結論

          本文介紹了等效時間采樣的基本原理、系統(tǒng)實現(xiàn)的具體方案。等效時間采樣技術實現(xiàn)了利用低速的ADC器件對寬帶模擬信號的采集,降低了系統(tǒng)對ADC器件的要求以及系統(tǒng)實現(xiàn)的復雜度。本文介紹的等效時間采樣技術由于使用了FPGA采樣技術,使得在被采樣信號的一個周期中相較于一個周期僅能采集一個點的順序等效時間采樣有很大的提高,并且可以控制被采集信號一個周期中的采集點數(shù)從而可以根據(jù)后續(xù)器件處理速度實現(xiàn)變頻控制采樣。通過FPGA實現(xiàn)等效采樣時間,降低了系統(tǒng)實現(xiàn)的復雜度,同時可以十分方便的對代碼進行修改使系統(tǒng)的調(diào)試更加簡便。



          評論


          相關推薦

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