一般來說,頻率測量的方法有:
1,計頻法:所謂頻率,就是單位時間內信號周期變化的次數。如果以1s為單位,測出此時間區間內的脈沖個數就是頻率。這樣的精度并不高,如果把單位時間放大到10s、100s等,這樣精度會提高很多。
2,計時法:測量一個脈沖來的時間和結束的時間,二者之差便是信號周期,取其倒數便是頻率。但是如果待測頻率很高,脈沖周期非常短,這就要求很高的計時器來測量這微小的時間差,所以這種方法測量高頻往往難以滿足精度要求。但是測量10個,100個……脈沖周期就會很容易一些,精確一些。
單獨使用某一種,雖然加大測量范圍,可以提高精度,但是還是有所缺陷。如果使用混合方法來實現,可以計算出高精度的頻率。
計頻法:設置時間閥值,對該時間內采集脈沖計數,計數為N;計時法,精確測N個脈沖所用時間,計時為T。則計時計頻測出頻率為F=N/T.
以上就是實現原理。
實現方法:
1,一般使用MCU自帶的捕獲功能來捕獲上升沿或下降沿。啟動中斷來判斷。假如使用下降沿,來一個下降沿就在中斷中加一個數,這樣就記錄了脈沖數。并且讀取第一個脈沖來的時候的時間,即你時間閥值內的第一個脈沖時間。之后來一個脈沖讀取一次時間。這樣兩個時間差,就是所記錄脈沖個數的時間差。
2,使用定時器功能,周期性的定時中斷。每個周期計算一次頻率,即根據統計的脈沖數和時間來計算。這樣每個周期就計算出了一個頻率值。
這樣計算的頻率值可能存在誤差,比如突然又干擾等因數造成頻率不穩定。這樣就要多次測量,采取濾波方法來去除干擾。
濾波方法很多,根據具體應用選擇合適濾波方法,如限幅濾波法,算術平均濾波法、中位值濾波法、滑動平均濾波法、一階滯后濾波法、消抖濾波法等等。
在AS7.0的工程中增加如下圖的ASF庫,即可實現,
-
頻率
+關注
關注
4文章
1494瀏覽量
59212
發布評論請先 登錄
相關推薦
評論