想利用M16單片機檢測30-800HZ的波形的波峰幅值和波峰個數 并用數碼管顯示 求演算法 及編程主要思路
uj5u.com熱心網友回復:
AD采樣--->快速傅里葉變換--->結果;stm32是有官方傅里葉變換庫的,實作會容易些,速度也快。其他單片機沒有庫的話,自己用C實作傅里葉演算法吧。另外,AD采樣速度也要跟上,奈奎斯特采樣定理!uj5u.com熱心網友回復:
是哪種波形?uj5u.com熱心網友回復:
正弦波。。。uj5u.com熱心網友回復:
將信號限幅或衰減,并確定放大倍數,然后經一個整流橋,使用3K以上的采樣頻率采樣到記憶體,然后求過0點的個數,及最大值
uj5u.com熱心網友回復:
adc加fft,完美解決,不明白參考我寫的博客,不需要明白演算法。uj5u.com熱心網友回復:
把信號連到兩個輸入點,一個連計數器,上升沿和下降沿都計數,結果是波峰和波谷的個數,除以2是頻率。再一個連ADC,與計數器配合,上升沿到下降沿之間求這個周期的最大值,下降沿到上升沿之間求這個周期最小值,兩都的差是本周期的幅值。
uj5u.com熱心網友回復:
兩者的差是本周期的幅值,計數是自動完成的,幅值就是求最大值和最小值。So easy!uj5u.com熱心網友回復:
直接用模擬輸入埠的比較器功能,計數就可以了,這么慢的信號,不必要用高速的運算分析。個人建議
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/100104.html
標籤:單片機/工控
上一篇:STM32F103 USART發送資料SR暫存器中TXE和TC標志位都不置位
下一篇:pyqt5
