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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 一種用于FPGA的改進算法弱化了方波重影

          一種用于FPGA的改進算法弱化了方波重影

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

            0 引言

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

            DDS(Direct Digital Frequency Synthesis)頻率合成器能夠很方便地輸出任意波形[1],方波作為最常用波形之一,具有其特殊性。但輸出的方波存在明顯的重影現(xiàn)象直接影響了方波的質(zhì)量。

            1 方波重影出現(xiàn)的原因

            假設系統(tǒng)時鐘頻率為200 MHz,以輸出3 MHz方波為例,從模擬示波器觀察到的結(jié)果如圖1所示。

            

            圖1中存在明顯的雙邊沿現(xiàn)象,且兩條上升沿的間距為5 ns,剛好等于系統(tǒng)時鐘的周期。這種現(xiàn)象可稱為方波重影。

            根據(jù)DDS的工作原理可知,相位序列具有周期性[2].

            在相位序列的一個周期內(nèi),相位累加器會溢出若干次,并且每次溢出后的殘留量都不一樣。當殘留量足夠大時,再次發(fā)生溢出所需的累加次數(shù)會減少一次。累加次數(shù)的減少,意味著方波的周期變小。不同周期的方波疊加在一起,便出現(xiàn)重影現(xiàn)象。

            使用Matlab模擬DDS生成方波的過程,可以得到更直觀的認識,如圖2所示。

            

            按照圖2中的參數(shù)設置,方波的周期等于:

            

            從圖2可以看出,為了輸出周期為3.2Tc 的方波,在相位序列的一個周期內(nèi),DDS 頻率合成器的實際輸出為:一個周期為4Tc 且占空比為50%的方波,兩個周期為3Tc 且占空比為75%的方波,兩個周期為3Tc 且占空比為25%的方波。從平均的意義上看,剛好組成周期為3.2Tc 且占空比為50%的方波。因此,DDS 頻率合成器輸出的方波不僅周期在波動,而且占空比也發(fā)生波動。

            如果將DDS 頻率合成器看成分頻器,在滿足奈奎斯特采樣定理[4]的條件下,可以得出如下結(jié)論:輸出正弦波等連續(xù)信號時,DDS可以實現(xiàn)任意比例的分頻;輸出方波等存在跳變沿的信號時,這類信號的周期只能是系統(tǒng)時鐘周期的整數(shù)倍,否則出現(xiàn)重影。

            2 方波改進算法的研究與實現(xiàn)

            為了解決方波重影問題,可從時域的角度分析。將若干個不同周期的方波疊加到一起,可得示意圖如圖3所示。

            

            圖3 中,使a 點和d 點向下抖動,使b 點和c 點向上抖動,多次疊加后可有效弱化方波重影,甚至徹底消除。但是,如何準確地判斷a、b、c、d 四個點,成為實現(xiàn)這一方法的最大障礙。

            仔細觀察圖3和圖2,引入時鐘節(jié)拍的概念,便能找到依據(jù)判斷a、b、c、d四個點。首先,定義方波的周期和上升沿時刻,以50%占空比為例,這兩個數(shù)值可分別表示為:

            

            其中,ceil表示朝正無窮方向取整,floor表示朝負無窮方向取整,均為Matlab運算符[5].

            當系統(tǒng)時鐘的頻率為200 MHz時,以輸出3 MHz方波為例,計算結(jié)果如表1所示。

            

            類似于圖3,3 MHz方波的示意圖如圖4所示。

            

            從圖4 可以看出,a 點和b 點發(fā)生在時鐘節(jié)拍為33的位置,c點和d點發(fā)生在時鐘節(jié)拍為65的位置。當出現(xiàn)c點時,意味著本次方波的周期較小,下一個時鐘節(jié)根據(jù)圖3 的規(guī)律,在時鐘節(jié)拍為grl 和gda 的位置,利用原始方波信號的高低電平信息,就能得到a、b、c、d四個點。假設DAC的位數(shù)為14位,方波改進算法的實現(xiàn)過程可分為以下三個步驟:

            第一步,定義一個計數(shù)器,并以相位累加器的進位輸出信號作為清零信號,即相位累加器每溢出一次,該計數(shù)器就清零一次。因此,該計數(shù)器的計數(shù)值就表示圖4中的時鐘節(jié)拍。

            第二步,定義一個狀態(tài)機,假設計數(shù)器的計數(shù)值為num,簡化后的狀態(tài)轉(zhuǎn)移圖如圖5所示。

            

            狀態(tài)RISE標記的時鐘節(jié)拍是grl,處于此狀態(tài)時,如果原始方波信號為高電平,便得到a點;如果原始方波信號為低電平,便得到b點。狀態(tài)DOWN標記的時鐘節(jié)拍是gda,處于此狀態(tài)時,如果原始方波信號為低電平,便得到c點;如果原始方波信號為高電平,便得到d點。

            第三步,定義一個隨機變量random,random的變化范圍是0~2 048,可通過11位m序列實現(xiàn)之。使用verilog語言的位拼接運算符[6],在a 點和d 點將送給DAC 的數(shù)據(jù)定義為10 240 加random,即“{3'b101,random}”;在b 點和c 點將送給DAC 的數(shù)據(jù)定義為4 096 加random,即“{3'b010,random}”.

            3 測試與總結(jié)

            使用新的方波算法后,可得測試結(jié)果如圖6所示。

            

            對比圖6和圖1可以看出,方波重影的寬度從5 ns縮短至3 ns,并且上升沿呈實心狀,不再由兩條邊沿組成。

            另一方面,圖6和圖1中,方波的上升時間均為15 ns左右,這說明方波改進算法并沒有導致上升時間的增加。



          關(guān)鍵詞: FPGA改進算

          評論


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