資源描述:
《采用等精度測頻原理的頻率計的設計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、采用等精度測頻原理的頻率計的設計一.設計要求1.設計一個用等精度測頻原理的頻率計。2.頻率測量測量范圍1~9999;3.用4位帶小數(shù)點數(shù)碼管顯示其頻率;二.測頻原理及誤差分析1.常用的直接測頻方法主要有測頻法和測周期法兩種。2.測頻法就是在確定的閘門時間Tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖個數(shù))Nx,則被測信號的頻率為:fx=Nx/Tw。3.測周期法需要有標準信號的頻率fs,在待測信號的一個周期Tx內(nèi),記錄標準頻率的周期數(shù)Ns,則被測信號的頻率為:fx=fs/Ns。4.這兩種方法的計數(shù)值會產(chǎn)生±1個字誤差,并且測試精度與計數(shù)器中記錄的數(shù)值Nx或Ns有關(guān)。為了保證測試精度,一般對于低頻信號
2、采用測周期法;對于高頻信號采用測頻法,因此測試時很不方便,所以人門提出等精度測頻方法。5.等精度測頻方法是在直接測頻方法的基礎上發(fā)展起來的。6.它的閘門時間不是固定的值,而是被測信號周期的整數(shù)倍,即與被測信號同步,因此,測除了對被測信號計數(shù)所產(chǎn)生±1個字誤差,并且達到了在整個測試頻段的等精度測量。等精度測頻原理波形圖7.在測量過程中,有兩個計數(shù)器分別對標準信號和被測信號同時計數(shù)。8.首先給出閘門開啟信號(預置閘門上升沿),此時計數(shù)器并不開始計數(shù),而是等到被測信號的上升沿到來時,計數(shù)器才真正開始計數(shù)。然后預置閘門關(guān)閉信號(下降沿)到時,計數(shù)器并不立即停止計數(shù),而是等到被測信號的上升沿到來時才結(jié)
3、束計數(shù),完成一次測量過程。可以看出,實際閘門時間τ與預置閘門時間τ1并不嚴格相等,但差值不超過被測信號的一個周期9.設在一次實際閘門時間τ中計數(shù)器對被測信號的計數(shù)值為Nx,對標準信號的計數(shù)值為Ns。10.標準信號的頻率為fs,則被測信號的頻率為11.由式(1)可知,若忽略標頻fs的誤差,則等精度測頻可能產(chǎn)生的相對誤差為12.δ=(
4、fxc-fx
5、/fxe)×100%(2)13.其中fxe為被測信號頻率的準確值。14.δ=
6、ΔNs
7、/Ns≤1/Ns=1/(τ·fs)n由上式可以看出,測量頻率的相對誤差與被測信號頻率的大小無關(guān),僅與閘門時間和標準信號頻率有關(guān),即實現(xiàn)了整個測試頻段的等精度測量。n
8、閘門時間越長,標準頻率越高,測頻的相對誤差就越小。n標準頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度。等精度測頻的實現(xiàn)方法可簡化為下圖所示的框圖三.設計步驟nCNT1和CNT2是兩個可控計數(shù)器,標準頻率(fs)信號從CNT1的時鐘輸入端CLK輸入;經(jīng)整形后的被測信號(fx)從CNT2的時鐘輸入端CLK輸入。n每個計數(shù)器中的CEN輸入端為時鐘使能端控制時鐘輸入。n當預置門信號為高電平(預置時間開始)時,被測信號的上升沿通過D觸發(fā)器的輸出端,同時啟動兩個計數(shù)器計數(shù);同樣,當預置門信號為低電平(預置時間結(jié)束)時,被測
9、信號的上升沿通過D觸發(fā)器的輸出端,同時關(guān)閉計數(shù)器的計數(shù)。系統(tǒng)組成n系統(tǒng)由分頻器、計數(shù)器1、計數(shù)器2、D觸發(fā)器等組成。n分頻器出來的信號作為等精度測頻原理的預置閘門信號。n其中D觸發(fā)器,計數(shù)器2和計數(shù)器1的作用與前2頁圖中所示相同。n運算模塊就是完成公式(1)的運算。n復位主要對分頻、計數(shù)器1和計數(shù)器2進行清零操作。采用等精度測頻原理的頻率計的程序與仿真--文件名:PLJ.vhd。--功能:4位顯示的等精度頻率計。--最后修改日期:2004.4.14。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;us
10、eieee.std_logic_arith.all;entityPLJisport(clk:instd_logic;--基準時鐘(10KHz)tclk:instd_logic;--被測信號start:instd_logic;--復位信號alarm0,alarm1:outstd_logic;--超量程,欠量程顯示dian:outstd_logic_vector(3downto0);--小數(shù)點data1:outintegerrange0to9999);--頻率數(shù)據(jù)endPLJ;architecturebehavofPLJissignalq:integerrange0to9999;--預置閘門分頻
11、系數(shù)signalq1:integerrange0to10000;--被測信號計數(shù)器signalq2:integerrange0to20000;--基準信號計數(shù)器signalen,en1:std_logic;--預置閘門,實際閘門signalqq,qqq:integerrange0to200000000;--運算器signaldata0:integerrange0to9999;--頻率數(shù)據(jù)中間信號beginpr