欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 651|回復: 19
收起左側

關于ADC濾波算法討論

  [復制鏈接]
ID:401564 發表于 2025-6-26 00:02 | 顯示全部樓層 |閱讀模式
最近在做一個USB充電顯示電流和電壓測試儀,主要是顯示輸入電壓和充電電流的ADC全部采用算術平均算法,怎么說呢,反正能用,也正常,但有點強迫癥
電壓總是會5.06v,5.05V,5.03V之類的之間跳動,電流總是會在506mA,500mA,503mA之類的來回跳動,雖然知道這是正常現象,但總感覺不爽
請問各位有沒有一個比較好的算法,就是能在精確度,顯示穩定度之間相對均衡的算法,是否可以分享一下,不要代碼,我自己擼就行,就是單純的討論一下算法問題
回復

使用道具 舉報

ID:807591 發表于 2025-6-26 08:42 | 顯示全部樓層
綜藝節目,去掉一個最高分,一個最低分。。。當然還可以統計相同的數值出現最多的,第二多的。。。。然后看著辦吧
回復

使用道具 舉報

ID:74687 發表于 2025-6-26 09:26 | 顯示全部樓層
換個測量工具,用TI的INA3221測量
回復

使用道具 舉報

ID:69038 發表于 2025-6-26 09:41 | 顯示全部樓層
我也曾做過類同的,采用的的“算法”就是采樣20次,去掉2個高值、2個低值,余下平均即可。

記得有個大佬寫的一本書《匠人手記》,其中有介紹10多種濾波算法,你可以找來借鑒一下。
回復

使用道具 舉報

ID:996773 發表于 2025-6-26 09:56 | 顯示全部樓層
別人怎么做我不知道,我會在單片機ad那個腳加個小電容,隔半秒或一秒讀取一次再去顯示
回復

使用道具 舉報

ID:1121801 發表于 2025-6-26 09:57 | 顯示全部樓層
不知道,聽說算法都很燒腦,大學學過的什么傅立葉算法等等我現在看著就感覺腦子里有個攪拌機,攪得一團混亂
回復

使用道具 舉報

ID:74687 發表于 2025-6-26 10:52 | 顯示全部樓層
用軟件的方法基本是在做無用功
回復

使用道具 舉報

ID:108361 發表于 2025-6-26 10:55 | 顯示全部樓層
可以試試一階低通濾波,但是影響響應速度,想要響應和收斂都有比較好的表現,還是卡爾曼濾波
回復

使用道具 舉報

ID:108361 發表于 2025-6-26 10:56 | 顯示全部樓層
hi等你 發表于 2025-6-26 09:56
別人怎么做我不知道,我會在單片機ad那個腳加個小電容,隔半秒或一秒讀取一次再去顯示

你這個,只適合低速變化的信號,對于需要高速實時采樣比如無人機,就不適用了
回復

使用道具 舉報

ID:155507 發表于 2025-6-26 11:04 | 顯示全部樓層
注意接地,注意VREF電壓和噪聲,有獨立AVCC的注意AVCC電壓和噪聲
10位的ADC和12位的ADC的不同。5V下10位的ADC分辨率一位是4.88mV,12位是1.22mV,有可能你的電路有大于1mV小于4mV的紋波或者噪聲,導致10位的結果不跳動而12位的跳動。
可以觀察一下ADC數值跳動的范圍,看看峰峰值大概多大。
看一下只采集一個通道數據跳不跳,也有可能是通道切換的時候采樣保持電容串擾了。
增加 ADC 的采樣時間,轉換時間是固定的 12個 ADC 時鐘
先檢查自己的硬件,STC的ADC本身是很小跳動的,你有大跳動,檢查你的電源紋波、參考電壓紋波、輸入信號紋波。12位ADC、2.5V參考,分辨率是0.61mV,你示波器看看你的電路上述參數的紋波,就會明白為什么跳動。
使用1/16 IIR濾波: v= ((v << 4) - v + v_new) >> 4;
回復

使用道具 舉報

ID:1155465 發表于 2025-6-27 14:12 | 顯示全部樓層
angmall 發表于 2025-6-26 11:04
注意接地,注意VREF電壓和噪聲,有獨立AVCC的注意AVCC電壓和噪聲
10位的ADC和12位的ADC的不同。5V下10位的 ...

你好,可以問下1/16 IIR濾波: v= ((v << 4) - v + v_new) >> 4,具體是怎么得到的?
回復

使用道具 舉報

ID:283954 發表于 2025-6-27 23:36 | 顯示全部樓層
采用大于還是小于來平滑,大于就加一點,小于就小一點,一次加減多少自己決定。
回復

使用道具 舉報

ID:281828 發表于 2025-6-28 10:47 | 顯示全部樓層
對于單片機ADC的各種濾波算法在AI軟件中提問可以獲得很多資料,個人感覺ADC采集端口串聯1K電阻后加104電容濾波的方法挺有效的,建議樓主試試看。
回復

使用道具 舉報

ID:1034262 發表于 2025-6-28 18:00 | 顯示全部樓層
使用一階數字低通濾波,可以極大抑制波動、
回復

使用道具 舉報

ID:56665 發表于 2025-6-28 19:54 | 顯示全部樓層
chfmx 發表于 2025-6-27 14:12
你好,可以問下1/16 IIR濾波: v= ((v > 4,具體是怎么得到的?

將變量v左移 4 位(相當于乘以 16),然后減去自身v,再加上新值v_new,最后將結果右移 4 位(相當于除以 16),并將最終結果重新賦值給v 。例如,假設v初始值為 5,v_new為 3,v左移 4 位變為 80,80 減去 5 得 75,75 加上 3 為 78,78 右移 4 位約為 4.875,取整后v最終變為 4 。
回復

使用道具 舉報

ID:343102 發表于 2025-6-28 22:01 | 顯示全部樓層
我以前做adc的時候,也遇到過adc輸出結果變化較大的情況。上網查了一下可能與輸入阻抗不匹配有關,于是減小信號輸入端電阻,輸入端增加濾波電容,再經8次算術平均后就能得到較穩定的輸出結果。
回復

使用道具 舉報

ID:146782 發表于 2025-6-29 21:56 | 顯示全部樓層
取一定次數采集,去掉最高和最低,其余的取平均值
回復

使用道具 舉報

ID:777834 發表于 2025-6-30 18:31 來自觸屏版 | 顯示全部樓層
同問,我用電池供電電壓也跳來跳去
回復

使用道具 舉報

ID:844772 發表于 2025-7-1 08:39 | 顯示全部樓層
算數平均有好多種算法,可以用加權平均或移動平均等等
回復

使用道具 舉報

ID:1137639 發表于 2025-7-1 10:02 | 顯示全部樓層
注意接地,注意VREF電壓和噪聲,有獨立AVCC的注意AVCC電壓和噪聲 10位的ADC和12位的ADC的不同。5V下10位的ADC分辨率一位是4.88mV,12位是1.22mV,有可能你的電路有大于1mV小于4mV的紋波或者噪聲,導致10位的結果不跳動而12位的跳動。 可以觀察一下ADC數值跳動的范圍,看看峰峰值大概多大。 看一下只采集一個通道數據跳不跳,也有可能是通道切換的時候采樣保持電容串擾了。 增加 ADC 的采樣時間,轉換時間是固定的 12個 ADC 時鐘 先檢查自己的硬件,STC的ADC本身是很小跳動的,你有大跳動,檢查你的電源紋波、參考電壓紋波、輸入信號紋波。12位ADC、2.5V參考,分辨率是0.61mV,你示波器看看你的電路上述參數的紋波,就會明白為什么跳動。 使用1/16 IIR濾波: v= ((v << 4) - v + v_new) >> 4;
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表