頻率量測的方法

1.關於頻率量測

在MCU的應用中,會遇到各式各樣的信號輸入,其中一種就是頻率訊號的輸入,然而在量測頻率之前還是得先知道頻率的定義為何?

頻率的定義解釋為,在N個時間內,T週期所重複發生的次數,頻率的定義為f=\frac1T

其他的解釋就參考偉大的維基百科吧

2.頻率量測的辦法

如果已經清楚明白頻率的定義,接著如果要量測一個未知x的頻率時,只看我們可以用什麼方法來進行量測,常見的量測方法有如下兩種,但兩種方式均與counter有關。

a.使用counter計數一秒,檢查有N個count輸入而count數即為頻率

這種方式比較適合高頻的訊號量測,量測的方式則是使用頻率的定義,例如我們一般所說的60Hz,即是代表正弦波一秒鐘變化60次,則週期為T=\frac1F, T=16.67ms,故只要固定count捕獲一秒鐘內所得到的count數就可以得到輸入頻率之值。

 

另外因MCU的Counter通常可能只為8bit、16bit了不起就32bit,所能乘載的count數有限,故如遇到頻率太高時,通常需要做除頻的處理,再由得到的count數做還原。(外面除多少,得到的count數就乘多少)。

measureFreq1Hz

不過當使用1Hz做Count時,待測頻率小於1Hz時,就會Count不到任何值,此時只需要把1Hz時間拉長,

例如5Hz,而計算時只要 = 捕獲Count數/5Hz則等於待測頻率。

20141126修正:

當使用1Hz(1秒)的時間做Count時,如果待測頻率小於1Hz時,就會得不到任何的count值,此時需要把count的時間拉長,例如改用0.2Hz(5秒)做量測,

則得到的count計算時 = 捕獲Count數/5秒則等於待測頻率。

b.使用週期的量測方法,以固定基頻量測一個週期長度

此方法適用於低頻量測,且誤差容易控制,在已知輸入頻率範圍時(且為低頻時),該方法非常適用,所謂週期量測實質上是利用基頻與輸入訊號重疊的概念,利用週期的變化(HI>LOW,LOW>HI)觸發counter工作,使基頻訊號輸入counter,而得到的count數量則是週期變化時間。

freqMeasure

週期量測時,應注意兩點

a.當待測頻率過低時,Count變數乘載的問題。

因為當待測頻率越低,代表時間越長,此時累積的Count數會越多,解決的辦法就是降低量測基頻頻率即可。

b.當待測頻率過高時,可能會無法Count。

當待測頻率高於量測基頻時,會無法量測Count,沒有那種拿10Kg的磅秤量100Kg的道理,這時候只能提高量測基頻的頻率,如無法提高,則適用第一種以1Hz方式Count。

發表迴響