在實驗運行7.1章節例程時 [CW32數字電壓電流表軟件進階教程-1.電壓電流同時顯示] ,會發現實時顯示更新的數據是當前采集值,并未做數據濾波處理。由于采集到的原始數據有一定的波動,因此在顯示更新速度較快時,數字有跳動現象。
因此,在數據處理前,可以增加常見的均值濾波算法。均值濾波原理在實驗七中已有講述。
在7.1實驗例程基礎上,增加均值濾波的核心代碼如下:
void Volt_Cal(void)
{
V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
V_Buffer = (V_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
// 四舍五入
if(V_Buffer % 10 >= 5)
{
V_Buffer = V_Buffer / 10 + 1;
}
else
{
V_Buffer = V_Buffer / 10;
}
I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
/**
mv =I_Buffer * ADC_REF_VALUE > > 12,
R = 100mr,
10ma = mv/R/10=mv/0.1/10 = mv
*/
}
在上述例程中,可以看到使用了均值濾波函數:
Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
其中,原始數據為每1MS采集一個數據點,共采集100次,即100MS內的定時數據值。單點數據采集在定時器BTIM1中斷函數中完成。
均值濾波函數定義如下:
uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size) //均值濾波
{
uint32_t sum = 0;
uint16_t max = 0;
uint16_t min = 0xffff;
int i;
for(i = 0; i < size; i++)
{
sum += value[i];
if(value[i] > max)
{
max = value[i];
}
if(value[i] < min)
{
min = value[i];
}
}
sum -= max + min;
sum = sum / (size - 2);
//if(sum >1)sum+=4; 后期校準
return sum;
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據采集
+關注
關注
40文章
7157瀏覽量
116450 -
定時器
+關注
關注
23文章
3298瀏覽量
118837 -
均值濾波
+關注
關注
0文章
10瀏覽量
7205 -
CW32
+關注
關注
1文章
255瀏覽量
1241
發布評論請先 登錄
相關推薦
熱點推薦
常規的電壓電流測量方式有哪些?
常規的電壓電流測量通常采用均值檢波法、峰值檢波法、真有效值法三種方式,本文對比每種方式適應場合以及優勢。 一均值檢波法 采用均值檢波法將交流

高壓電阻箱如何進行負載測試?
的額定范圍內。
進行負載測試:逐漸增加負載電阻的阻值,觀察電壓表和電流表的變化。記錄不同負載條件下的電壓和電流值,并計算相應的功率因數。
分
發表于 01-16 12:34


倍壓電路電流會有多少
倍壓電路是一種特殊的電源電路,它能將輸入的低電壓交流信號轉換為高電壓直流信號。然而,倍壓電路的輸出電流并不隨倍壓倍數的增加而成倍增加,其大小
電流計改裝成電壓表時刻度怎么刻
將電流計改裝成電壓表時,刻度的刻畫是一個關鍵步驟,它確保了改裝后的電壓表能夠準確地測量電壓。以下是步驟和原理: 一、改裝原理 電流計改裝成
開關電源改可調電壓電流怎么改
開關電源是一種將交流電轉換為直流電的電源設備,廣泛應用于各種電子設備中。可調電壓電流的開關電源可以根據需要調整輸出電壓和電流,以滿足不同設備的供電需求。 1. 理解開關電源的基本原理 在開始改造之前
基于CW32的儀表精度測量實現(三):標定與校準
和可重復性。 1.為什么去標定 我們使用單片機ADC讀取的電壓電流值由于制造公差、溫度變化、時間老化、電源波動等因素引起的初始誤差和漂移,我們需要對電壓電流進行標定校準,使得我們得到的電壓電流

電流采樣電阻的電壓值是多少
電流采樣電阻的電壓值并不是一個固定的數值,而是由通過該電阻的電流和電阻的阻值共同決定的。根據歐姆定律,電阻兩端的電壓V等于
DCDC輸出電壓和電流的關系
DC-DC(Direct Current-Direct Current,直流到直流)轉換器是一種電氣系統(設備),它將直流源從一個電壓電平轉換為另一個電壓電平。在DC-DC轉換器中,輸出電壓和
用VCA821做壓控放大器,為什么供電電壓給到±2V就有電流0.02A往上加電壓電流越大?
本人最近在用VCA821做壓控放大器,可不知道為什么我的供電電壓給到±2V就有電流0.02A往上加電壓電流越大。下面是我的電路圖
發表于 08-23 08:10
模電怎么判斷電壓電流反饋器的好壞
在模擬電子學中,電壓電流反饋器(Voltage Current Feedback Amplifier, VCFA)是一種重要的電子元件,廣泛應用于信號放大、濾波、穩壓等領域。判斷電壓電流反饋器的好壞
使用INA219檢測電壓電流,讀回來的電壓值跳變幅度很大是什么原因呢?
在使用INA219檢測電壓電流。發現讀回來的電壓值跳變幅度很大,還時不時的變成0v,電流也貌似不準。這估計是什么原因呢
發表于 08-19 06:26
電容電壓電流相位超前與滯后判斷
電容電壓電流相位超前與滯后是電路分析中的一個重要概念,涉及到電路中電容元件的特性和作用。在交流電路中,電容元件的電壓和電流之間存在相位差,這種相位差是電容元件在交流電路中表現出的特有現象。 一、電容
評論