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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)和FPGA的掃頻儀設(shè)計

          基于單片機(jī)和FPGA的掃頻儀設(shè)計

          作者: 時間:2010-09-14 來源:網(wǎng)絡(luò) 收藏

          若選取晶振頻率為40 MHz,頻率控制字為24位,相位累加器的位數(shù)為31位,則輸出頻率范圍為0.02 Hz~312 kHz,步進(jìn)頻率為40 MHz/231≈0.02 Hz。
          系統(tǒng)采用高速14-bit電流輸出型D/A轉(zhuǎn)換器DAC904制作DDS掃頻信號源。通過給其20 MHz的時鐘信號以輸出10 Hz~100 kHz的掃頻信號。該器件制作成的PCB板中,很好地考慮了接地,使得輸出信號在頻率為1 MHz可以達(dá)到無明顯失真。DAC904采用內(nèi)部基準(zhǔn)和雙極性接法,輸出信號幅值范圍為0~5 V。其原理圖如圖2所示。

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


          2.2 幅頻特性測試方案
          使用集成真有效值轉(zhuǎn)換器AD637先檢測出信號每個頻率點的有效值,再經(jīng)過A/D采樣將得到的數(shù)據(jù)讀到中進(jìn)行處理即可。該器件外接電路簡單,工作頻帶很寬,與A/D轉(zhuǎn)換器級聯(lián),可以對任何復(fù)雜波形的有效值、平均值、均方值、絕對值進(jìn)行采樣,測量誤差小于±(0.2%讀數(shù)+0.5 mV),可以達(dá)到很高的測量精度。
          2.3 相頻特性測試方案
          采用計數(shù)法實現(xiàn)相位的測量。計數(shù)法的思想是將相位量轉(zhuǎn)化為數(shù)字脈沖量,然后對數(shù)字脈沖進(jìn)行測量而得到相位差。對轉(zhuǎn)換后的數(shù)字脈沖量進(jìn)行異或運算,產(chǎn)生脈寬為T0、周期為T的另一路方波,若高頻計數(shù)時鐘脈沖周期為TCP,則在一個周期T的時間內(nèi)的計數(shù)數(shù)值為:

          式中,φx為相位差的度數(shù)。
          這種方法應(yīng)用比較廣泛,精度較高,電路形式簡單,適合實現(xiàn)。
          實際測量中,當(dāng)兩輸入信號頻率較高且相位差很小時,得到的脈沖很窄,這會造成較大誤差。為了克服上述缺陷,引入等精度測量的思想(如圖3),采用多周期同步計數(shù)法,利用觸發(fā)器產(chǎn)生一個寬度為被測信號fa整數(shù)倍的閘門信號。利用計數(shù)器1測量出閘門信號內(nèi)通過高頻脈沖fm的個數(shù)N1,利用計數(shù)器2測量出相同時間內(nèi)閘門信號、異或信號、高頻脈沖三者相與后的脈沖數(shù)N2。因此,相位差值為△φ=N2/N1x36 0°。測量相位的同時,在內(nèi)部引入一D觸發(fā)器,用一路方波信號控制另一路方波,通過觸發(fā)器輸出的高低以判斷信號相位差范圍是大于180°還是小于180°。



          關(guān)鍵詞: 設(shè)計 FPGA 單片機(jī) 基于

          評論


          相關(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); })();