過零檢測法也就是比較器的作用,可以將一定頻率的正弦波轉換為方波或脈衝波。這在測頻率等地方是必要的,因為fpga只認沿,而不認識正弦波。
演算法分為兩部分,零點的確定和脈衝波的產生。
為什麼需要確定零點。我們知道,一般的ad是比如0~5v轉為0~255之類的,或者可以-2~2v輸入,內部會有轉化的電路。所以一般的零點不會是0,而更可能是125或者126。不過為了更加精確,真正的零點應該是(max+min)/2。採集最大值和最小值的程式很常見,就是來乙個暫存器不斷更新,一段時間後把值賦給max或min。
例如:if(aft>maxtmp) then maxtmp<=aft;endif;
if(aft then mintmp<=aft;endif;
而脈衝波的產生則是比較前後兩個資料點,如果前乙個小於零點,後乙個大於零點,則產生乙個過零脈衝。
這裡有個技巧,以前我們檢測前後兩個值的方法是用拼接運算子。但ad的輸出一般是多位的,用拼接運算子不方便,所以我們可以借用非阻塞賦值的特點:
aft<=sin_in;
prev<=aft;
這樣一來,aft就是後乙個值,prev是前乙個值。事實上,這種方法應當是通法。接下來就簡單了:
if(prev<=zero) and (aft>=zero) then
pulse<='1';
else pulse<='0';
endif;
FPGA實現Sobel邊緣檢測演算法
傳統sobel演算法實現主要分為兩步 一是影象視窗畫素的生成,二是梯度的計算。演算法的具體實現步驟可參考這裡主要分享一下本人遇到的一點小問題 1 按照參考例程,平方根器的輸入radical會一直是藍線 高阻態 解決辦法 將pa xpa x pa ypa y單獨拿出來計算並賦值給中間訊號i radic...
過零檢測電路
源 常見的過零檢測電路 過零檢測電路原理及注意事項 d5 d6電壓取自變壓器次級a b兩點 14v 經過d5 d6全波整流,形成脈動直流波形,電阻分壓後,再經過電容濾波,濾去高頻成分,形成c點電壓波形 當c點電壓大於0.7v時,三極體q2導通,在三極體集電極形成低電平 當c點電壓低於0.7v時,三極...
VIBE檢測演算法
一 vibe 獲取目標 其他演算法處理 最終目標 優點 記憶體占用少,處理速度快,計算量小,檢測效果好 無引數法 可直接應用在產品中,軟硬體相容性好 效能優於混合高斯,引數化方法,sacon等 背景模型及時初始化 具有較好的抗噪能力。缺點 ghost區域 挑戰 必須適應環境的變化 比如光照的變化造成...