天天看點

FPGA實作脈沖濾波的幾種方法

     在PLC和伺服系統中,經常需要對脈沖進行計數以控制電機運作,對于幹淨的脈沖信号,使用FPGA采集邊沿,非常可靠且易于實作,隻需要對需采集的信号延遲一拍,再把延遲的信号與原信号做下處理就能得到上升沿或下降沿,下降沿通過取反的原信号與延遲信号相與獲得,上升沿通過原信号與取反的延遲信号獲得;

  而在實際應用中,PLC或伺服系統的應用環境通常都是非常複雜的,各種電磁幹擾,不可能有幹淨的脈沖信号,又要保證脈沖個數準确,就必須對信号進行濾波,這裡主要介紹三種濾波方法,暫且叫脈寬濾波,計數濾波及延時濾波。

1、脈寬濾波

         對需要采集的信号使用系統時鐘打一拍,一般系統時鐘頻率盡量高,   然後和輸入的信号做異或,當異或值為高電平時,置計計數器值為零,否則計數器自加,計數器值記到一定值,視為信号穩定,把目前值作為輸出值,計數值沒達到定值時,輸出維持之前的輸出值;

2、計數濾波

         已知脈沖頻率範圍,在一定計數範圍内(計數值最好為奇數值),對需要采集的信号分别統計高電平和低電平的個數,當高電平的個數大于低電平的個數,輸出高電平,反之輸出低電平,此方法對于高斯噪聲污染比較好使,假設幹擾噪聲總體均值趨向于零,對于脈沖頻率越低的信号,統計效果會越好;

3、延時濾波

         對輸入脈沖信号進行打拍,一般至少打兩拍,使用幾拍後的信号作為最終輸出,這種方法能有效濾除系統頻率以下的噪聲信号;